#include <Adafruit_MCP23X17.h>
#include <LiquidCrystal.h>
Adafruit_MCP23X17 mcp1;
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// set up the MCP
mcp1.begin_I2C(0x20); // Utiliser l'adresse par défaut 0x20
activationEntreeMcp1();
}
void loop() {
for (int pin = 0; pin <= 15; pin++) {
if (!mcp1.digitalRead(pin)) {
switch (pin) {
case 0:
affichagelcd("A");
break;
case 1:
affichagelcd("B");
break;
case 2:
affichagelcd("C");
break;
case 3:
affichagelcd("D");
break;
case 4:
affichagelcd("E");
break;
case 5:
affichagelcd("F");
break;
case 6:
affichagelcd("G");
break;
case 7:
affichagelcd("H");
break;
case 8:
affichagelcd("J");
break;
case 9:
affichagelcd("K");
break;
case 10:
affichagelcd("L");
break;
case 11:
affichagelcd("M");
break;
case 12:
affichagelcd("N");
break;
case 13:
affichagelcd("P");
break;
case 14:
affichagelcd("R");
break;
case 15:
affichagelcd("S");
break;
}
} else {
affichagelcd("");
}
}
}
void activationEntreeMcp1() {
for (int entree = 0; entree <= 15; entree++) {
mcp1.pinMode(entree, INPUT_PULLUP);
}
}
char affichagelcd(const char* point) {
lcd.setCursor(0, 0);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("Point ");
lcd.print(point);
}