1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
| //pin moteur
int pin1_moteur1 = 2;
int pin2_moteur1 = 4;
int pinP_moteur1 = 5;
int pin1_moteur2 = 7;
int pin2_moteur2 = 8;
int pinP_moteur2 = 9;
//pin ultrason
int trig1 = 3;
int echo1 = 6;
int trig2 = 10;
int echo2 = 11;
int trig3 = 12;
int echo3 = 13;
int trig4 = A0;
int echo4 = A1;
//variables
long lecture_echo1;
long cm1;
long lecture_echo2;
long cm2;
long lecture_echo3;
long cm3;
long lecture_echo4;
long cm4;
void setup()
{
pinMode(trig1, OUTPUT);
digitalWrite(trig1, LOW);
pinMode(echo1, INPUT);
pinMode(trig2, OUTPUT);
digitalWrite(trig2, LOW);
pinMode(echo2, INPUT);
pinMode(trig3, OUTPUT);
digitalWrite(trig3, LOW);
pinMode(echo3, INPUT);
pinMode(trig4, OUTPUT);
digitalWrite(trig4, LOW);
pinMode(echo4, INPUT);
pinMode(pin1_moteur1,OUTPUT);
pinMode(pin2_moteur1,OUTPUT);
pinMode(pinP_moteur1,OUTPUT);
pinMode(pin1_moteur2,OUTPUT);
pinMode(pin2_moteur2,OUTPUT);
pinMode(pinP_moteur2,OUTPUT);
digitalWrite(pinP_moteur1,LOW); // les moteur ne tournent pas
digitalWrite(pinP_moteur2,LOW);
digitalWrite(pin1_moteur1,LOW);
digitalWrite(pin2_moteur1,HIGH); // on initialise la direction des moteurs
digitalWrite(pin1_moteur2,LOW);
digitalWrite(pin2_moteur2,HIGH);
Serial.begin(9600);
}
void loop()
{
// calcul de la distance des capteurs a ultrasons.
digitalWrite(trig1, HIGH);
digitalWrite(trig2, HIGH);
digitalWrite(trig3, HIGH);
digitalWrite(trig4, HIGH);
delayMicroseconds(10);
digitalWrite(trig1, LOW);
digitalWrite(trig2, LOW);
digitalWrite(trig3, LOW);
digitalWrite(trig4, LOW);
lecture_echo1 = pulseIn(echo1, HIGH);
cm1 = lecture_echo1 / 58;
lecture_echo2 = pulseIn(echo2, HIGH);
cm2 = lecture_echo2 / 58;
lecture_echo3 = pulseIn(echo3, HIGH);
cm3 = lecture_echo3 / 58; // ou on peut aussi ecrire cm = lecture_echo * 0.017
lecture_echo4 = pulseIn(echo4, HIGH);
cm4 = lecture_echo4 / 58;
Serial.print("Distance 1 : ");
Serial.println(cm1);
delay(300); //delay de base = 1000 : au cas ou
Serial.print("Distance 2 : ");
Serial.println(cm2);
delay(300);
Serial.print("Distance 3 : ");
Serial.println(cm3);
delay(300);
Serial.print("Distance 4 : ");
Serial.println(cm4);
delay(300);
} |
Partager