Skip to content

Instantly share code, notes, and snippets.

@ahmaddidiks
Last active March 21, 2024 08:02
Show Gist options
  • Save ahmaddidiks/3f5b2332ac7bcc0dad1c535d405ea151 to your computer and use it in GitHub Desktop.
Save ahmaddidiks/3f5b2332ac7bcc0dad1c535d405ea151 to your computer and use it in GitHub Desktop.
Raspberry pi GPIO test golang
package main
import (
"log"
"os"
"time"
"github.com/stianeikeland/go-rpio/v4"
)
var (
ticketPin rpio.Pin
loop1Pin rpio.Pin
loop2Pin rpio.Pin
emergencyPin rpio.Pin
logger = log.New(os.Stdout, "[GPIO]: ", log.Ldate|log.Ltime)
)
func main() {
/*
loop1: 27
loop2: 18
relay1: 23
relay2: 24
emergency: 17
ticket: 4
*/
_loop1 := 27
_loop2 := 18
_emergency := 17
_ticket := 4
// Open and map memory to access gpio, check for errors
if err := rpio.Open(); err != nil {
logger.Println(err)
os.Exit(1)
}
logger.Println("PINOUT LIST:")
logger.Printf("Loop 1: %d\n", _loop1)
logger.Printf("Loop 2: %d\n", _loop2)
logger.Printf("Emerfency: %d\n", _emergency)
logger.Printf("Ticket: %d\n", _ticket)
logger.Println("Sleep for 2 sec.")
time.Sleep(2 * time.Second)
// initiaalize
loop1Pin = rpio.Pin(_loop1)
loop2Pin = rpio.Pin(_loop2)
emergencyPin = rpio.Pin(_emergency)
ticketPin = rpio.Pin(_ticket)
emergencyPin.PullUp()
ticketPin.PullUp()
loop1Pin.PullUp()
loop2Pin.PullUp()
for {
loop1value := rpio.State(loop1Pin.Read())
loop2value := rpio.State(loop2Pin.Read())
emergencyValue := rpio.State(emergencyPin.Read())
ticketValue := rpio.State(ticketPin.Read())
logger.Printf(
"Loop1: %v | Loop2 : %v | Emergency: %v | Ticket : %v\n",
loop1value,
loop2value,
emergencyValue,
ticketValue,
)
time.Sleep(100 * time.Millisecond)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment