je suis un élève de première STI2D et j'ai des problèmes pour mon projet.
je dois créer un programme pour contrôler un robot qui roule pour une carte arduino Romeo. Le problème, c'est que je reçois des messages d'erreur me disant que mes if ne sont pas valables.
voici mon code:
//programme de controle du robot roulant.
// Utilisation du composant HC-06 � 4 sorties GND , VCC , TXD (� brancher sur RX-0) et RXD (� brancher sur TX-1)
// D�brancher le capteur Bluetooth avant de t�l�verser le programme sur la carte
// Appel des librairies utilis�es
// D�finition des broches utilis�es
// D�finition moteurs
int moteur_droit_vitesse = 11; //pwm pour la vitesse du moteur droit entre 0 et 255
int moteur_droit_sens1 = 12 ; // commande sens 1
int moteur_droit_sens2 = 13 ; // commande sens 2
int moteur_gauche_vitesse = 10; //pwm pour la vitesse du moteur gauche entre 0 et 255
int moteur_gauche_sens1 = 8 ; // commande sens 1
int moteur_gauche_sens2 = 7 ; // commande sens 2
// Penser � relier la patte 16 du L293D au 5V de l'arduino
// Penser � relier la patte 8 � la borne + de la batterie ou au 5V de l'arduino
// Penser � relier les masse entre elles
void setup()
{
// initialisation des pin du moteur droit
pinMode(moteur_droit_vitesse, OUTPUT);
pinMode(moteur_droit_sens1, OUTPUT);
pinMode(moteur_droit_sens2, OUTPUT);
// initialisation des pin du moteur gauche
pinMode(moteur_gauche_vitesse, OUTPUT);
pinMode(moteur_gauche_sens1, OUTPUT);
pinMode(moteur_gauche_sens2, OUTPUT);
// initialisation du port s�rie pour la liaison bluetooth
Serial.begin(9600); //Initialize serial at 9600bps
}
// D�claration des diff�rentes fonctions utilis�es pour le d�placement de la voiture
// D�calartion de la fonction avance
void avance()
{
analogWrite(moteur_gauche_vitesse, 255); // allumer moteur gauche
digitalWrite(moteur_gauche_sens1, LOW); // sens avance
digitalWrite(moteur_gauche_sens2, HIGH);
analogWrite(moteur_droit_vitesse, 255); // allumer moteur droit
digitalWrite(moteur_droit_sens1, HIGH); // sens avance
digitalWrite(moteur_droit_sens2, LOW);
}
// D�calartion de la fonction recule
void recule()
{
analogWrite(moteur_gauche_vitesse, 255); // allumer moteur gauche
digitalWrite(moteur_gauche_sens1, HIGH); // sens recule
digitalWrite(moteur_gauche_sens2, LOW);
analogWrite(moteur_droit_vitesse, 255); // allumer moteur droit
digitalWrite(moteur_droit_sens1, LOW); // sens recule
digitalWrite(moteur_droit_sens2, HIGH);
} // D�calartion de la fonction tourne � droite
void droite_voiture()
{
analogWrite(moteur_gauche_vitesse, 255); // allumer moteur gauche
digitalWrite(moteur_gauche_sens1, LOW); // sens avance
digitalWrite(moteur_gauche_sens2, HIGH);
analogWrite(moteur_droit_vitesse, 255); // allumer moteur droit
digitalWrite(moteur_droit_sens1, LOW); // sens invers�
digitalWrite(moteur_droit_sens2, HIGH);
}
// D�calartion de la fonction tourne � gauche
void gauche_voiture()
{
analogWrite(moteur_gauche_vitesse, 255); // allumer moteur gauche
digitalWrite(moteur_gauche_sens1, HIGH); // sens invers�
digitalWrite(moteur_gauche_sens2, LOW);
analogWrite(moteur_droit_vitesse, 255); // allumer moteur droit
digitalWrite(moteur_droit_sens1, HIGH); // sens avance
digitalWrite(moteur_droit_sens2, LOW);
}
//declaration de la fonction stop
void stop_voiture()
{
analogWrite(moteur_gauche_vitesse, 0); // allumer moteur gauche
digitalWrite(moteur_gauche_sens1, HIGH); // sens invers�
digitalWrite(moteur_gauche_sens2, LOW);
analogWrite(moteur_droit_vitesse, 0); // allumer moteur droit
digitalWrite(moteur_droit_sens1, HIGH); // sens avance
digitalWrite(moteur_droit_sens2, LOW);
}
//declaration de la fonction recule a droite
void recule_droite()
{
analogWrite(moteur_gauche_vitesse, 255); //allumer moteur gauche
digitalWrite(moteur_gauche_sens1, LOW); //sens inverse
digitalWrite(moteur_gauche_sens2, HIGH);
analogWrite(moteur_droit_vitesse, 255); //allumer moteur gauche
digitalWrite(moteur_droit_sens1, HIGH); //sens avance
digitalWrite(moteur_droit_sens2, LOW);
}
//declaration de la fonction recule a gauche
void recule_gauche()
{
analogWrite(moteur_gauche_vitesse, 255); //allumer moteur gauche
digitalWrite(moteur_gauche_sens1, LOW); //sens avance
digitalWrite(moteur_gauche_sens2, HIGH);
analogWrite(moteur_droit_vitesse, 255); //allumer moeteur droit
digitalWrite(moteur_droit_sens1, LOW); //sens inverse
digitalWrite(moteur_droit_sens2, HIGH);
}
//declaration de la fonction capteur
// BOUCLE PRINCIPALE
void loop()
{
while (Serial.available() == 0); // attend qu'une commande arrive par le bluetooth
char o = Serial.read();
Serial.write(o);
if (o == '2')
{
// Robot avance tout droit
avance();
}
if (o == '0')
// Robot stop
stop_voiture();
}
if (o == '8')
{
// Robot recule tout droit
recule();
}
if (o == '6')
{
// Robot avance et tourne � droite
droite_voiture();
}
if (o == '4')
{
// Robot avance et tourne � gauche
gauche_voiture();
}
if (o == '7')
{
//le robot va en arrière droite
recule_droite
}
if (o == '9')
{
//le robot va en arrière gauche
recule_gauche();
}
}
je vous remercie d'avance.
- Edité par DimLegeek 19 janvier 2018 à 10:10:27
erreur sur un programme arduibo
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.