Buon giorno,
sto usando un MCP23017, che è un expander I2C, collegato ad un ESP32 per leggere lo stato di 16 pulsanti e, abilitando il pullUp interno i valori cambiano a loro piacimento. Il codice che uso è questo:
#include <Adafruit_MCP23017.h>
Adafruit_MCP23017 mcp;
void setup() {
Serial.begin(115200);
mcp.begin(0);
for (byte i = 0; i < 16; i++) {
mcp.pinMode(i, INPUT);
mcp.pullUp(i, HIGH);
}
}
void loop() {
String text = "";
int i;
for (i = 0; i < 17; i++ ) {
text += String(!mcp.digitalRead(i)) + ".";
}
text += String(!mcp.digitalRead(i+1)) + "\r";
Serial.println(text);
}
Per il bus I2C ho inserito due pullUp da 2K2 su SDA e SCL
Se qualcuno sa aiutarmi mi farebbe piacere.
Grazie in anticipo
Alan Masutti