Skip to content

Commit dd2eee4

Browse files
author
Nathan Seidle
committed
Addin examples
1 parent fa169b1 commit dd2eee4

File tree

7 files changed

+468
-0
lines changed

7 files changed

+468
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
/*
2+
Author: Nathan Seidle
3+
SparkFun Electronics
4+
Created: August 18th, 2019
5+
License: MIT. See SparkFun Arduino Apollo3 Project for more information
6+
7+
Purchasing from SparkFun helps write code like this and helps us
8+
release products open source so that we can help each other learn: https://www.sparkfun.com/artemis
9+
10+
This example demonstrates the control of a servo on pin 8 on the RedBoard Artemis. Any PWM
11+
pin can control a servo.
12+
13+
Hardware Connections:
14+
Load this code
15+
Connect a Servo to pin 18:
16+
Red Wire -> 3.3V or 5V
17+
Black Wire -> GND
18+
Signal (Yellow or White) -> 8
19+
20+
The servo will rotate back and forth.
21+
*/
22+
23+
#include <Servo.h>
24+
25+
Servo myServo;
26+
27+
int pos = 0;
28+
29+
void setup()
30+
{
31+
Serial.begin(9600);
32+
Serial.println("SparkFun Servo Example");
33+
34+
myServo.attach(8);
35+
}
36+
37+
void loop()
38+
{
39+
//Sweep
40+
for (pos = 0; pos <= 180; pos++) { // goes from 0 degrees to 180 degrees
41+
myServo.write(pos); // tell servo to go to position in variable 'pos'
42+
delay(5); // waits 15ms for the servo to reach the position
43+
}
44+
for (pos = 180; pos >= 0; pos--) { // goes from 180 degrees to 0 degrees
45+
myServo.write(pos); // tell servo to go to position in variable 'pos'
46+
delay(5); // waits 15ms for the servo to reach the position
47+
}
48+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
/*
2+
Author: Nathan Seidle
3+
SparkFun Electronics
4+
Created: August 18th, 2019
5+
License: MIT. See SparkFun Arduino Apollo3 Project for more information
6+
7+
Purchasing from SparkFun helps write code like this and helps us
8+
release products open source so that we can help each other learn: https://www.sparkfun.com/artemis
9+
10+
This example demonstrates controlling two servos.
11+
12+
Hardware Connections:
13+
Load this code
14+
Connect a Servo to pin 18:
15+
Red Wire -> 3.3V or 5V
16+
Black Wire -> GND
17+
Signal (Yellow or White) -> 8
18+
19+
The servo will rotate back and forth.
20+
*/
21+
22+
#include <Servo.h>
23+
24+
Servo myServoA;
25+
Servo myServoB;
26+
27+
int pos = 0;
28+
29+
void setup()
30+
{
31+
Serial.begin(9600);
32+
Serial.println("SparkFun Servo Example");
33+
34+
myServoA.attach(8);
35+
myServoB.attach(7);
36+
}
37+
38+
void loop()
39+
{
40+
//Sweep
41+
for (pos = 0; pos <= 180; pos++) {
42+
myServoA.write(pos);
43+
myServoB.write(180 - pos);
44+
delay(5);
45+
}
46+
for (pos = 180; pos >= 0; pos--) {
47+
myServoA.write(pos);
48+
myServoB.write(180 - pos);
49+
delay(5);
50+
}
51+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
/*
2+
Author: Nathan Seidle
3+
SparkFun Electronics
4+
Created: August 18th, 2019
5+
License: MIT. See SparkFun Arduino Apollo3 Project for more information
6+
7+
Purchasing from SparkFun helps write code like this and helps us
8+
release products open source so that we can help each other learn: https://www.sparkfun.com/artemis
9+
10+
Different servos have different end points. Arduino defaults to 544us (min) and 2400us (max).
11+
These however can be changed at startup. For more info see: https://www.arduino.cc/en/Reference/ServoAttach
12+
13+
Hardware Connections:
14+
Load this code
15+
Connect a Servo to pin 18:
16+
Red Wire -> 3.3V or 5V
17+
Black Wire -> GND
18+
Signal (Yellow or White) -> 8
19+
20+
The servo will rotate back and forth.
21+
*/
22+
23+
#include <Servo.h>
24+
25+
Servo myServoA;
26+
27+
void setup()
28+
{
29+
Serial.begin(9600);
30+
Serial.println("SparkFun Servo Example");
31+
32+
myServoA.attach(8, 500, 2600); //Increase min/max to drive servo fully
33+
}
34+
35+
void loop()
36+
{
37+
myServoA.write(180); //Go to max position
38+
delay(2000);
39+
myServoA.write(0); //Go to min position
40+
delay(2000);
41+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
/*
2+
Author: Nathan Seidle
3+
SparkFun Electronics
4+
Created: August 18th, 2019
5+
License: MIT. See SparkFun Arduino Apollo3 Project for more information
6+
7+
Purchasing from SparkFun helps write code like this and helps us
8+
release products open source so that we can help each other learn: https://www.sparkfun.com/artemis
9+
10+
Arduino defaults to 8-pin PWM resolution. This works for the majority of servos but can
11+
be increased for projects that need it.
12+
13+
servoWriteResolution()
14+
getServoResolution()
15+
16+
Are provided for changing and reading the resolution setting.
17+
18+
Hardware Connections:
19+
Load this code
20+
Connect a Servo to pin 18:
21+
Red Wire -> 3.3V or 5V
22+
Black Wire -> GND
23+
Signal (Yellow or White) -> 8
24+
25+
The servo will rotate back and forth.
26+
*/
27+
28+
#include <Servo.h>
29+
30+
Servo myServoA;
31+
32+
void setup()
33+
{
34+
Serial.begin(9600);
35+
Serial.println("SparkFun Servo Example");
36+
37+
myServoA.attach(8);
38+
39+
servoWriteResolution(10); //Increase to 10-bit resolution. 16-bit is max.
40+
41+
int currentRes = getServoResolution();
42+
Serial.print("Current resolution: ");
43+
Serial.println(currentRes);
44+
}
45+
46+
void loop()
47+
{
48+
myServoA.write(180); //Go to max position
49+
delay(2000);
50+
myServoA.write(0); //Go to min position
51+
delay(2000);
52+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
/*
2+
Author: Nathan Seidle
3+
SparkFun Electronics
4+
Created: August 18th, 2019
5+
License: MIT. See SparkFun Arduino Apollo3 Project for more information
6+
7+
Purchasing from SparkFun helps write code like this and helps us
8+
release products open source so that we can help each other learn: https://www.sparkfun.com/artemis
9+
10+
This example shows how to write to the servo in microseconds instead of position. This
11+
is helpful for find the min/max us settings for a given servo manufacturer.
12+
13+
Hardware Connections:
14+
Load this code
15+
Connect a Servo to RX1:
16+
Red Wire -> 3.3V or 5V
17+
Black Wire -> GND
18+
Signal (Yellow or White) -> RX1
19+
20+
The servo will rotate back and forth.
21+
*/
22+
23+
#include <Servo.h>
24+
25+
Servo myServo;
26+
27+
void setup()
28+
{
29+
Serial.begin(9600);
30+
Serial.println("SparkFun Servo Example");
31+
32+
myServo.attach(8);
33+
34+
myServo.writeMicroseconds(600); //Servo will go to very near the 0 degree position
35+
}
36+
37+
void loop()
38+
{
39+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
/*
2+
Author: Nathan Seidle
3+
SparkFun Electronics
4+
Created: August 18th, 2019
5+
License: MIT. See SparkFun Arduino Apollo3 Project for more information
6+
7+
Purchasing from SparkFun helps write code like this and helps us
8+
release products open source so that we can help each other learn: https://www.sparkfun.com/artemis
9+
10+
This example demonstrates the control of 19 servos simulataneously on the BlackBoard Artemis.
11+
Any PWM pin is capable of 16 bit servo control. Need more than 19 servos? What are you building?!
12+
Check out the BlackBoard ATP for 29 servo capable PWM pins.
13+
14+
Hardware Connections:
15+
Load this code
16+
Connect a Servo to RX1:
17+
Red Wire -> 3.3V or 5V
18+
Black Wire -> GND
19+
Signal (Yellow or White) -> RX1
20+
21+
The servo will rotate back and forth. Similary, you can move the signal wire to any PWM
22+
pin and you will see the servo move to a new position and hold. This shows that the other
23+
PWM pins are all simultaneously and actively outputting a servo signal.
24+
*/
25+
26+
#include <Servo.h>
27+
28+
Servo myServoRX;
29+
Servo myServoTX;
30+
Servo myServo2;
31+
Servo myServo3;
32+
Servo myServo4;
33+
Servo myServo5;
34+
Servo myServo6;
35+
Servo myServo7;
36+
Servo myServo8;
37+
Servo myServo9;
38+
Servo myServo10;
39+
Servo myServoMOSI;
40+
Servo myServoMISO;
41+
Servo myServoSCK;
42+
Servo myServoA0;
43+
Servo myServoA1;
44+
Servo myServoA3;
45+
Servo myServoA5;
46+
Servo myServoSCL;
47+
48+
int pos = 0;
49+
50+
void setup()
51+
{
52+
Serial.begin(9600);
53+
Serial.println("SparkFun Servo Example");
54+
55+
myServoRX.attach(0); //Labeled RX1
56+
myServoTX.attach(1); //Labeled TX1
57+
myServo2.attach(2);
58+
myServo3.attach(3);
59+
myServo4.attach(4);
60+
myServo5.attach(5);
61+
myServo6.attach(6);
62+
myServo7.attach(7);
63+
myServo8.attach(8);
64+
myServo9.attach(9);
65+
myServo10.attach(10);
66+
myServoMOSI.attach(11); //Labeled MOSI
67+
myServoMISO.attach(12); //Labeled MISO
68+
myServoSCK.attach(13); //Labeled SCK
69+
myServoA0.attach(A0);
70+
myServoA1.attach(A1);
71+
myServoA3.attach(A3);
72+
myServoA5.attach(A5);
73+
myServoSCL.attach(SCL);
74+
75+
myServo2.write(0);
76+
myServo3.write(10);
77+
myServo4.write(30);
78+
myServo5.write(60);
79+
myServo6.write(90);
80+
myServo7.write(120);
81+
myServo8.write(140);
82+
myServo9.write(160);
83+
myServo10.write(180);
84+
myServoMOSI.write(0);
85+
myServoMISO.write(30);
86+
myServoSCK.write(60);
87+
myServoA0.write(90);
88+
myServoA1.write(120);
89+
myServoA3.write(150);
90+
myServoA5.write(0);
91+
myServoSCL.write(30);
92+
myServoTX.write(60);
93+
}
94+
95+
void loop()
96+
{
97+
myServoRX.write(0);
98+
delay(1500);
99+
myServoRX.write(180);
100+
delay(1500);
101+
}

0 commit comments

Comments
 (0)