Ho seguito il tuo consiglio, ho fatto il primo sketch, dove su monitor seriale ho letto il valore del sensore sia con un oggetto posto avanti che non.
Quando dinanzi al sensore NON c'è nessun oggetto il suo valore è HIGH
Quando dinanzi al sensore C'E' un oggetto il suo valore è risultato LOW
il codice l'ho modificato nel seguente modo, ma purtroppo non riesco a capire dov'è l'errore
#define sensore_infrarosso 4
byte val = HIGH;
byte val_old = HIGH;
void setup() {
pinMode(sensore_infrarosso, INPUT);
}
void loop() {
val = digitalRead(sensore_infrarosso);
if ((val_old == HIGH) && (val == LOW)) {
// rilevo oggetto
val_old = val;
pinMode (10, OUTPUT);
delay (300);
pinMode (10, INPUT);;
}
else if ((val_old == LOW) && (val == LOW)) {
// oggetto ancora davanti al sensore
}
else if (( val_old == LOW) && (val == HIGH)) {
// oggetto allontanato
val_old = val;
}
}