SensorLib 0.5.0
Multi-platform sensor driver library for Arduino, PlatformIO, and ESP-IDF
Loading...
Searching...
No Matches
xl9555_read.ino
Go to the documentation of this file.
1
30#include <IoExpanderDrv.hpp>
31
32#ifndef SENSOR_SDA
33#define SENSOR_SDA 17
34#endif
35
36#ifndef SENSOR_SCL
37#define SENSOR_SCL 18
38#endif
39
40#ifndef SENSOR_IRQ
41#define SENSOR_IRQ 10
42#endif
43
45
46void setup()
47{
48 Serial.begin(115200);
49
50 // Set the interrupt input to input pull-up
51 pinMode(SENSOR_IRQ, INPUT_PULLUP);
52
53 /*
54 *
55 * If the device address is not known, the 0xFF parameter can be passed in.
56 *
57 * XL9555_UNKNOWN_ADDRESS = 0xFF
58 *
59 * If the device address is known, the device address is given
60 *
61 * XL9555_SLAVE_ADDRESS0 = 0x20
62 * XL9555_SLAVE_ADDRESS1 = 0x21
63 * XL9555_SLAVE_ADDRESS2 = 0x22
64 * XL9555_SLAVE_ADDRESS3 = 0x23
65 * XL9555_SLAVE_ADDRESS4 = 0x24
66 * XL9555_SLAVE_ADDRESS5 = 0x25
67 * XL9555_SLAVE_ADDRESS6 = 0x26
68 * XL9555_SLAVE_ADDRESS7 = 0x27
69 */
70 const uint8_t chip_address = XL9555_UNKNOWN_ADDRESS;
71
72 if (!expander.begin(Wire, chip_address, SENSOR_SDA, SENSOR_SCL)) {
73 while (1) {
74 Serial.println("Failed to find XL9555 - check your wiring!");
75 delay(1000);
76 }
77 }
78
79 // Set all pins as input
81}
82
83void loop()
84{
85 Serial.print("PORT0:0b");
86 Serial.print(expander.digitalReadPort(), BIN);
87 Serial.print("\tPORT1:0b");
88 Serial.println(expander.digitalReadPort(), BIN);
89
90 //Allowable range of parameter input: IO0 ~ IO15
91 Serial.println("IO0:\tIO1:\tIO2:\tIO3:\tIO4:\tIO5:\tIO6:\tIO7:\tIO8:\tIO9:\tIO10:\tIO11:\tIO12:\tIO13:\tIO14:\tIO15:\t");
92 Serial.print(expander.digitalRead(0));
93 Serial.print("\t");
94 Serial.print(expander.digitalRead(1));
95 Serial.print("\t");
96 Serial.print(expander.digitalRead(2));
97 Serial.print("\t");
98 Serial.print(expander.digitalRead(3));
99 Serial.print("\t");
100 Serial.print(expander.digitalRead(4));
101 Serial.print("\t");
102 Serial.print(expander.digitalRead(5));
103 Serial.print("\t");
104 Serial.print(expander.digitalRead(6));
105 Serial.print("\t");
106 Serial.print(expander.digitalRead(7));
107 Serial.print("\t");
108
109 Serial.print(expander.digitalRead(8));
110 Serial.print("\t");
111 Serial.print(expander.digitalRead(9));
112 Serial.print("\t");
113 Serial.print(expander.digitalRead(10));
114 Serial.print("\t");
115 Serial.print(expander.digitalRead(11));
116 Serial.print("\t");
117 Serial.print(expander.digitalRead(12));
118 Serial.print("\t");
119 Serial.print(expander.digitalRead(13));
120 Serial.print("\t");
121 Serial.print(expander.digitalRead(14));
122 Serial.print("\t");
123 Serial.print(expander.digitalRead(15));
124 Serial.println();
125 delay(1000);
126}
127
128
129
@license MIT License
bool begin(SensorCommCustom::CustomCallback callback, uint8_t addr)
Initialize the sensor using custom callback interface.
bool digitalRead(uint8_t pin)
Read the digital value from an input pin.
void configPins(uint16_t pinMask, uint8_t mode)
Configure multiple pins as input or output simultaneously.
Concrete driver for the XL9555 16‑bit I2C GPIO expander.
uint16_t digitalReadPort() override
Read the values of all 16 input pins as a single 16-bit word.
void setup()
#define SENSOR_SCL
#define SENSOR_SDA
#define SENSOR_IRQ
void loop()
IoExpanderXL9555 expander