Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Ricerca personalizzata

Problema con ricevitore ir e relè

Progetti, interfacciamento, discussioni varie su questa piattaforma.

Moderatori: Foto UtenteMassimoB, Foto Utentexyz, Foto UtenteWALTERmwp

0
voti

[1] Problema con ricevitore ir e relè

Messaggioda Foto Utentedadothebest » 7 mag 2017, 22:05

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!
Avatar utente
Foto Utentedadothebest
23 1 7
Frequentatore
Frequentatore
 
Messaggi: 186
Iscritto il: 25 nov 2013, 16:13
Località: Ascoli Piceno

0
voti

[2] Re: Problema con ricevitore ir e relè

Messaggioda Foto Utentexyz » 7 mag 2017, 22:24

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/
Avatar utente
Foto Utentexyz
3.990 2 4 5
Master EY
Master EY
 
Messaggi: 1088
Iscritto il: 5 dic 2009, 17:37
Località: Italy Turin

0
voti

[3] Re: Problema con ricevitore ir e relè

Messaggioda Foto UtenteMassimoB » 10 mag 2017, 0:19

Io lavorerei sulle rampe di salita e discesa più che sul tempo, sempre che abbia ben interpretato la domanda ed il poco codice postato
è meglio star zitti piuttosto che dire stupidate
Avatar utente
Foto UtenteMassimoB
12,7k 6 12 13
Expert free
 
Messaggi: 2971
Iscritto il: 28 ott 2012, 8:56
Località: Milano

0
voti

[4] Re: Problema con ricevitore ir e relè

Messaggioda Foto Utentexyz » 10 mag 2017, 18:24

Non ha rampe il numero rappresenta il codice del tasto del telecomando IR premuto.
Avatar utente
Foto Utentexyz
3.990 2 4 5
Master EY
Master EY
 
Messaggi: 1088
Iscritto il: 5 dic 2009, 17:37
Località: Italy Turin

0
voti

[5] Re: Problema con ricevitore ir e relè

Messaggioda Foto Utentedadothebest » 12 mag 2017, 9:01

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?
Avatar utente
Foto Utentedadothebest
23 1 7
Frequentatore
Frequentatore
 
Messaggi: 186
Iscritto il: 25 nov 2013, 16:13
Località: Ascoli Piceno

0
voti

[6] Re: Problema con ricevitore ir e relè

Messaggioda Foto Utentexyz » 12 mag 2017, 17:37

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.
Avatar utente
Foto Utentexyz
3.990 2 4 5
Master EY
Master EY
 
Messaggi: 1088
Iscritto il: 5 dic 2009, 17:37
Località: Italy Turin

0
voti

[7] Re: Problema con ricevitore ir e relè

Messaggioda Foto Utentedadothebest » 12 mag 2017, 20:50

Attivato, mi sembra che non dia nessun errore
Avatar utente
Foto Utentedadothebest
23 1 7
Frequentatore
Frequentatore
 
Messaggi: 186
Iscritto il: 25 nov 2013, 16:13
Località: Ascoli Piceno

0
voti

[8] Re: Problema con ricevitore ir e relè

Messaggioda Foto Utentedadothebest » 14 mag 2017, 17:40

Nessuno? :cry:
Avatar utente
Foto Utentedadothebest
23 1 7
Frequentatore
Frequentatore
 
Messaggi: 186
Iscritto il: 25 nov 2013, 16:13
Località: Ascoli Piceno

0
voti

[9] Re: Problema con ricevitore ir e relè

Messaggioda Foto Utentexyz » 14 mag 2017, 17:58

Non dai altri dati. Se esiste un problema hardware durante il trasferimento del firmware il programmatore segnala errore.
Avatar utente
Foto Utentexyz
3.990 2 4 5
Master EY
Master EY
 
Messaggi: 1088
Iscritto il: 5 dic 2009, 17:37
Località: Italy Turin

0
voti

[10] Re: Problema con ricevitore ir e relè

Messaggioda Foto Utentedadothebest » 15 mag 2017, 14:57

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.
Avatar utente
Foto Utentedadothebest
23 1 7
Frequentatore
Frequentatore
 
Messaggi: 186
Iscritto il: 25 nov 2013, 16:13
Località: Ascoli Piceno


Torna a Arduino

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite