Creato da: DonnyLennon il 05/01/2011
esperienze, appunti e risorse di elettronica e robotica
|
Area personale- Login
Contatta l'autore
TagUltimi commenti |
Cerca in questo Blog
Come riutilizzare un vecchio telecomando da tv?
Post n°4 pubblicato il 22 Maggio 2012 da DonnyLennon
Come riutilizzare un vecchio telecomando da tv, per pilotare due motori elettrici, e far muovere un piccolo robot? Basta un ricevitore IR, un driver per i motori, e ovviamente Arduino!
Lo schema a blocchi è semplice:
Il telecomando invia un codice binario al ricevitore Infrarossi. Arduino utilizzando la libreria IRremote converte questi codici in un segnale di comando per il driver L298 che pilota i moroti DC. Il collegamento tra il driver L298, motori, arduino è il seguente: Questo è il codice utilizzato:
#include
int RECV_PIN = 11;
int motore1 = 4; int motore2 = 5; int motore3 = 6; int motore4 = 7;
int ledPin= 13;
IRrecv irrecv(RECV_PIN); decode_results results;
void setup() { Serial.begin(9600); irrecv.enableIRIn(); // Start the receiver
pinMode(motore1, OUTPUT); pinMode(motore2, OUTPUT); pinMode(motore3, OUTPUT); pinMode(motore4, OUTPUT); pinMode(ledPin, OUTPUT);
digitalWrite(motore1, LOW); digitalWrite(motore2, LOW); digitalWrite(motore3, LOW); digitalWrite(motore4, LOW);
digitalWrite(ledPin, HIGH); }
void loop() {
if (irrecv.decode(&results)) {Serial.println(results.value, DEC); //Restituisce il codice in esadecimale. irrecv.resume();}
if (results.value == 1988706750) // VAI AVANTI {digitalWrite(motore1, HIGH); digitalWrite(motore2, LOW); digitalWrite(motore3, HIGH); digitalWrite(motore4, LOW); delay(200);}
if (results.value == 1988727150) // VAI INDIETRO {digitalWrite(motore1, LOW); digitalWrite(motore2, HIGH); digitalWrite(motore3, LOW); digitalWrite(motore4, HIGH); delay(200);}
if (results.value == 1988692470) //VAI A DX {digitalWrite(motore1, HIGH); digitalWrite(motore2, LOW); digitalWrite(motore3, LOW); digitalWrite(motore4, LOW); delay(200);}
if (results.value == 1988739390) // VAI A SX {digitalWrite(motore1, LOW); digitalWrite(motore2, LOW); digitalWrite(motore3, HIGH); digitalWrite(motore4, LOW); delay(200);}
if (results.value == 1988718990) // STAI FERMO {digitalWrite(motore1, LOW); digitalWrite(motore2, LOW); digitalWrite(motore3, LOW); digitalWrite(motore4, LOW); delay(200);}
}
|
Inviato da: diletta.castelli
il 22/10/2016 alle 13:31
Inviato da: guoter
il 15/02/2016 alle 16:19
Inviato da: mino0497
il 12/09/2015 alle 19:20
Inviato da: dado7620
il 11/07/2013 alle 23:22
Inviato da: ZEDBeatz
il 26/05/2013 alle 00:40