]> git.piffa.net Git - rover/blob - prototypes/motor/motor_func/motor_func.ino
Functions per motori
[rover] / prototypes / motor / motor_func / motor_func.ino
1 /* L298n motor
2 Aggiunta
3
4 Pilotare 2 motore DC con un modulo l928n
5 Enable in PWM per settare velocita' massima
6
7 - 2 motori DC
8 - L298n module
9 - Batteria > 6v
10
11 */
12
13
14 // Configurazione con OUTPUT digitali
15 // motor one
16 const int enA = 6;
17 const int in1 = 7;
18 const int in2 = 8;
19 byte speedA = 255;
20 // motor two
21 const int enB = 5;
22 const int in3 = 4;
23 const int in4 = 3;
24 byte speedB = 255;
25
26 void setup() {
27     pinMode(enA, OUTPUT);
28     pinMode(in1, OUTPUT);
29     pinMode(in2, OUTPUT);
30     pinMode(enB, OUTPUT);
31     pinMode(in3, OUTPUT);
32     pinMode(in4, OUTPUT);
33 }
34
35
36 void loop() {
37 // Forward
38     forwardA();
39     forwardB();
40     delay(2000);
41
42 // Stop
43     stopA();
44     stopB();
45     delay(1000);
46
47 // Backward
48     backwardA();
49     backwardB();
50     delay(2000);
51
52 // Stop
53     stopA();
54     stopB();
55     delay(1000);
56
57 // Left
58     backwardA();
59     forwardB();
60     delay(2000);
61
62 // Stop
63     stopA();
64     stopB();
65     delay(1000);
66
67 // right
68     backwardB();
69     forwardA();
70     delay(2000);
71
72 // Stop
73     stopA();
74     stopB();
75     delay(1000);
76 }
77
78 // Functions
79
80 // MotorB
81 void forwardA() {
82     // Avanzamento motore
83     digitalWrite(in1,LOW);
84     digitalWrite(in2,HIGH);
85     analogWrite(enA,speedA);
86 }
87
88 void backwardA() {
89     // Reverse motore
90     digitalWrite(in2,LOW);
91     digitalWrite(in1,HIGH);
92     analogWrite(enA,speedA);
93 }
94
95 void stopA() {
96     // Stop
97     digitalWrite(enA,LOW);
98 }
99
100 // MotorB
101 void forwardB() {
102     // Avanzamento motore
103     digitalWrite(in3,LOW);
104     digitalWrite(in4,HIGH);
105     analogWrite(enB,speedB);
106 }
107
108 void backwardB() {
109     // Reverse motore
110     digitalWrite(in4,LOW);
111     digitalWrite(in3,HIGH);
112     analogWrite(enB,speedB);
113 }
114
115 void stopB() {
116     // Stop
117     digitalWrite(enB,LOW);
118 }