Bonjour, je suis un élève de première et je fais spé SI, nous devons réaliser un projet pour la fin de l'année (qui est bien entamé) mais en ce qui concerne ma partie (la programmation) je suis complètement bloqué ne m'y connaissant pas bien à Arduino.
Voici l'idée, nous sommes en train de créer un distributeur qui fonctionne à l'aide de deux moteurs pas à pas, chacun branché à un L298 qui sont eux mêmes branchés à une carte aduino Uno.
Je suis désolé d'avance comme je suis chez moi je n'ai pas accès à Proteus et ne peut pas vous montrer à quoi ressemble le montage.
Mon programme consiste à faire en sorte qu'en appuyant sur un bouton (qui fait évidemment passer le courant) relié à la broche 12 de la carte Arduino, l'un des deux moteurs se mettent à tourner, et il est choisi grâce à un commutateur à 2 positions qui active une broche (2 ou 3) de la carte qui sont chacune associées à une séries de broche faisant tourner un moteur : 4,5,6,7 pour l'un, 8, 9, 10, 11 pour l'autre.
Pour clarifier un maximum, mon but est que si j'appuie sur le bouton, que la broche 12 est bien activée, l'un des moteurs s'active en fonction de la broche activée par le commutateur, soit la 2 pour le premier moteur, soit la 3 pour le deuxième.
Seulement, même si je pense être sur la bonne voie, mon programme ne fonctionne pas bien, lorsque le commutateur est sur la position de gauche et que j'appuie sur le bouton, rien ne fonctionne, alors que sur la position de droite le moteur associé tourne bel et bien.
Le programme en question :
#include <Stepper.h>
int NbrPas = 200;
Stepper MonMoteur(NbrPas, 8, 9, 10, 11);
Stepper Monmoteur2(NbrPas, 4, 5, 6, 7);
const int buttonPin = 2;
int buttonState = 0;
void setup() {
pinMode(buttonPin, INPUT);
pinMode (12, INPUT);
pinMode (2, INPUT);
pinMode (3, INPUT);
MonMoteur.setSpeed(100);
Serial.begin(9600);
int NombreDePas;
pinMode (8, OUTPUT);
pinMode (9, OUTPUT);
pinMode (10, OUTPUT);
pinMode (11, OUTPUT);
pinMode (4, OUTPUT);
pinMode (5, OUTPUT);
pinMode (6, OUTPUT);
pinMode (7, OUTPUT);
}
void loop()
{
buttonState = digitalRead(buttonPin);
if ((buttonState == HIGH) && (digitalRead(2)==HIGH) && (digitalRead(12)==HIGH)){
digitalWrite(8, HIGH); digitalWrite (9, LOW); digitalWrite (10, LOW); digitalWrite (11, LOW);
delay(100);
digitalWrite(8, LOW); digitalWrite (9, LOW); digitalWrite (10, HIGH); digitalWrite (11, LOW);
delay(100);
digitalWrite(8, LOW); digitalWrite (9, HIGH); digitalWrite (10, LOW); digitalWrite (11, LOW);
delay(100);
digitalWrite(8, LOW); digitalWrite (9, LOW); digitalWrite (10, LOW); digitalWrite (11, HIGH);
delay(100);
digitalWrite(8, HIGH); digitalWrite (9, LOW); digitalWrite (10, LOW); digitalWrite (11, LOW);
delay(2000);
}
else{
buttonState = digitalRead(buttonPin);
if ((buttonState == HIGH) && (digitalRead(3)==HIGH) && (digitalRead(12)==HIGH)){
digitalWrite(4, HIGH); digitalWrite (5, LOW); digitalWrite (6, LOW); digitalWrite (7, LOW);
delay(100);
digitalWrite(4, LOW); digitalWrite (5, LOW); digitalWrite (6, HIGH); digitalWrite (7, LOW);
delay(100);
digitalWrite(4, LOW); digitalWrite (5, HIGH); digitalWrite (6, LOW); digitalWrite (7, LOW);
delay(100);
digitalWrite(4, LOW); digitalWrite (5, LOW); digitalWrite (6, LOW); digitalWrite (7, HIGH);
delay(100);
digitalWrite(4, HIGH); digitalWrite (5, LOW); digitalWrite (6, LOW); digitalWrite (7, LOW);
delay(2000);
}
}
}
Il y a très certainement de grossières erreurs et je vous prie de ne pas me descendre , comme je l'ai dis je n'y connais absolument rien et cherche seulement à pouvoir finir mon projet alors que je semble être proche du but.
Merci beaucoup d'avance à ceux qui me répondrons et m'apporteront conseils.