LinuxÉdu

Robot moustache

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);
 }

Comments are closed.