Voila un petit robot roulant , qui peux être télécommandé
Voici une
photo , du robot que j'ai créé.
Les composants , que j'ai acheté:
carte DFRduino Duemilanove 328
Voila le code:
Module contrôleur de moteurs ( 2x1A )
2 mini motoreducteur 6V
2 Roue en caoutchouc
Kit infrarouge pour Arduino
Roulette a bille ( ball caster )
Boitier pour 4 piles LR6-AA
20 Fils mâle/mâle
Et voici le code que j'ai réalisé:
Et voici la librairie a télécharger pour le fonctionnement de la télécommande infrarouge: IR Remote Library
Voici une
photo , du robot que j'ai créé.
Les composants , que j'ai acheté:
carte DFRduino Duemilanove 328
Voila le code:
Module contrôleur de moteurs ( 2x1A )
2 mini motoreducteur 6V
2 Roue en caoutchouc
Kit infrarouge pour Arduino
Roulette a bille ( ball caster )
Boitier pour 4 piles LR6-AA
20 Fils mâle/mâle
Et voici le code que j'ai réalisé:
- Code:
#include
#include
//contrôle moteur
const int E1=5; //motor 1 (right) activer le code PIN
const int M1=4; //motor 1 (right) broche de direction
const int E2=6; //motor 2 (left) activer le code PIN
const int M2=7; //motor 2 (left) broche de direction
//Pin Module récepteur IR et variable
int RECV_PIN = 3;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
//configurer tous les broches de commande du moteur en sortie
pinMode(E1,OUTPUT);
pinMode(M1,OUTPUT);
pinMode(E2,OUTPUT);
pinMode(M2,OUTPUT);
//désactiver a la fois les moteurs par défaut
digitalWrite(E1,LOW);
digitalWrite(E2,LOW);
Serial.begin(9600);
//le récepteur IR
irrecv.enableIRIn();
}
void loop()
{
Serial.println(results.value, DEC);
//IR signal reçu
if(irrecv.decode(&results))
{
//avant (VOL )
if(results.value==0xFD807F)
{
motor(40,40);
}
//inversée (VOL-)
else if(results.value==0xFD906F)
{
motor(-40,-40);
}
//pivoter vers la gauche (PREVIOUS)
else if(results.value==0xFD20DF)
{
motor(-30,30);
}
//pivoter vers la droite (NEXT)
else if(results.value==0xFD609F)
{
motor(30,-30);
}
//avant gauche (POWER)
else if(results.value==0xFD00FF)
{
motor(10,40);
}
//droit devant (FUNC/STOP)
else if(results.value==0xFD40BF)
{
motor(40,10);
}
//inversée gauche (DOWN)
else if(results.value==0xFD10EF)
{
motor(-10,-40);
}
//inverse à droite (UP)
else if(results.value==0xFD50AF)
{
motor(-40,-10);
}
//recevoir la prochaine valeur
irrecv.resume();
//court délai d'attente pour répéter le signal IR
// (empêcher de s'arrêter si aucun signal reçu)
delay(150);
}
//aucun signal IR reçu
else
{
//arrêt de la roue droite
digitalWrite(E1,LOW);
//arrêt de la roue gauche
digitalWrite(E2,LOW);
}
}
//Fonction de commande du moteur
void motor(int left, int right)
{
//limiter la vitesse max
if(left>255)left=255;
else if(left<-255)left=-255;
if(right>255)right=255;
else if(right<-255)right=-255;
//roue gauche avant
if(left>0)
{
//direction de la roue gauche avant
digitalWrite(M2,HIGH);
//vitesse de la roue gauche
analogWrite(E2,left);
}
//inverser la roue gauche
else if(left<0)
{
//léfé inverser de la direction de roue
digitalWrite(M2,LOW);
//vitesse de la roue gauche
analogWrite(E2,-left);
}
//arrêt de la roue gauche
else
{
//arrêt de la roue gauche
digitalWrite(E2,LOW);
}
//roue droite avant
if(right>0)
{
//direction de la roue droite avant
digitalWrite(M1,LOW);
analogWrite(E1,right);
}
//inverse de la roue droite
else if(right<0)
{
//droit de l'inverser de la direction de roue
digitalWrite(M1,HIGH);
analogWrite(E1,-right);
}
//arrêt de la roue droite
else
{
//arrêt de la roue droite
digitalWrite(E1,LOW);
}
}//SEB03000
Et voici la librairie a télécharger pour le fonctionnement de la télécommande infrarouge: IR Remote Library