Go Down

Topic: Problema controllo motorino DC con infrarosso e L293D. (Read 89 times) previous topic - next topic

Davide_Bot

Apr 21, 2017, 07:12 pm Last Edit: Apr 21, 2017, 07:18 pm by Davide_Bot
Salve a tutti,
sto automatizzando un motore dc e per farlo uso gli infrarossi.
Ho bisogno di farlo girare in entrambi i sensi di marcia e utilizzo l'integrato L293D, però ho un problema: quando premo il pulsante del mio telecomando per farlo accendere e girare esso funziona ma non posso fermarlo a meno che non resetti la scheda arduino (utilizzo arduino uno) oppure tolga alimentazione.
Una volta fermato in questo modo gira anche nell'altro senso di marcia se premo un'altro pulsante ma non posso nuovamente fermarlo da telecomando.
Utilizzo anche il monitor seriale per visualizzare i codici che invio casomai dovessi cambiarli e ho notato che quando il motore parte poi vengono stampati codici che non invio io, inoltre il led TX sulla scheda lampeggia.
Qualcuno ha già avuto a che fare con problemi del genere ed è riuscito a risolveri?

Ecco lo sketch:

Code: [Select]
#include <IRremote.h> //Dichiaro libreria
int SENSORE = 2; //Dichiaro pin sensore
int a = 5; //Dichiaro a
int b = 6; //Dichiaro b
int enable = 7;
IRrecv irrecv(SENSORE); //Crea'irrecv'
decode_results results;

void setup(){
  Serial.begin(9600); //Avvio monitor seriale
  irrecv.enableIRIn(); //Avvia il ricevitore
  pinMode(a, OUTPUT);
  pinMode(b, OUTPUT);
  pinMode(enable, OUTPUT);
  digitalWrite(enable, LOW);
}
void loop(){
  if (irrecv.decode(&results)){ //Ho ricevuto un segnale?
    Serial.println(results.value); //Stampa sul monitor seriale
    irrecv.resume();//Ricevi il prossimo valore
  }
 
  if ( results.value == 16724175){ //tasto 1 sul telecomando
    digitalWrite(enable, HIGH); //enable alto
    digitalWrite(a, HIGH); //a (pin 2)
    digitalWrite(b, LOW); //b (pin 7)
  }
 
  if ( results.value == 16718055){ //tasto 2 sul telecomando
    digitalWrite(enable, LOW);
  }
 
  if(results.value == 16743045){ //tasto 3 sul telecomando
    digitalWrite(enable, HIGH);
    digitalWrite(a, LOW);
    digitalWrite(b, HIGH);
    } 
}


Lo schema è in allegato.

nid69ita

Benvenuto. Essendo il tuo primo post, nel rispetto del regolamento, ti chiediamo cortesemente di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con attenzione il su citato REGOLAMENTO... Grazie.
Qui una serie di link utili, non inerenti al tuo problema:
- qui una serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections
- qui le pinout delle varie schede by xxxPighi: Pinout
- qui una serie di link generali utili: Link Utili
my name is IGOR, not AIGOR

Go Up