Adafruit IS31FL3731 Library
Adafruit_IS31FL3731.h
1 #ifndef _ADAFRUIT_IS31FL3731_H_
2 #define _ADAFRUIT_IS31FL3731_H_
3 
4 #include <Adafruit_GFX.h>
5 #include <Adafruit_I2CDevice.h>
6 #include <Arduino.h>
7 
8 #define ISSI_ADDR_DEFAULT 0x74
9 
10 #define ISSI_REG_CONFIG 0x00
11 #define ISSI_REG_CONFIG_PICTUREMODE 0x00
12 #define ISSI_REG_CONFIG_AUTOPLAYMODE 0x08
13 #define ISSI_REG_CONFIG_AUDIOPLAYMODE 0x18
14 
15 #define ISSI_CONF_PICTUREMODE 0x00
16 #define ISSI_CONF_AUTOFRAMEMODE 0x04
17 #define ISSI_CONF_AUDIOMODE 0x08
18 
19 #define ISSI_REG_PICTUREFRAME 0x01
20 
21 #define ISSI_REG_SHUTDOWN 0x0A
22 #define ISSI_REG_AUDIOSYNC 0x06
23 
24 #define ISSI_COMMANDREGISTER 0xFD
25 #define ISSI_BANK_FUNCTIONREG 0x0B // helpfully called 'page nine'
26 
27 /**************************************************************************/
31 /**************************************************************************/
32 class Adafruit_IS31FL3731 : public Adafruit_GFX {
33 public:
34  Adafruit_IS31FL3731(uint8_t x = 16, uint8_t y = 9);
35  bool begin(uint8_t addr = ISSI_ADDR_DEFAULT, TwoWire *theWire = &Wire);
36  void drawPixel(int16_t x, int16_t y, uint16_t color);
37  void clear(void);
38 
39  void setLEDPWM(uint8_t lednum, uint8_t pwm, uint8_t bank = 0);
40  void audioSync(bool sync);
41  void setFrame(uint8_t b);
42  void displayFrame(uint8_t frame);
43 
44 protected:
45  bool selectBank(uint8_t bank);
46  bool writeRegister8(uint8_t bank, uint8_t reg, uint8_t data);
47  uint8_t readRegister8(uint8_t bank, uint8_t reg);
48  uint8_t _frame;
49 
50 private:
51  Adafruit_I2CDevice *_i2c_dev = NULL;
52 };
53 
54 /**************************************************************************/
58 /**************************************************************************/
60 public:
62  void drawPixel(int16_t x, int16_t y, uint16_t color);
63 };
64 
65 #endif
bool begin(uint8_t addr=ISSI_ADDR_DEFAULT, TwoWire *theWire=&Wire)
Initialize hardware and clear display.
Definition: Adafruit_IS31FL3731.cpp:39
bool selectBank(uint8_t bank)
Switch to a given bank in the chip memory for future reads.
Definition: Adafruit_IS31FL3731.cpp:221
Adafruit_IS31FL3731(uint8_t x=16, uint8_t y=9)
Constructor for breakout version.
Definition: Adafruit_IS31FL3731.cpp:20
void drawPixel(int16_t x, int16_t y, uint16_t color)
Adafruit GFX low level accesssor - sets a 8-bit PWM pixel value handles rotation and pixel arrangemen...
Definition: Adafruit_IS31FL3731.cpp:166
void clear(void)
Sets all LEDs on & 0 PWM for current frame.
Definition: Adafruit_IS31FL3731.cpp:84
void setFrame(uint8_t b)
Set&#39;s this object&#39;s frame tracker (does not talk to the chip)
Definition: Adafruit_IS31FL3731.cpp:200
void displayFrame(uint8_t frame)
Have the chip set the display to the contents of a frame.
Definition: Adafruit_IS31FL3731.cpp:208
Constructor for generic IS31FL3731 breakout version.
Definition: Adafruit_IS31FL3731.h:32
void setLEDPWM(uint8_t lednum, uint8_t pwm, uint8_t bank=0)
Low level accesssor - sets a 8-bit PWM pixel value to a bank location does not handle rotation...
Definition: Adafruit_IS31FL3731.cpp:105
void audioSync(bool sync)
Enable the audio &#39;sync&#39; for brightness pulsing (not really tested)
Definition: Adafruit_IS31FL3731.cpp:232
bool writeRegister8(uint8_t bank, uint8_t reg, uint8_t data)
Write one byte to a register located in a given bank.
Definition: Adafruit_IS31FL3731.cpp:249
Constructor for FeatherWing IS31FL3731 version.
Definition: Adafruit_IS31FL3731.h:59
uint8_t _frame
The frame (of 8) we are currently addressing.
Definition: Adafruit_IS31FL3731.h:48
uint8_t readRegister8(uint8_t bank, uint8_t reg)
Read one byte from a register located in a given bank.
Definition: Adafruit_IS31FL3731.cpp:265