Interfacing matrix keyboard with AVR

The keypad is the most widely used input device to provide input from the outside world to the microcontroller. The keypad makes an application more users interactive.  The concept of interfacing a keypad with the ATmega16 is similar to interfacing it with any other microcontroller. Many applications require a large number of keys connected to a computing system which includes a PC keyboard, Cell Phone keypad, and Calculators. If we attach a single key to MCU, we connect it directly to i/o line. But we cannot connect; say 10 or 100 keys directly MCUs because it will eat up precious i/o line and MCU to Keypad interface will contain lots of wires. The rows R0 to R3 are Input to the Microcontroller. They are made an input by setting the proper DDR Register in AVR. The columns C0 to C3 are also connected to MCUs i/o line. These are kept at High Impedance State (AKA input), in high z state (z= impedance) state these pins are neither HIGH nor LOW they are in TRI-STATE. And in their PORT value, we set them all… Continue reading

Capacitive 4×4 touch pad driven by Atmega32u4

4x4 touch pad driven by Atmega32u4

4×4 button keypads are great user input option. But push buttons aren’t always the best choice due to esthetics, reliability and space constraints. It seems that capacitive input devices are taking over. Kasabah wanted to replace monome keys with non mechanical variant and so he came up with Atmega32u4 based 4×4 capacitive touch board. It is not only a keypad, but each key is also backed with LED. The board is designed with KiCAD which is free and open to use. Continue reading