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.

Argon

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 
  } 
}