Il seguente codice permette al sensore di percepire quando un oggetto gli passa davanti e addizionare 1 ogni volta che un nuovo oggetto passa.
Dopo aver dichiarato le variabili “state” e “laststate” con valore logico basso, il sensore quando rileva un oggetto porta la variabile “state” a livello logico alto e lascia invariata la variabile “laststate”.Ogni volta che ciò accade viene addizionato 1 al conteggio visibile sul display.
CODICE:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
int state=LOW;
int lastState=LOW;
int count=0;
void setup(){
lcd.begin(16, 2);
Serial.begin(9600);
pinMode(8, INPUT);
state=digitalRead(8);
}
void loop(){
if (state==HIGH && lastState==LOW){
count++;
delay (100);
Serial.println(count);
lcd.setCursor(0, 0);
lcd.print(“Num. auto: “);
lcd.setCursor(0, 1);
lcd.print(count);
}
lastState=state;
state=digitalRead(8);
}