Adafruit Trellis
Description
Trellis is an open source backlight keypad driver system from Adafruit. It is easy to use, works with any 3mm LEDs and eight tiles can be tiled together on a shared I2C bus. The Trellis PCB is specially made to match the Adafruit 4x4 elastomer keypad. Each Trellis PCB has 4x4 pads and 4x4 matching spots for 3mm LEDs. The circuitry on-board handles the background key-presses and LED lighting for the 4x4 tile. Each tile has an I2C-controlled LED sequencer and keypad reader already on it. The chip can control all 16 LEDs individually, turning them on or off. It cannot do grayscale or dimming. The same chip also reads any keypresses made with the rubber keypad. The connections are 'diode multiplexed' so you do not have to worry about "ghosting" when pressing multiple keys, each key is uniquely addressed. The tiles have 3 address jumpers. You can tile up to 8 PCBs together (for a total of 4x32 or 16x8=128 buttons/leds) on a single I2C bus, as long as each one has a unique address. All the tiles connect by the edges with solder, and share the same power, ground, interrupt, and I2C clock/data pins. So, you can easily set up to 128 LEDs and read up to 128 buttons using only 2 I2C wires! The tiles can be arranged in any configuration they want as long as each tile is connected to another with the 5 edge-fingers. Each LED is multiplexed with a constant-current driver, so you can mix and match any colors you like. You don't need it to be all blue, all red, etc. Mix it up! Any 3mm LED can be used, although we find that diffused LEDs with 250mcd+ brightness look best.
Connection
Mbed | Trellis |
---|---|
VU | 5V |
GND | GND |
SDA (p28) | SDA |
SCL (p27) | SCL |
Demo Program
Import programAdafruit_Trellis_Hello_World
Demo program for using adafruit trellis.
Library
Import library
Public Member Functions |
|
Adafruit_Trellis (void) | |
Create a new trellis object.
|
|
void | begin (I2C *_wire, uint8_t _addr) |
Initialize the trellis controller.
|
|
void | setBrightness (uint8_t b) |
Set brightness(PWM) of LEDs.
|
|
void | blinkRate (uint8_t b) |
Set blink rate of LEDs.
|
|
void | writeDisplay (void) |
Write to LEDs after set and clear status of LEDs.
|
|
void | clear (void) |
Set all LEDs to off.
|
|
bool | isLED (uint8_t x) |
Check status of LED.
|
|
void | setLED (uint8_t x) |
Set LED status to on.
|
|
void | clrLED (uint8_t x) |
Set LED status to off.
|
|
bool | isKeyPressed (uint8_t k) |
Check if button is pressed.
|
|
bool | wasKeyPressed (uint8_t k) |
Check if button was pressed.
|
|
bool | readSwitches (void) |
Update all buttons' status, need to be called before checking buttons' status.
|
|
bool | justPressed (uint8_t k) |
Check if button was just pressed.
|
|
bool | justReleased (uint8_t k) |
Check if button was just released.
|
Video
Please log in to post comments.