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