💾 Archived View for capsule.adrianhesketh.com › 2019 › 09 › 28 › raspberry-pi-4x4-keypad-with-go captured on 2023-04-19 at 22:56:44. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2021-11-30)

-=-=-=-=-=-=-

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