Code Arduino

Vous aimerez peut-être aussi

Vous êtes sur la page 1sur 4

CODE DE ROBOT SUIVEUR DE LIGNE à 4 ROUES :

Un code de robot suiveur de ligne à 4 roues est un programme informatique qui permet à un robot
à 4 roues de détecter une ligne tracée sur une surface et de la suivre en utilisant des capteurs.
Voici un exemple de code pour un robot suiveur de ligne à 4 roues en utilisant le langage de
programmation Arduino :

int capteur_droit1 = A0; // Le capteur droit 1 est connecté à la broche analogique A0

int capteur_droit2 = A1; // Le capteur droit 2 est connecté à la broche analogique A1

int capteur_gauche1 = A2; // Le capteur gauche 1 est connecté à la broche analogique A2

int capteur_gauche2 = A3; // Le capteur gauche 2 est connecté à la broche analogique A3

int Motor_droit1 = 6; // Le moteur droit 1 est connecté à la broche 6

int Motor_droit2 = 7; // Le moteur droit 2 est connecté à la broche 7

int Motor_gauche1 = 8; // Le moteur gauche 1 est connecté à la broche 8

int Motor_gauche2 = 9; // Le moteur gauche 2 est connecté à la broche 9

void setup() {

pinMode(capteur_droit1, INPUT); // Configurer le capteur droit 1 en entrée

pinMode(capteur_droit2, INPUT); // Configurer le capteur droit 2 en entrée

pinMode(capteur_gauche1, INPUT); // Configurer le capteur gauche 1 en entrée

pinMode(capteur_gauche2, INPUT); // Configurer le capteur gauche 2 en entrée

pinMode(Motor_droit1, OUTPUT); // Configurer le moteur droit 1 en sortie

pinMode(Motor_droit2, OUTPUT); // Configurer le moteur droit 2 en sortie

pinMode(Motor_gauche1, OUTPUT); // Configurer le moteur gauche 1 en sortie

pinMode(Motor_gauche2, OUTPUT); // Configurer le moteur gauche 2 en sortie

void loop() {

int val_capteur_droit1 = analogRead(capteur_droit1); // Lire la valeur du capteur droit 1


int val_capteur_droit2 = analogRead(capteur_droit2); // Lire la valeur du capteur droit 2

int val_capteur_gauche1 = analogRead(capteur_gauche1); // Lire la valeur du capteur gauche 1

int val_capteur_gauche2 = analogRead(capteur_gauche2); // Lire la valeur du capteur gauche 2

if (val_capteur_droit1 < 500 && val_capteur_droit2 < 500 && val_capteur_gauche1 < 500 &&
val_capteur_gauche2 < 500) {

// Si les 4 capteurs détectent la ligne

digitalWrite(Moteur_droit1, HIGH); // Activer le moteur droit 1

digitalWrite(Motor_droit2, HIGH); // Activer le moteur droit 2

digitalWrite(Moteur_gauche1, HIGH); // Activer le moteur gauche 1

digitalWrite(Motor_gauche2, HIGH); // Activer le moteur gauche 2

} else if (val_capteur_droit1 < 500 && val_capteur_droit2< 500) {

// Si les deux capteurs droits détectent la ligne

digitalWrite(Moteur_droit1, HIGH); // Activer le moteur droit 1

digitalWrite(Moteur_droit2, HIGH); // Activer le moteur droit 2

digitalWrite(Moteur_gauche1, LOW); // Désactiver le moteur gauche 1

digitalWrite(Moteur_gauche2, LOW); // Désactiver le moteur gauche 2

} else if (val_capteur_gauche1 < 500 && val_capteur_gauche2 < 500) {

// Si les deux capteurs gauches détectent la ligne

digitalWrite(Moteur_droit1, LOW); // Désactiver le moteur droit 1

digitalWrite(Moteur_droit2, LOW); // Désactiver le moteur droit 2

digitalWrite(Moteur_gauche1, HIGH); // Activer le moteur gauche 1

digitalWrite(Moteur_gauche2, HIGH); // Activer le moteur gauche 2

} else if (val_capteur_droit2 < 500 && val_capteur_gauche1< 500) {


// Si le capteur droit 2 et le capteur gauche 1 détectent la ligne

digitalWrite(Moteur_droit1, LOW); // Désactiver le moteur droit 1

digitalWrite(Moteur_droit2, HIGH); // Activer le moteur droit 2

digitalWrite(Moteur_gauche1, HIGH); // Activer le moteur gauche 1

digitalWrite (Moteur_gauche2, LOW); // Désactiver le moteur gauche 2


} else if (val_capteur_droit1 < 500 && val_capteur_gauche2 < 500) {

// Si le capteur droit 1 et le capteur gauche 2 détectent la ligne

digitalWrite(Moteur_droit1, HIGH); // Activer le moteur droit 1

digitalWrite(Moteur_droit2, LOW); // Désactiver le moteur droit 2

digitalWrite(Moteur_gauche1, LOW); // Désactiver le moteur gauche 1

digitalWrite(Moteur_gauche2, HIGH); // Activer le moteur gauche 2

} else {

// Si aucun capteur ne détecte la ligne

digitalWrite(Moteur_droit1, LOW); // Désactiver le moteur droit 1

digitalWrite(Moteur_droit2, LOW); // Désactiver le moteur droit 2

digitalWrite(Moteur_gauche1, LOW); // Désactiver le moteur gauche 1

digitalWrite(Moteur_gauche2, LOW); // Désactiver le moteur gauche 2

Explications des termes :

- `int` : type de données entier

- `A0`, `A1`, `A2`, `A3` : broches analogiques du microcontrô leur

- `pinMode` : fonction pour configurer les broches en entrée ou en sortie

- `INPUT` : constante pour configurer une broche en entrée

- `OUTPUT` : constante pour configurer une broche en sortie

- `analogRead` : fonction pour lire la valeur d'une broche analogique

- `digitalWrite` : fonction pour envoyer un signal numérique à une broche

- `HIGH` : constante pour envoyer un signal logique haut (5V)

- `LOW` : constante pour envoyer un signal logique bas (0V)


La valeur seuil de 500 est utilisée dans cette situation car les capteurs utilisés dans ce code sont
des capteurs de réflexion de lumière infrarouge. Lorsque ces capteurs sont positionnés sur une
ligne noire sur un fond blanc, ils renvoient une valeur de tension plus faible que lorsqu'ils ne
détectent pas la ligne.

En fixant une valeur seuil à 500, le code considère qu'un capteur détecte la ligne lorsque la
valeur lue est inférieure à cette valeur seuil. En pratique, cette valeur seuil peut être ajustée en
fonction de l'éclairage ambiant et de la couleur de la ligne à suivre.

En résumé, la valeur seuil de 500 est choisie empiriquement pour que le robot puisse détecter la
ligne de manière fiable avec ces capteurs de réflexion infrarouge. Si la valeur lue est inférieure à
cette valeur seuil, le robot considère qu'il est sur la ligne et prend des décisions en conséquence
pour suivre cette ligne

Vous aimerez peut-être aussi