nuovo quesito sulla libreria Ir

Ciao ragazzi, ho un altro problema per risolvere i conflitti hardware e software con la libreria Ir;
Praticamente questa volta devo accendere delle lampade sia tramite arduino sia tramite pulsanti.
per non rifare l' impianto elettrico e senza modificare niente ho deciso di usare dei comunissimi relay bistabili che vengono usati al 99% nelle case..
c'è un piccolo problema, i relay bistabili che normalmente funzionano con i pulsanti, vengono appunto alimentati per il tempo in cui si preme il pulsante e rimangono in quella posizione anche senza alimentazione, allora ad arduino ho dato questa semplice istruzione:

"Se il pulsante xxx del telecomando è premuto:
Alimenta il relay e dopo 500 ms riportalo allo stato iniziale (0)."

 if(results.value == PADD)  {
      digitalWrite(8, HIGH);
      delay(500);
      digitalWrite(8, LOW);
   }

Non riesco, il relay non torna in posizione 0 e rimane a eccitato..
Ho provato anche con altri tempi ma niente da fare..

Questo mi complica le cose perché se il relay è costantemente alimentato da arduino non posso interagire con i pulsanti di casa..

Qualcuno sa perché?
È come se quando premo il pulsante xxx del telecomando rimanesse attivo se non fino a quando non ne premo un altro...
grazie...

Non è che per caso la variabile result.value non viene aggiornata dopo che il tasto è stato rilasciato?
Se è così sarebbe normale che il relè rimane eccitato, se la variabile non cambia dopo che il tasto è rilasciato è come se tu stessi ancora premendo il pulsante.
Ciao

E come posso aggiornare la variabile results.value?

Sto cercando il metodo più veloce e meno impegnativo

Di che tipo è la variabile? Int? Char?
Fa una cosa... mettiamo il caso che la variabile fosse di tipo int, alla fine del codice gli vai ad assegnare un valore che non è usato da nessun altro pulsante:

if(results.value == PADD)  {
      digitalWrite(8, HIGH);
      delay(500);
      digitalWrite(8, LOW);

      results.value = 0; // cambia il valore in base al tipo di variabile      

   }

Ovviamente il valore che gli vai ad assegnare non deve corrispondere a nessun altro tasto
Ciao

Mi hai risolto il problema in un battito d'occhio...

Ho dato al posto di zero un valore che nemmeno esiste nel telecomando e funziona, grazie!!
Penso avrei ottenuto lo stesso risultato anche utilizzando un valore reale del telecomando ma va molto meglio così :slight_smile:

Penso che ora che mi hai risolto il problema posto anche lo schema elettrico così chi passa avrà già gli aiuti per il codice che per i collegamenti:

Uploaded with ImageShack.us

Ovviamente per non incappare in problemi ho un doppio isolamento (il moc e il triac) dalla 230.

Felice di averti consigliato bene :slight_smile:

Ho dato uno sguardo allo schema, secondo me sarebbe opportuno mettere una resistenza tra il pin dell'arduino e il fotoaccoppiatore.

Sorry, la fretta di disegnare mi ha fatto dimenticare la resistenza :grin:
Di nuovo grazie, ora correggo al volo

Per non aprire troppi post volevo chiedere se il circuito può andar bene...

Uploaded with ImageShack.us

Uploaded with ImageShack.us

Uploaded with ImageShack.us

Ho cercato il più possibile di allontanarmi dalla 230, e spero che così vada bene =(
Inoltre non ho ancora imparato come fare per riempire il vuoto con piste di massa, così da perdere sia meno tempo con gli acidi, sia per schermare un attimino di più la scheda, qualcuno ha idee?
Uso target 3001 per progettare..

Anyone? :smiley: