XChroma.arduino_control module#
Arduino Code Documentation#
How to Use#
Send serial commands to control the servos:
Command |
Action |
|---|---|
‘a’ |
Open Servo 1 |
‘A’ |
Close Servo 1 |
‘z’ |
Open Servo 2 |
‘Z’ |
Close Servo 2 |
‘e’ |
Open Servo 3 |
‘E’ |
Close Servo 3 |
‘r’ |
Reset (all closed) |
‘R’ |
Reset (all open) |
Example Serial Input:
a → Servo 1 opens
A → Servo 1 closes
R → All servos open
Arduino Code#
Code used to control servos via serial commands.
1#include <Servo.h>
2
3// Create Servo objects
4Servo servo1;
5Servo servo2;
6Servo servo3;
7
8// Servo pins
9const int pinServo1 = 9;
10const int pinServo2 = 10;
11const int pinServo3 = 11;
12
13// Servo positions
14const int positionOuverte1 = 0;
15const int positionOuverte2 = 0;
16const int positionOuverte3 = 90;
17const int positionFermee1 = 90;
18const int positionFermee2 = 90;
19const int positionFermee3 = 0;
20
21void setup() {
22 servo1.attach(pinServo1);
23 servo2.attach(pinServo2);
24 servo3.attach(pinServo3);
25 servo1.write(positionFermee1);
26 servo2.write(positionFermee2);
27 servo3.write(positionFermee3);
28 Serial.begin(9600);
29}
30
31void loop() {
32 if (Serial.available()) {
33 char command = Serial.read();
34
35 switch (command) {
36 case 'a': servo1.write(positionOuverte1); Serial.println("Servo 1: Open"); break;
37 case 'A': servo1.write(positionFermee1); Serial.println("Servo 1: Closed"); break;
38 case 'z': servo2.write(positionOuverte2); Serial.println("Servo 2: Open"); break;
39 case 'Z': servo2.write(positionFermee2); Serial.println("Servo 2: Closed"); break;
40 case 'e': servo3.write(positionOuverte3); Serial.println("Servo 3: Open"); break;
41 case 'E': servo3.write(positionFermee3); Serial.println("Servo 3: Closed"); break;
42 case 'r':
43 servo1.write(positionFermee1);
44 servo2.write(positionFermee2);
45 servo3.write(positionFermee3);
46 Serial.println("All servos are in the closed position.");
47 break;
48 case 'R':
49 servo1.write(positionOuverte1);
50 servo2.write(positionOuverte2);
51 servo3.write(positionOuverte3);
52 Serial.println("All servos are in the open position.");
53 break;
54 default: Serial.println("Unknown command. Use a/A, z/Z, e/E, or r."); break;
55 }
56 }
57 delay(100);
58}
1void setup() {
2 servo1.attach(pinServo1);
3 servo2.attach(pinServo2);
4 servo3.attach(pinServo3);
5 servo1.write(positionFermee1);
6 servo2.write(positionFermee2);
7 servo3.write(positionFermee3);
8 Serial.begin(9600);
9}
10
11void loop() {
12 if (Serial.available()) {
13 char command = Serial.read();
14
15 switch (command) {
16 case 'a': servo1.write(positionOuverte1); Serial.println("Servo 1: Open"); break;
17 case 'A': servo1.write(positionFermee1); Serial.println("Servo 1: Closed"); break;
18 case 'z': servo2.write(positionOuverte2); Serial.println("Servo 2: Open"); break;
19 case 'Z': servo2.write(positionFermee2); Serial.println("Servo 2: Closed"); break;
20 case 'e': servo3.write(positionOuverte3); Serial.println("Servo 3: Open"); break;
21 case 'E': servo3.write(positionFermee3); Serial.println("Servo 3: Closed"); break;
22 case 'r':
23 servo1.write(positionFermee1);
24 servo2.write(positionFermee2);
25 servo3.write(positionFermee3);
26 Serial.println("All servos are in the closed position.");
27 break;
28 case 'R':
29 servo1.write(positionOuverte1);
30 servo2.write(positionOuverte2);
31 servo3.write(positionOuverte3);
32 Serial.println("All servos are in the open position.");
33 break;
34 default: Serial.println("Unknown command. Use a/A, z/Z, e/E, or r."); break;
35 }
36 }
37 delay(100);
38}