An application note from Microchip: Interfacing a 4×4 Matrix keypad with an 8-Bit GPIO expander
This application note discusses interfacing a 4×4 matrix keypad with MCP23X08 8-Bit GPIO Expander. This application note references the MCP23X08/17 GPIO Expander Keypad/LCD Demo Board (GPIODM-KPLCD). GPIO Expanders provide easy I/O expansion using standard serial interfaces such as I2C and SPI. They are especially useful in applications where pin count is limited on the microcontroller unit (MCU) or if remote inputs / outputs (I/O’s) are needed. It is best to think of an 8-bit GPIO Expander like adding another 8-bit wide digital port to the MCU. This application note does not detail all of the features of the MCP23X08. Refer to the MCP23008/MCP23S08 Data Sheet, “8-Bit I/O Expander with Serial Interface” (DS21919) for more information.
Interfacing a 4×4 Matrix keypad with an 8-Bit GPIO expander - [Link]
The 8bi8 is a small self contained 8×8 bi-colour LED matrix toy. It has emerged after various prototypes. From here I want to create a new revision building on what I have learn from building this version.
8×8 bi-color LED matrix toy - [Link]
16×24 LED Matrix – Easy to use, chainable displays. These LED panels take care of all the work of making a big matrix display. Each panel has six 8×8 red matrix modules, for a 16×24 matrix. The panel has a HT1632C chip on the back with does all the multiplexing work for you and has a 3-pin SPI-like serial interface to talk to it and set LEDs on or off. There’s a few extras as well, such as being able to change the brightness of the entire display, or blink the entire display at 1 Hz.
16×24 LED Matrix – Easy to use, chainable displays - [Link]
Phil Burgess went all demo-scene on us and made a super optimized RGB matrix panel library that supports multiple panels. It uses much more RAM but in exchange, its got great refresh, color depth and low CPU usage. If you have a panel check it out! 16×32 RGB LED Matrix — Alt High Performance Library. Phil writes – [via]
What we’ve got here is a library for the 16×32 RGB LED Matrix that achieves both better refresh rates and lower CPU usage — producing steadier images and allowing more processing time for your own code. It also handles tiling of multiple panels, and the bit depth (maximum number of colors) is configurable. That’s the good news.
The bad news…as previously mentioned, it’s tied to a very specific hardware configuration. It relies on a few dirty tricks (or as a friend of mine says, “things that would get you an ‘F’ in a programming class”), and my concern is that the timing might be so delicate as to require tweaking if someone’s using even a different version of the compiler. So I’m hoping there might be a couple willing guinea pigs…
16×32 RGB LED Matrix — Alt High Performance Library - [Link]
The MAX7219 does all the control and refresh work for you in driving either an 8×8 matrix display or 8 x 7-segment displays (usually these also have a dot so its really an 8-segment display) – 64 LEDs total. All you have to do is send it serial commands via the 4-pin SPI interface and it will auto-magically take care of the rest. Wiring is simplified as well, you only need to set the current level for all LEDs with a single resistor instead of 8 and you can also dim the entire display digitally. It’s a thru-hole chip so you can use it in any breadboard, perfboard or other project, although if you’re soldering it in, we suggest using a socket.
MAX7219CNG LED Matrix/Digit Display Driver – MAX7219 - [Link]
Sometimes it’s handy to have a message display when persons enter a specific area. Having the message appear only when someone approaches brings more attention it, and can be useful for holiday displays, directions or warnings. In this project by Jer from Volts and Bytes, an Atmega8 is used to activate a Sure Electronics 0832 LED matrix display when motion is detected by the attached PIR sensor.
The C source and supporting files are available in this zip file.
PIR controlled LED matrix display – [Link]
This instructable is meant to be a more complete explanation than others available online. Notably, this will provide more hardware explanation than is available in the LED Marquee instructable by led555.
GoalsThis instructable presents the concepts involved with shift registers and high side drivers. By illustrating these concepts with an 8×8 LED matrix I hope to provide you with the tools needed to adapt and expand to the size and layout your project calls for.
LED matrix using shift registers – [Link]
Here is a project for beginners to interface a 16-key (4×4) keypad with ATmega32 using 8-pins i.e. one port of the microcontroller. This is useful particularly where we need more keys but don’t want to spend more uC pins for interfacing.
The 4×4 keypad is a standard one available in the market. I’ve used here one from my earlier project. The LED shown in the schematic is just extra, which can be used anyway you like.
4×4 Matrix Key-board Interfacing with ATmega32 – [Link]
This project is pretty cool for a few reasons, and driving a huge LED matrix with a single 8-bit controller is just one of them. The idea was born when I bought 120 LEDs of the wrong type, and decided to do something with them. With that many LEDs, there are only a few things you can do, and a matrix is the natural first-place-winner in the competition of those ideas. One of the LEDs did not work, so a 12×10 matrix was out, so I settled for an 11×10 matrix. This meant I had to drive 110 LEDs. The only controller I had free was a PIC16F688 with 11 pins that can be used for output. After deciding not to use any other chips, charlieplexing was the way to go. The maximum number of LEDs one can charlieplex using N pins is N * (N – 1), so for 11 pins that number is 110. What a coincidence!
One-chip 11×10 LED matrix – [Link]
SAMSA is based on the Wiring board, with an ATmega128 microcontroller, and SAMSA II on the Arduino Mega, with an ATmega1280. Both are pretty similar, tough the ATmega1280 has 8 KB SRAM, twice the ATmega128. For SAMSA II the Arduino IDE was not used. The software was written directly in C++, using some libraries from both Arduino and Wiring.
SAMSA II has also two additional microcontrollers. One is an old Arduino Mini (ATmega168) located in the head, tasked with handling the sensors. The other is an ATmega8 and is integrated in the display. The firmware in the display was replaced with another one, freeing the main microcontroller from handling the display pixel by pixel, storing the frame buffer, etc.
The head’s microcontroller is responsible for sampling, filtering and processing sensor’s data. The data from the Sharp distance sensor and the lateral IR sensors are combined in a single “super smart distance sensor”. This microcontroller also decodes the data coming from the 38 KHz IR receiver, used for the Remote Control.
These two additional microcontrollers further reduce the load on the main microcontroller, allowing for more sophisticated behaviors.
Awesome Hexapod Packs an LED Matrix – [Link]