-- Leo's gemini proxy

-- Connecting to capsule.adrianhesketh.com:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini; charset=utf-8

capsule.adrianhesketh.com


home


4x4 alphanumeric keypad on the Raspberry Pi with Go


I'm building a burglar alam with my son, using a Raspberry Pi Zero as the micro-controller, and using Go as the programming language.


That's led to me needing a few libraries along the way. Today's library is the 4x4 keypad.


The code is available at [0]


[0]


keypad.jpg"


It was harder to write than you might expect, because it relies on switching on each column in turn and reading the row value very quickly to determine which key was pressed, however, this keypad design reduces the number of GPIO pins required which makes it a good choice.


err := rpio.Open()
if err != nil {
  fmt.Printf("error: %v\n", err)
  os.Exit(1)
}
defer rpio.Close()

// See https://pinout.xyz to select pins.
p1 := rpio.Pin(4)
p2 := rpio.Pin(17)
p3 := rpio.Pin(27)
p4 := rpio.Pin(22)
p5 := rpio.Pin(18)
p6 := rpio.Pin(23)
p7 := rpio.Pin(24)
p8 := rpio.Pin(25)

pad := keypad.New(p1, p2, p3, p4, p5, p6, p7, p8)
for {
  if keys, ok := pad.Read(); ok {
    for _, e := range keys {
      fmt.Printf("Key: %+v\n", e)
    }
  }
}

More


Next


Raspberry Pi piezo buzzer with Go


Previous


Serving Web content and redirects from the domain apex without Route53 on AWS


Home


home

-- Response ended

-- Page fetched on Sun Apr 28 18:22:19 2024