simulare pressione tasto con sensore infrarosso

Etemenanki:
Giusto per prova, la parte che rileva l'oggetto prova a farla cosi:

void loop()

{
 val = digitalRead(sensore_infrarosso);
 if ((val_old != val) && (val == LOW))    //oggetto davanti al sensore
 {
   ... istruzioni del pin uscita
   val_old = val;
 }
 if ((val_old != val) && (val == LOW))    //oggetto allontanato
 {
   val_old = val;
 }
}




Il primo if viene eseguito una sola volta nel momento in cui l'oggetto viene rilevato, poi NON viene piu eseguito finche' l'oggetto non se ne va e ritorna di nuovo (perche' val_old non e' piu diverso da val finche' non viene resettato dal secondo if), il secondo if allo stesso modo viene eseguito solo una volta quando l'oggetto si allontana dal sensore ... a proposito, le istruzioni del pin di uscita dovrebbero essere digitalWrite, non pinmode ... ;)

> SukkoPera: ovviamente va usato un partitore resistivo per la connessione dei due ... meglio non rischiare comunque, date le differenze di alimentazione ;)

Stavo vedendo la soluzione proposta da te e seguendo il tuo ragionamento non mi trovo, nel caso dell'oggetto allontanato

 if ((val_old != val) && (val == LOW))    //oggetto allontanato

il secondo confronto va fatto con

val == HIGH

Giusto?

Per quanto il pinmode, in un altro topic mi è stato detto che per simulare la pressione del tasto potevo fare nel seguente modo:

     pinMode (10, OUTPUT);
     delay (300);
     pinMode (10, INPUT);