Bonjour tout le monde.

Je suis actuellement en cour de fabrication d'une machine a cocktail gérer par arduino.
Pour l'instant j'ai fabriqué la partie qui servira a actionner les doseurs et une des deux translations.
Les moteurs PAP sont piloté par 2 cartes L298N.
(Voir vidéo çà sera plus simple à comprendre)



Mes 2 problèmes :

-Peut t-on modifier la vitesse d'un moteur PAP sans toucher à la mécanique *? (car la translation linéaire axe y avance pas).
-Avez vous des exemples de code pour actionner 2 moteur PAP en même temps.
(J'ai essayé ce tuto http://www.horlogerie49.fr/tutorielarduino03.html en ayant programmer 2 moteurs, mais les translations ne sont pas simultanée.


Et voici mon code actuel qui actionne bien les 2 moteurs ensemble mais un peut lourd a mon gout.
J'ai dû bidouiller les stepDelay car dès que je fais fonctionner 2 moteurs çà me ralenti les moteurs.
Code : 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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
 
//Moteur
int motor1inA1 = 10; // input 1 moteur doseur
int motor1inA2 = 11; // input 2 
int motor1inB1 = 12; // input 3 
int motor1inB2 = 13; // input 4 
int motor2inA1 = 6; // input 1 moteur
int motor2inA2 = 7; // input 2 
int motor2inB1 = 8; // input 3 
int motor2inB2 = 9; // input 4 
int stepDelay = 2; // Delay between steps in milliseconds
int stepDelay1 = 1; // Delay between steps in milliseconds
//Bouton
const int buttonPin = 53; //input 53 button on
int buttonState = 0;
 
void setup() { *
//Moteur *
 pinMode(motor1inA1, OUTPUT); * * 
 pinMode(motor1inA2, OUTPUT); * * 
 pinMode(motor1inB1, OUTPUT); * * 
 pinMode(motor1inB2, OUTPUT); 
 pinMode(motor2inA1, OUTPUT); * * 
 pinMode(motor2inA2, OUTPUT); * * 
 pinMode(motor2inB1, OUTPUT); * * 
 pinMode(motor2inB2, OUTPUT); *
//Bouton
 pinMode(buttonPin, INPUT);
}
 
void step1() {
 digitalWrite(motor1inA1, LOW); * 
 digitalWrite(motor1inA2, HIGH); * 
 digitalWrite(motor1inB1, HIGH); * 
 digitalWrite(motor1inB2, LOW);
 
 }
void step11() { *
 digitalWrite(motor2inA1, LOW); * 
 digitalWrite(motor2inA2, HIGH); * 
 digitalWrite(motor2inB1, HIGH); * 
 digitalWrite(motor2inB2, LOW); * * 
 
}
void step2() {
 digitalWrite(motor1inA1, LOW); * 
 digitalWrite(motor1inA2, HIGH); * 
 digitalWrite(motor1inB1, LOW); * 
 digitalWrite(motor1inB2, HIGH);
 
 *}
void step12() { *
 digitalWrite(motor2inA1, LOW); * 
 digitalWrite(motor2inA2, HIGH); * 
 digitalWrite(motor2inB1, LOW); * 
 digitalWrite(motor2inB2, HIGH); * * 
 
}
void step3() {
 digitalWrite(motor1inA1, HIGH); * 
 digitalWrite(motor1inA2, LOW); * 
 digitalWrite(motor1inB1, LOW); * 
 digitalWrite(motor1inB2, HIGH); 
 
 *}
void step13() { *
 digitalWrite(motor2inA1, HIGH); * 
 digitalWrite(motor2inA2, LOW); * 
 digitalWrite(motor2inB1, LOW); * 
 digitalWrite(motor2inB2, HIGH); * 
 
}
void step4() {
 digitalWrite(motor1inA1, HIGH); * 
 digitalWrite(motor1inA2, LOW); * 
 digitalWrite(motor1inB1, HIGH); * 
 digitalWrite(motor1inB2, LOW);
 
 * }
void step14() { 
 digitalWrite(motor2inA1, HIGH); * 
 digitalWrite(motor2inA2, LOW); * 
 digitalWrite(motor2inB1, HIGH); * 
 digitalWrite(motor2inB2, LOW); * * 
 
}
void stopMotor() {
 digitalWrite(motor1inA1, LOW); * 
 digitalWrite(motor1inA2, LOW); * 
 digitalWrite(motor1inB1, LOW); * 
 digitalWrite(motor1inB2, LOW); *
 digitalWrite(motor2inA1, LOW); * 
 digitalWrite(motor2inA2, LOW); * 
 digitalWrite(motor2inB1, LOW); * 
 digitalWrite(motor2inB2, LOW); * 
}
 
void loop() {
 buttonState = digitalRead(buttonPin);
 if (buttonState == HIGH) { 
 
 *for (int i=0; i<=400; i++){ 
 * step11(); 
 * delay(stepDelay); *
 * step12();
 * delay(stepDelay);
 * step13();
 * delay(stepDelay);
 * step14();
 * delay(stepDelay);
 } *
 * 
 for (int i=0; i<=800; i++){ 
 * step1(); 
 * delay(stepDelay1);
 * step11(); 
 * delay(stepDelay1);
 * step2();
 * delay(stepDelay1);
 * step12();
 * delay(stepDelay1);
 * step3();
 * delay(stepDelay1);
 * step13();
 * delay(stepDelay1);
 * step4();
 * delay(stepDelay1);
 * step14();
 * delay(stepDelay1);
 } 
 
 
 for (int i=0; i<=200; i++){ 
 * step1(); 
 * delay(stepDelay); *
 * step2();
 * delay(stepDelay);
 * step3();
 * delay(stepDelay);
 * step4();
 * delay(stepDelay);
 }
 for (int i=0; i<=200; i++){
 * step4(); 
 * delay(stepDelay);
 * step3();
 * delay(stepDelay);
 * step2();
 * delay(stepDelay);
 * step1();
 * delay(stepDelay);
 }
 
 
 for (int i=0; i<=800; i++){
 * step4(); 
 * delay(stepDelay1);
 * step14(); 
 * delay(stepDelay1);
 * step3();
 * delay(stepDelay1);
 * step13();
 * delay(stepDelay1);
 * step2();
 * delay(stepDelay1);
 * step12();
 * delay(stepDelay1);
 * step1();
 * delay(stepDelay1);
 * step11();
 * *delay(stepDelay1);
 }
 
for (int i=0; i<=400; i++){ 
 * step14(); 
 * delay(stepDelay); *
 * step13();
 * delay(stepDelay);
 * step12();
 * delay(stepDelay);
 * step11();
 * delay(stepDelay);
 } 
 stopMotor();
 delay(2000);
}
}
Merci si vous avez lu ce topique jusque-là je suis ouvert à tous aides, ou proposition de tuto et même si vous avez des questions ou quoi que ce soit hésiter pas.