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

/media/uploads/wliu88/img_0300.jpg

MbedTrellis
VU5V
GNDGND
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.