Adafruit AW9523 Library
Adafruit_AW9523.h
Go to the documentation of this file.
1 
17 #ifndef _ADAFRUIT_AW9523_H
18 #define _ADAFRUIT_AW9523_H
19 
20 #include "Arduino.h"
21 #include <Adafruit_I2CDevice.h>
22 #include <Adafruit_I2CRegister.h>
23 
24 #define AW9523_DEFAULT_ADDR 0x58
25 
26 #define AW9523_LED_MODE 0x99
27 
28 #define AW9523_REG_CHIPID 0x10
29 #define AW9523_REG_SOFTRESET 0x7F
30 #define AW9523_REG_INPUT0 0x00
31 #define AW9523_REG_OUTPUT0 0x02
32 #define AW9523_REG_CONFIG0 0x04
33 #define AW9523_REG_INTENABLE0 0x06
34 #define AW9523_REG_GCR 0x11
35 #define AW9523_REG_LEDMODE 0x12
36 
37 
42 public:
44  ~Adafruit_AW9523();
45 
46  bool begin(uint8_t address = AW9523_DEFAULT_ADDR, TwoWire *wire = &Wire);
47  bool reset(void);
48  bool openDrainPort0(bool od);
49 
50  // All 16 pins at once
51  bool outputGPIO(uint16_t pins);
52  uint16_t inputGPIO(void);
53  bool configureDirection(uint16_t pins);
54  bool configureLEDMode(uint16_t pins);
55  bool interruptEnableGPIO(uint16_t pins);
56 
57  // Individual pin control
58  void pinMode(uint8_t pin, uint8_t mode);
59  void digitalWrite(uint8_t pin, bool val);
60  bool digitalRead(uint8_t pin);
61  void analogWrite(uint8_t pin, uint8_t val);
62  void enableInterrupt(uint8_t pin, bool en);
63 
64 protected:
65  Adafruit_I2CDevice *i2c_dev = NULL;
66 };
67 
68 #endif
uint16_t inputGPIO(void)
Reads input value (1 == high) for all 16 GPIO.
Definition: Adafruit_AW9523.cpp:112
void pinMode(uint8_t pin, uint8_t mode)
Sets pin mode / direction for one pin.
Definition: Adafruit_AW9523.cpp:253
void enableInterrupt(uint8_t pin, bool en)
Sets interrupt enable for one pin.
Definition: Adafruit_AW9523.cpp:238
#define AW9523_DEFAULT_ADDR
The default I2C address for our breakout.
Definition: Adafruit_AW9523.h:24
void digitalWrite(uint8_t pin, bool val)
Sets digital output for one pin.
Definition: Adafruit_AW9523.cpp:210
bool outputGPIO(uint16_t pins)
Sets output value (1 == high) for all 16 GPIO.
Definition: Adafruit_AW9523.cpp:93
bool reset(void)
Perform a soft reset over I2C.
Definition: Adafruit_AW9523.cpp:82
bool configureDirection(uint16_t pins)
Sets direction for all 16 GPIO, 1 == output, 0 == input.
Definition: Adafruit_AW9523.cpp:145
Class that stores state and functions for interacting with the AW9523 I2C GPIO expander.
Definition: Adafruit_AW9523.h:41
bool openDrainPort0(bool od)
Turns on/off open drain output for ALL port 0 pins (GPIO 0-7)
Definition: Adafruit_AW9523.cpp:286
bool configureLEDMode(uint16_t pins)
Sets constant-current mode for all 16 GPIO.
Definition: Adafruit_AW9523.cpp:165
bool digitalRead(uint8_t pin)
Reads digital input for one pin.
Definition: Adafruit_AW9523.cpp:224
void analogWrite(uint8_t pin, uint8_t val)
Sets constant-current setting for one pin.
Definition: Adafruit_AW9523.cpp:186
bool begin(uint8_t address=AW9523_DEFAULT_ADDR, TwoWire *wire=&Wire)
Sets up the hardware and initializes I2C.
Definition: Adafruit_AW9523.cpp:51
bool interruptEnableGPIO(uint16_t pins)
Sets interrupt watch for all 16 GPIO, 1 == enabled.
Definition: Adafruit_AW9523.cpp:126
Adafruit_AW9523()
Instantiates a new AW9523 class.
Definition: Adafruit_AW9523.cpp:40
Adafruit_I2CDevice * i2c_dev
Pointer to I2C bus interface.
Definition: Adafruit_AW9523.h:65