This is a library for the Adafruit LED Backpacks. This library works with the Adafruit Mini 8x8 and the Adafruit 16x8 LED Matrix backpacks.
Fork of Adafruit_LEDBackpack by
Adafruit_LEDBackpack.h@2:caaae61819a4, 2015-03-24 (annotated)
- Committer:
- sknn
- Date:
- Tue Mar 24 17:35:22 2015 +0000
- Revision:
- 2:caaae61819a4
- Parent:
- 1:f066d5347c60
Now this library works with the Adafruit 16x8 LED Matrix backpacks, too.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
luizhespanha | 0:e81a6274acce | 1 | /*************************************************** |
luizhespanha | 0:e81a6274acce | 2 | This is a library for our I2C LED Backpacks |
luizhespanha | 0:e81a6274acce | 3 | |
luizhespanha | 0:e81a6274acce | 4 | Designed specifically to work with the Adafruit LED Matrix backpacks |
luizhespanha | 0:e81a6274acce | 5 | ----> http://www.adafruit.com/products/ |
luizhespanha | 0:e81a6274acce | 6 | ----> http://www.adafruit.com/products/ |
luizhespanha | 0:e81a6274acce | 7 | |
luizhespanha | 0:e81a6274acce | 8 | These displays use I2C to communicate, 2 pins are required to |
luizhespanha | 0:e81a6274acce | 9 | interface. There are multiple selectable I2C addresses. For backpacks |
luizhespanha | 0:e81a6274acce | 10 | with 2 Address Select pins: 0x70, 0x71, 0x72 or 0x73. For backpacks |
luizhespanha | 0:e81a6274acce | 11 | with 3 Address Select pins: 0x70 thru 0x77 |
luizhespanha | 0:e81a6274acce | 12 | |
luizhespanha | 0:e81a6274acce | 13 | Adafruit invests time and resources providing this open source code, |
luizhespanha | 0:e81a6274acce | 14 | please support Adafruit and open-source hardware by purchasing |
luizhespanha | 0:e81a6274acce | 15 | products from Adafruit! |
luizhespanha | 0:e81a6274acce | 16 | |
luizhespanha | 0:e81a6274acce | 17 | Written by Limor Fried/Ladyada for Adafruit Industries. |
luizhespanha | 0:e81a6274acce | 18 | BSD license, all text above must be included in any redistribution |
luizhespanha | 0:e81a6274acce | 19 | ****************************************************/ |
luizhespanha | 1:f066d5347c60 | 20 | |
luizhespanha | 1:f066d5347c60 | 21 | /* |
luizhespanha | 1:f066d5347c60 | 22 | * Modified by Luiz Hespanha (http://www.d3.do) 8/16/2013 for use in LPC1768 |
luizhespanha | 1:f066d5347c60 | 23 | */ |
luizhespanha | 0:e81a6274acce | 24 | |
luizhespanha | 0:e81a6274acce | 25 | #include "mbed.h" |
luizhespanha | 0:e81a6274acce | 26 | #include "Adafruit_GFX.h" |
luizhespanha | 0:e81a6274acce | 27 | |
luizhespanha | 0:e81a6274acce | 28 | #define LED_ON 1 |
luizhespanha | 0:e81a6274acce | 29 | #define LED_OFF 0 |
luizhespanha | 0:e81a6274acce | 30 | |
luizhespanha | 0:e81a6274acce | 31 | #define LED_RED 1 |
luizhespanha | 0:e81a6274acce | 32 | #define LED_YELLOW 2 |
luizhespanha | 0:e81a6274acce | 33 | #define LED_GREEN 3 |
luizhespanha | 0:e81a6274acce | 34 | |
luizhespanha | 0:e81a6274acce | 35 | |
luizhespanha | 0:e81a6274acce | 36 | |
luizhespanha | 0:e81a6274acce | 37 | #define HT16K33_BLINK_CMD 0x80 |
luizhespanha | 0:e81a6274acce | 38 | #define HT16K33_BLINK_DISPLAYON 0x01 |
luizhespanha | 0:e81a6274acce | 39 | #define HT16K33_BLINK_OFF 0 |
luizhespanha | 0:e81a6274acce | 40 | #define HT16K33_BLINK_2HZ 1 |
luizhespanha | 0:e81a6274acce | 41 | #define HT16K33_BLINK_1HZ 2 |
luizhespanha | 0:e81a6274acce | 42 | #define HT16K33_BLINK_HALFHZ 3 |
luizhespanha | 0:e81a6274acce | 43 | |
luizhespanha | 0:e81a6274acce | 44 | #define HT16K33_CMD_BRIGHTNESS 0x0E |
luizhespanha | 0:e81a6274acce | 45 | |
luizhespanha | 0:e81a6274acce | 46 | // this is the raw HT16K33 controller |
luizhespanha | 0:e81a6274acce | 47 | class Adafruit_LEDBackpack { |
luizhespanha | 0:e81a6274acce | 48 | public: |
luizhespanha | 0:e81a6274acce | 49 | Adafruit_LEDBackpack(I2C *i2c); |
luizhespanha | 0:e81a6274acce | 50 | void begin(uint8_t _addr); |
luizhespanha | 0:e81a6274acce | 51 | void setBrightness(uint8_t b); |
luizhespanha | 0:e81a6274acce | 52 | void blinkRate(uint8_t b); |
luizhespanha | 0:e81a6274acce | 53 | void writeDisplay(void); |
luizhespanha | 0:e81a6274acce | 54 | void clear(void); |
luizhespanha | 0:e81a6274acce | 55 | |
luizhespanha | 0:e81a6274acce | 56 | uint16_t displaybuffer[8]; |
luizhespanha | 0:e81a6274acce | 57 | |
luizhespanha | 0:e81a6274acce | 58 | void init(uint8_t a); |
luizhespanha | 0:e81a6274acce | 59 | |
luizhespanha | 0:e81a6274acce | 60 | protected: |
luizhespanha | 0:e81a6274acce | 61 | I2C *_i2c; |
luizhespanha | 0:e81a6274acce | 62 | |
luizhespanha | 0:e81a6274acce | 63 | private: |
luizhespanha | 0:e81a6274acce | 64 | uint8_t i2c_addr; |
luizhespanha | 0:e81a6274acce | 65 | }; |
luizhespanha | 0:e81a6274acce | 66 | |
sknn | 2:caaae61819a4 | 67 | class Adafruit_8x16matrix : public Adafruit_LEDBackpack, public Adafruit_GFX { |
sknn | 2:caaae61819a4 | 68 | public: |
sknn | 2:caaae61819a4 | 69 | Adafruit_8x16matrix(I2C *i2c); |
sknn | 2:caaae61819a4 | 70 | |
sknn | 2:caaae61819a4 | 71 | virtual void drawPixel(int16_t x, int16_t y, uint16_t color); |
sknn | 2:caaae61819a4 | 72 | |
sknn | 2:caaae61819a4 | 73 | private: |
sknn | 2:caaae61819a4 | 74 | }; |
sknn | 2:caaae61819a4 | 75 | |
luizhespanha | 0:e81a6274acce | 76 | class Adafruit_8x8matrix : public Adafruit_LEDBackpack, public Adafruit_GFX { |
luizhespanha | 0:e81a6274acce | 77 | public: |
luizhespanha | 0:e81a6274acce | 78 | Adafruit_8x8matrix(I2C *i2c); |
luizhespanha | 0:e81a6274acce | 79 | |
sknn | 2:caaae61819a4 | 80 | virtual void drawPixel(int16_t x, int16_t y, uint16_t color); |
luizhespanha | 0:e81a6274acce | 81 | |
luizhespanha | 0:e81a6274acce | 82 | private: |
luizhespanha | 0:e81a6274acce | 83 | }; |