Niveau : 3° Discipline : Technologie
Objectif : fabriquer un robot autonome à capteur de contact propulsé par 2 moteurs à courant continu
matériel :
- carte arduino
- 2 moteurs cc 4,5V
- ponts en H (L293D)
- piles 9V
- 2 interrupteurs switch
Montage :
//robot moteur capteur
//branchement capteur
const int capdpin = 6;
const int capgpin = 7;
//branchement commandes
const int com1pin = 2;
const int com2pin = 4;
const int com3pin = 3;
const int com4pin = 5;
//variable pour mémoriser la valeur lue
int val = 0;
//variable pour le pivotement
int pivo;
//configure les entrées et sorties
void setup()
{
pinMode (capdpin, INPUT);
pinMode (capgpin, INPUT);
pinMode (com1pin, OUTPUT);
pinMode (com2pin, OUTPUT);
pinMode (com3pin, OUTPUT);
pinMode (com4pin, OUTPUT);
}
//test et commande
void loop()
{
//test capteur droit
val = digitalRead(capdpin);
if (val == LOW)
{
pivo = 1;
recul ();
}
else
avance ();
//test capteur gauche
val = digitalRead(capgpin);
if (val == LOW)
{
pivo = 0;
recul ();
}
else
avance ();
}
void avance ()//fonction avance
{ //robot avance gauche
delay (500);
digitalWrite(com2pin, HIGH);
digitalWrite(com4pin, LOW);
//robot avance droite
digitalWrite(com1pin, HIGH);
digitalWrite(com3pin, LOW);
}
void recul ()//fonction de recul
{ //arret du robot
digitalWrite(com2pin, LOW);
digitalWrite(com4pin, LOW);
digitalWrite(com1pin, LOW);
digitalWrite(com3pin, LOW);
delay (500);
//robot recul gauche et droit
digitalWrite(com2pin, LOW);
digitalWrite(com4pin, HIGH);
digitalWrite(com1pin, LOW);
digitalWrite(com3pin, HIGH);
delay (1000);
if (pivo == 1)
{ //robot pivote droite
digitalWrite(com2pin, LOW);
digitalWrite(com4pin, LOW);
digitalWrite(com1pin, LOW);
digitalWrite(com3pin, HIGH);
}
else
{//robot pivote gauche
digitalWrite(com2pin, LOW);
digitalWrite(com4pin, HIGH);
digitalWrite(com1pin, LOW);
digitalWrite(com3pin, LOW);
}
delay (500);
}


