Problème programme de Arduino
BlablacarBleu
1 Messages
Le vendredi 3 mai 2024 à 09:46:16
Bonjours, j’aimerais savoir ce qui ne va pas dans mon code Arduino qui a pour programme :Programme suiveur de ligne pour robot sumo de 3 capteurs:Si capteur droit = 1 (=1 veut dire détecte une ligne noir) alors tourner à droite Si capteur gauche = 1 alors tourner à gauche Si capteur milieu = 1 alors avancer vers l’avant Si capteur droit = 0, capteur gauche = 0 et capteur milieu = 0 alors reculer Si capteur droit = 1, capteur gauche = 1 et capteur milieu = 1 alors s’arrêter Programme pour définir les moteurs de mes 2 roues motrices:Tourner à droite : allumer moteur roue gauche et allumer à 50% moteur roue droite Tourner à gauche : allumer moteur roue droit et allumer à 50% moteur roue gauche Avancer : allumer moteur roue droit et allumer moteur roue gauche Reculer : allumer moteur roue droit et inverser le sens de rotation de roue droit et allumer moteur roue gauche et inverser le sens de rotation de roue gauche S’arrêter : arrêter moteur roue droit et arrêter moteur roue gauche Voici le code Arduino :Programme suiveur de ligne pour robot sumo de 3 capteurs:Si capteur droit = 1 (=1 veut dire détecte une ligne noir) alors tourner à droite Si capteur gauche = 1 alors tourner à gauche Si capteur milieu = 1 alors avancer vers l’avant Si capteur droit = 0, capteur gauche = 0 et capteur milieu = 0 alors reculer Si capteur droit = 1, capteur gauche = 1 et capteur milieu = 1 alors s’arrêter Programme pour définir les moteurs de mes 2 roues motrices:#define led D6#define bouton D7int etatbouton = 0;int etatPrecedent = 0;#define IN1 = A0 //Pin pour Le Capteur Gauche#define IN4 = A1 //Pin pour Le Capteur Droite#define IN7 = A2 //Pin pour Le Capteur Milieuint GA=,GB=3,DA=13,DB=11; //Pin pour Deux moteurs (GA et GB pour le moteur Gauche, DA et DB pour le moteur de droite)void setup() { Serial.begin(9600); pinMode(led, INPUT); // initialisation de la broche "led" en mode sortie pinMode(bouton, INPUT); // bouton en mode entrée pinMode(IN1, INPUT); pinMode(IN4, INPUT); pinMode(IN7, INPUT); pinMode(DA, OUTPUT); pinMode(DB, OUTPUT); pinMode(GA, OUTPUT); pinMode(GB, OUTPUT);}// Fonctions pour contrôler les moteursvoid d() { digitalWrite(DA, LOW); analogWrite(DB, 127); // 50% de la vitesse analogWrite(GA, 127); // 50% de la vitesse digitalWrite(GB, LOW);}void g() { analogWrite(DA, 127); // 50% de la vitesse digitalWrite(DB, LOW); digitalWrite(GA, LOW); analogWrite(GB, 127); // 50% de la vitesse}void av() { digitalWrite(DA, LOW); analogWrite(DB, 127); // 50% de la vitesse digitalWrite(GA, LOW); analogWrite(GB, 127); // 50% de la vitesse}void rec() { digitalWrite(DA, HIGH); digitalWrite(DB, HIGH); digitalWrite(GA, HIGH); digitalWrite(GB, HIGH);}void loop() { int in1_val = digitalRead(IN1); int in4_val = digitalRead(IN4); int in7_val = digitalRead(IN7); if (in1_val == 1 && in7_val == 0 && in4_val == 0) { Serial.println("Tourner à gauche"); g(); } else if (in1_val == 0 && in7_val == 0 && in4_val == 1) { Serial.println("Tourner à droite"); d(); } else if (in1_val == 0 && in7_val == 1 && in4_val == 0) { Serial.println("Avancer"); av(); } else if (in1_val == 0 && in7_val == 0 && in4_val == 0) { Serial.println("Reculer"); rec(); } else if (in1_val == 1 && in7_val == 1 && in4_val == 1) { Serial.println("S'arrêter"); arreter(); }}void arreter() { digitalWrite(DA, LOW); digitalWrite(DB, LOW); digitalWrite(GA, LOW); digitalWrite(GB, LOW);}Le dimanche 5 mai 2024 à 08:57:25
Salut @BlablacarBleu,
Avant de répondre à ta question, peux-tu stp mettre en forme ton code en le plaçant entre deux balises "code", comme ceci :
Sans ça, c'est très difficile de lire ton code.
Merci
PS : tu peux éditer ton message directement
Avant de répondre à ta question, peux-tu stp mettre en forme ton code en le plaçant entre deux balises "code", comme ceci :
[code=arduino]
ton code ici
[/code]
Sans ça, c'est très difficile de lire ton code.
Merci
PS : tu peux éditer ton message directement