Posté 23 mai 2011 - 04:40
Bon 1er code 1ere difficultés.
Voilà le code (il est complétement commenté donc simple à comprendre ce que j'ai voulu faire)
Oui mais voilà, cela ne marche plus.
1er programme de Mon-Robot_1
Ce programme fait tourner les roues en marche avant
si l'un des deux µrupteurs est fermé, les roues passent en sens inverse pendant 1 seconde
*/
int pwm_a = 3; //Controle du PWM du moteur 1 sur la Pin Num 3
int pwm_b = 11; //Controle du PWM du Moteur 2 sur la pin Num 11
int dir_a = 12; //Controle de direction du moteur 1 Sur la pin Num 12
int dir_b = 13; //Controle de direction du moteur 1 Sur la pin Num 13
int Sw_1 = 10; //Controle du switcj de direction du moteur 1 Sur la pin Num 10
int Sw_2 = 9; //Controle du switch de direction du moteur 2 Sur la pin Num 9
void setup()
{
pinMode(pwm_a, OUTPUT); //Declare la pin 3 en sortie
pinMode(pwm_b, OUTPUT); //Declare la pin 11 en sortie
pinMode(dir_a, OUTPUT); //Declare la pin 12 en sortie
pinMode(dir_b, OUTPUT); //Declare la pin 13 en sortie
pinMode(Sw_1, INPUT); //Declare la pin 10 en entrée
pinMode(Sw_2, INPUT); //Declare la pin 9 en entrée
analogWrite(pwm_a, 10); //Demarre le moteur 1 en vitesse lente (10/255)
analogWrite(pwm_b, 10); //Demarre le moteur 2 en vitesse lente (10/255)
}
void loop()
{
if (digitalRead(Sw_1 = HIGH)); //Condition si Switch 1 Fermé
digitalWrite(dir_a, HIGH); //Sens de rotation du moteur 1 inversé
digitalWrite(dir_b, LOW); //Sens de rotation du moteur 1 inversé
delay(1000); // Les moteurs tournent 1 seconde
if (digitalRead(Sw_2 = HIGH)); //Condition si Switch 2 Fermé
digitalWrite(dir_a, HIGH); //Sens de rotation du moteur 1 inversé
digitalWrite(dir_b, LOW); //Sens de rotation du moteur 1 inversé
delay(1000); // Les moteurs tournent 1 seconde
digitalWrite(dir_a, LOW); //Sens de rotation du moteur 1 Normal
digitalWrite(dir_b, HIGH); //Sens de rotation du moteur 2 Normal
//delay(1000); // Les moteurs tounent 1 seconde
// digitalWrite(dir_a, HIGH); //Sens de rotation du moteur 1 inversé
//digitalWrite(dir_b, LOW); //Sens de rotation du moteur 1 inversé
//delay(1000); // Les moteurs tournent 1 seconde
//analogWrite(pwm_a, 150); //Demarre le moteur 1 en vitesse rapide (150/255)
//analogWrite(pwm_b, 150); //Demarre le moteur 2 en vitesse rapide (150/255)
//delay(1000); // Les moteurs tounent 1 seconde
//digitalWrite(dir_a, LOW); //Sens de rotation du moteur 1 Normal
//digitalWrite(dir_b, HIGH); //Sens de rotation du moteur 2 Normal
//delay(1000); // Les moteurs tournent 1 seconde
//analogWrite(pwm_a, 100); //Demarre le moteur 1 en vitesse moyene (100/255)
//analogWrite(pwm_b, 100); //Demarre le moteur 2 en vitesse moyene (100/255)
//delay(1000); // Les moteurs tournent 1 seconde
}[/code]
Alors que ce code fonctionnait
int pwm_b = 11; //PWM moteur 2
int dir_a = 12; //direction moteur 1
int dir_b = 13; //direction moteur 2
void setup()
{
pinMode(pwm_a, OUTPUT); //Declare la Pin en Sortie
pinMode(pwm_b, OUTPUT); //Declare la Pin en Sortie
pinMode(dir_a, OUTPUT); //Declare la Pin en Sortie
pinMode(dir_b, OUTPUT); //Declare la Pin en Sortie
analogWrite(pwm_a, 100);
analogWrite(pwm_b, 100);
}
void loop()
{
digitalWrite(dir_a, LOW);
digitalWrite(dir_b, LOW);
delay(1000);
analogWrite(pwm_a, 100);
analogWrite(pwm_b, 100);
delay(1000);
digitalWrite(dir_a, LOW); //Inverse la direction du moteur 1
digitalWrite(dir_b, HIGH); //Inverse la direction du moteur 2
delay(1000);
analogWrite(pwm_a, 50);
analogWrite(pwm_b, 50);
delay(1000);
}[/code]
C'est pourtant la même base..
Mais en plus, j'ai un buzzer qui sonne. Je ne savais même pas qu'il y avait un buzzer sur la Uno...
Donc question,
quelles sont les lignes qui posent problème ?
Pourquoi ce buzzer sonne ?
Et d’où vient il ?
Merci pour vos réponses.
Cdlt
Yves