Bonjour, je suis en première STI2D et je travaille sur un projet de robot autonome qui doit sortir d'un labyrinthe avec des capteur à ultra sons, la carte qu'on utilise est une Romeo BLE voici sa fiche technique :
mon code consiste à une logique simple au début je met les moteur en marche une fois obstacle repérer par capteur on arrête les moteurs . simple et efficace ça marche mais juste avec un seul moteur et c'est le M2 dans ma variable dans le code suivant le M1 marche pas au tout début
// Arduino
// Code final
// Déclarer les varibale Moteur
int E1 = 4; //M1 Speed Control
int E2 = 7; //M2 Speed Control
int M1 = 5; //M1 Direction Control
int M2 = 6; //M1 Direction Control
// Déclarer Les variable Capteurs
// CAPTEUR
// Capteur Droit
int trigRight = 2;
int echoRight = 3;
// Capteur central
int trigCentral = 5;
int echoCentral = 6;
// Capteur Gauche
int trigLeft = 8;
int echoLeft = 9;
//When m1p/m2p is 127, it stops the motor
//when m1p/m2p is 255, it gives the maximum speed for one direction
//When m1p/m2p is 0, it gives the maximum speed for reverse direction
void setup(){
// initialisé la communication
Serial.begin(115200);
// Initialisation des capteurs
pinMode(M1, OUTPUT);
pinMode(M2, OUTPUT);
// Initialisé les capteurs
// Capteur droit
pinMode(trigRight, OUTPUT);
digitalWrite(trigRight, LOW);
pinMode(echoRight, INPUT);
// Capteur Central
pinMode(trigCentral, OUTPUT);
digitalWrite(trigCentral, LOW);
pinMode(echoCentral, INPUT);
// Capteur Gauche
pinMode(trigLeft, OUTPUT);
digitalWrite(trigLeft, OUTPUT);
pinMode(echoLeft, INPUT);
}
void loop(){
// Mise en marche des Capteurs au début
// Capteurs DROIT
digitalWrite(trigRight, HIGH);
delayMicroseconds(10);
digitalWrite(trigRight, LOW);
digitalWrite(echoRight, HIGH);
// Capteur Central
digitalWrite(trigCentral, HIGH);
delayMicroseconds(10);
digitalWrite(trigCentral, LOW);
digitalWrite(echoCentral, HIGH);
// Capteur Gauche
digitalWrite(trigLeft, HIGH);
delayMicroseconds(10);
digitalWrite(trigLeft, LOW);
digitalWrite(echoLeft, HIGH);
// Manipulation et calcule de la distance DROITE
long temps_D = pulseIn(echoRight, HIGH);
long distance_D = (340 * temps_D) / 1000; // /1000 ms=> s
distance_D /= 2;
// Manipulation et calcule de la distance Central
long temps_C = pulseIn(echoCentral, HIGH);
long distance_C = (340 * temps_C) / 1000;
distance_C /= 2;
// MANIPULATION et clacule de la diqstance Gauche
long temps_G = pulseIn(echoLeft, HIGH);
long distance_G = (340 * temps_G) / 1000;
distance_G /= 2;
// Mettre les moteurs en marche
digitalWrite(M1, HIGH);
analogWrite(E1, 255);
digitalWrite(M2, HIGH);
analogWrite(E2, 255);
// Condition de teste
if(distance_C <100){
// Moteur 1
analogWrite(E1, LOW); // arret moteur 1
digitalWrite(M1, LOW);
// MOteur 2
digitalWrite(E2, LOW); // arret moteur 2
analogWrite(M2, LOW);
if(distance_D > 100){
digitalWrite(M2, HIGH); // mettre moteur 1
analogWrite(E2, 255);
digitalWrite(M1, HIGH);
analogWrite(E1, 125); // arret du moteur
}
}
}
n'hésiter pas à commenter et modifier mon code si c'est possible
Bonjour, Merci d'indiquer un titre en rapport avec votre problématique.
Mauvais titre
Le titre est un élément important qui ne doit pas être négligé. N'oubliez pas cette règle simple : le titre idéal résume la question que vous allez poser en une petite phrase. Il doit permettre aux visiteurs de se repérer facilement dans le forum visité et d'identifier le sujet à sa seule lecture.
Vous pouvez utiliser divers préfixes comme [Erreur], [MySQL], [Compatibilité], etc... Aussi, pensez à consulter les règles propres à chaque forum (visibles dans les topics épinglés en haut des sections).
De plus, choisir un bon titre permet de rendre plus faciles les recherches des autres membres.
Les titres de type "besoin d'aide" ou "problème" ne sont pas tolérés.
Pour modifier votre titre, éditez le premier message de votre sujet.
Tu utilises les même ports pour 2 choses différentes:
// Déclarer les varibale Moteur
...
int M1 = 5; //M1 Direction Control
int M2 = 6; //M1 Direction Control
...
// Capteur central
int trigCentral = 5;
int echoCentral = 6;
Forcément ça ne va pas marcher
En recherche d'emploi.
Problème de résultat
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
En recherche d'emploi.