Salut tout le monde, je me présente je m'appelle samuel j'ai 16 ans et je suis en première S SI. Je suis passionné de modélisme et encore plus quand il est fonctionnel.C'est pour ça que j'ai commencé l'arduino à Noël et pour l'instant c'est un peu la galère niveau code.
A ce sujet, j'ai créé avec mon kit arduino de base un montage qui permet de déclencher un cycle de 4 tours d'un moteur pas a pas en appuyant sur un bouton.
Mais, comme c'est étrange, quand je branche l'arduino le moteur se met à tourner sans s'arrêter. J'ai utilisé un moteur ref STEP MOTOR 28BYJ-48 avec 5 fils de sortie et un contrôleur associé où l'on branche le plug du moteur et après on branche les 4 int du contôleur à l'arduino.Le moteur fonctionne donc il est correctement câblé mais le bouton est inactif. Je l'ai pourtant bien relié du 5V au pin 2 mais ça change en rien les mouvements du moteur.
J'ai réussi a rassembler de quoi faire un code et c'est celui-ci qui fait tourner mon moteur mais qui se contrefiche du bouton:
Voilà j'espère que vous pourrez aider un bidouilleur en détresse!! Merci!
Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 #include <Stepper.h> #define STEPS 100 const int boutonp = 2; //Le moteur (fils 1 2 3 4) est branché sur les sorties 8 9 10 11 de l'Arduino (et sur GND, +V) Stepper small_stepper(STEPS, 8, 10, 9, 11); // Sens horaire int Steps2Take = 0; //Nombre de pas de rotation demandé au moteur long temps =4; //Durée de rotation pour un tour int buttonState = 0; void setup() { Serial.begin(9600); // 9600 bps Serial.println("Test de moteur pas a pas"); pinMode(boutonp, INPUT); } void loop() { if (buttonState == HIGH) { small_stepper.setSpeed(350); buttonState = digitalRead(boutonp); Steps2Take = 2048; // Une rotation complète avec 2048 pas (1 tour environ 4.5sec) temps = millis(); small_stepper.step(Steps2Take); //Ca tourne delay (1); } else (buttonState == LOW);{ small_stepper.setSpeed(350); buttonState = digitalRead(boutonp); Steps2Take = 0; temps = millis(); small_stepper.step(Steps2Take); //Ca tourne pas } }![]()
Partager