Pagina 1 di 1

Problema con ricevitore ir e relè

MessaggioInviato: 7 mag 2017, 23:05
da dadothebest
Ciao, avrei in mente di controllare un relè con un telecomando ir. Il mio obiettivo è quello di premere un tasto sul telecomando e accendere il relè, premero lo stesso tasto sul telecomando e spegnere il relè. Ho provato il seguente sketch (riporto solo la parte nel loop):
Codice: Seleziona tutto
void loop() {

if (irrecv.decode(&results)) {Serial.println(results.value, HEX); irrecv.resume();}

if ( (results.value == 0xFFA25D ) &&(stato_giradischi ==0)){digitalWrite(giradischi, LOW);stato_giradischi =1;}

if (( results.value == 0xFFA25D )&&(stato_giradischi ==1)) {digitalWrite(giradischi, HIGH);stato_giradischi =0;}
}

funziona correttamente solo che lo stato del relè varia velocemente, cioè se tengo premuto il tasto sul telecomando oppure premo il tasto in sequenza il relè si accende e spegne molto velocemente. Avevo pensato di inserire una temporizzazione che iberna lo stato del relè per un tempo prestabilito senza bloccare il codice e la recezione di altri tasti sul telecomando, ma non riesco a farlo funzionare in nessun modo.
Qualcuno può consigliarmi qualcosa? Grazie!

Re: Problema con ricevitore ir e relè

MessaggioInviato: 7 mag 2017, 23:24
da xyz
La cosa più semplice è leggere il tempo trascorso tra 2 click consecutivi, se troppo breve eviti di pilotare l'uscita, la documentazione spiega come leggere il tempo in millisecondi:

https://www.arduino.cc/en/reference/millis

Uno dei tanti esempi di utilizzo:

http://www.electroschematics.com/8975/a ... rol-relay/

Re: Problema con ricevitore ir e relè

MessaggioInviato: 10 mag 2017, 1:19
da MassimoB
Io lavorerei sulle rampe di salita e discesa più che sul tempo, sempre che abbia ben interpretato la domanda ed il poco codice postato

Re: Problema con ricevitore ir e relè

MessaggioInviato: 10 mag 2017, 19:24
da xyz
Non ha rampe il numero rappresenta il codice del tasto del telecomando IR premuto.

Re: Problema con ricevitore ir e relè

MessaggioInviato: 12 mag 2017, 10:01
da dadothebest
Grazie dell'aiuto. L'esempio che è stato postato funziona benissimo e l'ho modificato affinché funzionasse con il telecomando. Ho così scritto il seguente sketch:
Codice: Seleziona tutto
#include <IRremote.h>

int receiver = 11; // pin 1 of IR receiver to Arduino digital pin 11
IRrecv irrecv(receiver);
decode_results results;

//DEFINISCO I PIN UTILIZZATI


#define ritardo_pulsante 200

int pinButton = 8;
int Relay = A5;
int stateRelay = LOW;
int stateButton;
int previous = LOW;
long time = 0;
long debounce = 500;
int lettura_pulsante_giradischi;

void setup() {
    Serial.begin(9600);

  irrecv.enableIRIn();
  pinMode(pinButton, INPUT);
  pinMode(Relay, OUTPUT);
}

void loop() {
  if (irrecv.decode(&results)) {Serial.println(results.value, HEX); irrecv.resume();}
     stateButton = (results.value == 0xFF629D);
 

  stateButton = digitalRead(pinButton); 
  if(stateButton == HIGH && previous == LOW && millis() - time > debounce) {
    if(stateRelay == HIGH){
      stateRelay = LOW;
    } else {
       stateRelay = HIGH;
    }
    time = millis();
  }
  digitalWrite(Relay, stateRelay);
  previous == stateButton;
}

funziona correttamente.
Oggi ho caricato un nuovo sketch su arduino per una prova ed inseguito ho ricaricato quello scritto sopra ma non funziona più, non da nessun errore di compilazione, viene caricato ma una volta messo in funzione non funziona più come ieri. La stessa cosa mi sta succedendo con altri sketch scritti e funzionanti in giorni passati ma ora non più funzionanti mentre se scrivo un nuovo codice oppure ne uso uno vecchio in modo casuale funziona. Come mai questo comportamento?

Re: Problema con ricevitore ir e relè

MessaggioInviato: 12 mag 2017, 18:37
da xyz
Abilita il verbose output in preferences. Se esiste un problema di comunicazione o il firmware non viene caricato correttamente vengono visualizzati i messaggi in console.

Re: Problema con ricevitore ir e relè

MessaggioInviato: 12 mag 2017, 21:50
da dadothebest
Attivato, mi sembra che non dia nessun errore

Re: Problema con ricevitore ir e relè

MessaggioInviato: 14 mag 2017, 18:40
da dadothebest
Nessuno? :cry:

Re: Problema con ricevitore ir e relè

MessaggioInviato: 14 mag 2017, 18:58
da xyz
Non dai altri dati. Se esiste un problema hardware durante il trasferimento del firmware il programmatore segnala errore.

Re: Problema con ricevitore ir e relè

MessaggioInviato: 15 mag 2017, 15:57
da dadothebest
Non do altri dati perché non saprei cosa scrivere, la sera alle 22 funzionava, stacco il cavo USB dal PC e vado a dormire senza toccare altro, la mattina ricollego il cavo USB di arduino al PC, carico un altro programma (sempre non toccando l'hardware) e tutto funziona, ricarico il codice della sera precedente e questo non funziona più, non compare nessun errore (anche attivando il verbose output) ma se interagisco con l'hardware collegato su arduino non risponde nulla. Ho provato a caricare altri codici vecchi già funzionanti e testati, alcuni funzionano e altri no, lo stesso problema se cambio PC.