Servo
Firstly, the Particle development environment simplifies things a little
in comparison to Arduino because the servo object is built-in. With an
Arduino you need to explicitly include a servo library. On the hardware
side though, a standard servo requires 5V to operate and the Argon is a
3.3V device. If your Argon is connected to a computer or a power outlet
via USB, then you can take 5V from the VBUS pin to power the servo.
Another complication is that controlling a servo requires pulse-width
modulation (PWM) which is only available on some of the Argon's digital
pins. Figure 1 shows you how to connect up your servo.
Figure 1: Breadboard connections for a servo
Next, go to the Particle Web IDE and paste the code below into the editor.
Give your file a name and save it using the folder icon in the navigation
panel.
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 | Servo myservo; // create servo object to control a servo
// a maximum of eight servo objects can be created
int pos = 0; // variable to store the servo position
void setup()
{
Serial.begin(9600); // Allow serial output for debugging
myservo.attach(D8); // attaches the servo on pin 8 to the servo object
}
void loop()
{
Serial.printf("Incrementing...\n"); // Debug message
for(pos = 0; pos < 180; pos += 1) // goes from 0 degrees to 180 degrees
{ // in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
Serial.printf("Decrementing...\n"); // Debug message
for(pos = 180; pos>=1; pos-=1) // goes from 180 degrees to 0 degrees
{
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
}
|