Tasmota/lib/Adafruit_LED_Backpack-1.1.6/Adafruit_LEDBackpack.h

172 lines
3.9 KiB
C++

/***************************************************
This is a library for our I2C LED Backpacks
Designed specifically to work with the Adafruit LED Matrix backpacks
----> http://www.adafruit.com/products/
----> http://www.adafruit.com/products/
These displays use I2C to communicate, 2 pins are required to
interface. There are multiple selectable I2C addresses. For backpacks
with 2 Address Select pins: 0x70, 0x71, 0x72 or 0x73. For backpacks
with 3 Address Select pins: 0x70 thru 0x77
Adafruit invests time and resources providing this open source code,
please support Adafruit and open-source hardware by purchasing
products from Adafruit!
Written by Limor Fried/Ladyada for Adafruit Industries.
MIT license, all text above must be included in any redistribution
****************************************************/
#ifndef Adafruit_LEDBackpack_h
#define Adafruit_LEDBackpack_h
#if (ARDUINO >= 100)
#include "Arduino.h"
#else
#include "WProgram.h"
#endif
#include <Wire.h>
#include "Adafruit_GFX.h"
#define LED_ON 1
#define LED_OFF 0
#define LED_RED 1
#define LED_YELLOW 2
#define LED_GREEN 3
#define HT16K33_BLINK_CMD 0x80
#define HT16K33_BLINK_DISPLAYON 0x01
#define HT16K33_BLINK_OFF 0
#define HT16K33_BLINK_2HZ 1
#define HT16K33_BLINK_1HZ 2
#define HT16K33_BLINK_HALFHZ 3
#define HT16K33_CMD_BRIGHTNESS 0xE0
#define SEVENSEG_DIGITS 5
// this is the raw HT16K33 controller
class Adafruit_LEDBackpack {
public:
Adafruit_LEDBackpack(void);
void begin(uint8_t _addr);
void setBrightness(uint8_t b);
void blinkRate(uint8_t b);
void writeDisplay(void);
void clear(void);
uint16_t displaybuffer[8];
void init(uint8_t a);
protected:
uint8_t i2c_addr;
};
class Adafruit_AlphaNum4 : public Adafruit_LEDBackpack {
public:
Adafruit_AlphaNum4(void);
void writeDigitRaw(uint8_t n, uint16_t bitmask);
void writeDigitAscii(uint8_t n, uint8_t ascii, boolean dot = false);
private:
};
class Adafruit_24bargraph : public Adafruit_LEDBackpack {
public:
Adafruit_24bargraph(void);
void setBar(uint8_t bar, uint8_t color);
private:
};
class Adafruit_8x16matrix : public Adafruit_LEDBackpack, public Adafruit_GFX {
public:
Adafruit_8x16matrix(void);
void drawPixel(int16_t x, int16_t y, uint16_t color);
private:
};
class Adafruit_8x16minimatrix : public Adafruit_LEDBackpack, public Adafruit_GFX {
public:
Adafruit_8x16minimatrix(void);
void drawPixel(int16_t x, int16_t y, uint16_t color);
private:
};
class Adafruit_8x8matrix : public Adafruit_LEDBackpack, public Adafruit_GFX {
public:
Adafruit_8x8matrix(void);
void drawPixel(int16_t x, int16_t y, uint16_t color);
private:
};
class Adafruit_BicolorMatrix : public Adafruit_LEDBackpack, public Adafruit_GFX {
public:
Adafruit_BicolorMatrix(void);
void drawPixel(int16_t x, int16_t y, uint16_t color);
private:
};
#define DEC 10
#define HEX 16
#define OCT 8
#define BIN 2
#define BYTE 0
class Adafruit_7segment : public Adafruit_LEDBackpack {
public:
Adafruit_7segment(void);
size_t write(uint8_t c);
void print(char, int = BYTE);
void print(unsigned char, int = BYTE);
void print(int, int = DEC);
void print(unsigned int, int = DEC);
void print(long, int = DEC);
void print(unsigned long, int = DEC);
void print(double, int = 2);
void println(char, int = BYTE);
void println(unsigned char, int = BYTE);
void println(int, int = DEC);
void println(unsigned int, int = DEC);
void println(long, int = DEC);
void println(unsigned long, int = DEC);
void println(double, int = 2);
void println(void);
void writeDigitRaw(uint8_t x, uint8_t bitmask);
void writeDigitNum(uint8_t x, uint8_t num, boolean dot = false);
void drawColon(boolean state);
void printNumber(long, uint8_t = 2);
void printFloat(double, uint8_t = 2, uint8_t = DEC);
void printError(void);
void writeColon(void);
private:
uint8_t position;
};
#endif // Adafruit_LEDBackpack_h