Go Down

Topic: Sensore IR e relè monostabile per comandare relè passo passo (Read 1 time) previous topic - next topic

orzowilde

Salve, sono nuovo del forum e volevo congratularmi con tutti voi per quello che fate...
Sono un neofita di Arduino e mi piace tantissimo perchè permette di fare un sacco di cose offrendo una vasta gamma di sensori e dispositivi...
Ho un piccolo problema con un progettino trovato in rete... un sensore IR collegato ad arduino UNO che mi permette, tramite un telecomando standard, di eccitare un relè monostabile da 6 volt (bobina) e 220v (contatti) per 1 secondo che a sua volta faccia avanzare di un passo il relè dell'illuminazione di casa, quindi 220v.

allego codice:

Code: [Select]
#include <IRremote.h> // use the library

int receiver = 11; // pin 1 of IR receiver to Arduino digital pin 11
IRrecv irrecv(receiver); // create instance of 'irrecv'
decode_results results;
int RELE =7;

void setup()
{
  Serial.begin(9600); // for serial monitor output
  irrecv.enableIRIn(); // Start the receiver
  pinMode(RELE, OUTPUT); // Pin 9 output
}
void loop()
{
  if (irrecv.decode(&results)) // have we received an IR signal?
  {
    Serial.println(results.value, HEX); // display it on serial monitor in hexadecimal
    irrecv.resume();// receive the next value
  }

  if ( results.value == 0xE13DDA28)//tasto 6 sul telecomando
  {
     digitalWrite(RELE,HIGH);
     delay(1000);
     digitalWrite(RELE,LOW);

   
  }

}


il codice è molto semplice.... il vero problema è che il relè scatta HIGH e dopo un secondo si sente un altro tic ma non torna a LOW....ci torna dopo aver premuto un altra volta il bottone del telecomando...

pensavo si trattasse di un difetto del relè ma ne ho provato un altro e niente da fare.... poi ho provato lo sketch BLINK e il relè funziona perfettamente....

spero possiate aiutarmi e ringrazio anticipatamente...... :smiley-roll:

Damidu

Mi dispiace non poterti aiutare in quanto anch'io sono in cerca di risposte.

Forse puoi aiutarmi tu  :smiley-mr-green: , potresti darmi lo schema di collegamento che hai utilizzato e i vari componenti?

orzowilde

@Damidu
Certo.... il forum serve a questo, no??

Ho fatto uno schizzo....

stefa24

ciao
il problema potrebbe essere che results.value= memorizza e mantiene il valore memorizzato, quindi quando ricomincia il loop la condizione di if e sempre vera, quindi devi svuotare la variabile, prova a scrivere results.value=0 alla fine del loop

stefano
https://sites.google.com/site/agritronica/
https://sites.google.com/site/t3chconcrete/
https://www.youtube.com/channel/UCnY1DNrSywgadjyqqtbvyew
arduino UNO rev 3
ide 1.6.0

orzowilde

Ciao Stefa24 e grazie per la risposta....

ma dove lo devo inserire result.value=0 dopo

Code: [Select]
{
     digitalWrite(RELE,HIGH);
     delay(1000);
     digitalWrite(RELE,LOW);

   
  }


e qual'è la sintassi giusta???

scusa ma sono alle prime armi...

orzowilde

FANTASTICOOOO!!!!!
Grazie a Stefa24 ho risolto....
vi posto se vi interessa il codice con la correzione....

Code: [Select]
#include <IRremote.h> // use the library

int receiver = 11; // pin 1 of IR receiver to Arduino digital pin 11
IRrecv irrecv(receiver); // create instance of 'irrecv'
decode_results results;
int RELE =7;

void setup()
{
  Serial.begin(9600); // for serial monitor output
  irrecv.enableIRIn(); // Start the receiver
  pinMode(RELE, OUTPUT); // Pin 9 output
}
void loop()
{
  if (irrecv.decode(&results)) // have we received an IR signal?
  {
    Serial.println(results.value, HEX); // display it on serial monitor in hexadecimal
    irrecv.resume();// receive the next value
  }

  if ( results.value == 0xE13DDA28)//tasto 6 sul telecomando
  {
     digitalWrite(RELE,HIGH);
     delay(1000);
     digitalWrite(RELE,LOW);
results.value=0;
   
  }

}



GRAZIE

stefa24

ciao
perfetto
l'istruzione và messa dentro le parentesi dell'if o anche tra le parentesi del loop

stefano
https://sites.google.com/site/agritronica/
https://sites.google.com/site/t3chconcrete/
https://www.youtube.com/channel/UCnY1DNrSywgadjyqqtbvyew
arduino UNO rev 3
ide 1.6.0

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy