#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
int a = 25, b = 14, c = 26, d = 27;
int A, B, C, D;
int compteur1 = 0;
int compteur2 = 0;
int compteur3 = 0;
int compteur4 = 0;
int precedent1 = 0;
int precedent2 = 0;
int precedent3 = 0;
int precedent4 = 0;
bool ecranEfface = 0;
void setup() {
Serial.begin(115200);
Serial.println("Hello, ESP32!");
pinMode(a, INPUT);
pinMode(b, INPUT);
pinMode(c, INPUT);
pinMode(d, INPUT);
lcd.init();
lcd.backlight();
delay(500);
lcd.setCursor(0, 0);
lcd.print("CoinCounter Pro");
lcd.setCursor(0, 1);
lcd.print("BTS SE");
}
void detection(int pin, int &precedent, int &compteur, const char* piece, int col, int lin)
{
int etatCapteur = digitalRead(pin);
if (etatCapteur == 1 && precedent == 0) {
precedent = 1;
compteur++;
if (!ecranEfface) {
lcd.clear();
ecranEfface = true;}
lcd.setCursor(col, lin);
lcd.print(piece);
lcd.setCursor(col + strlen(piece), lin);
lcd.print(compteur);
} else if (etatCapteur == 0) {
precedent = 0;
}
}
void loop()
{
A = digitalRead(a);
B = digitalRead(b);
C = digitalRead(c);
D = digitalRead(d);
detection(a, precedent1, compteur1, "0.5:", 0, 0);
detection(b, precedent2, compteur2, "1:", 11, 0);
detection(c, precedent3, compteur3, "5:", 0, 1);
detection(d, precedent4, compteur4, "10:", 11, 1);
delay(10); // this speeds up the simulation
}