2018-02-18 14:02:33 +05:30

47 lines
1.4 KiB
Plaintext

#include <MegaServo.h>
// test sketch for MegaServo library
// this will sweep all servos back and forth once, then position according to voltage on potPin
#define FIRST_SERVO_PIN 22
MegaServo Servos[MAX_SERVOS] ; // max servos is 32 for mega, 8 for other boards
int pos = 0; // variable to store the servo position
int potPin = 0; // connect a pot to this pin.
void setup()
{
for( int i =0; i < MAX_SERVOS; i++)
Servos[i].attach( FIRST_SERVO_PIN +i, 800, 2200);
sweep(0,180,2); // sweep once
}
void sweep(int min, int max, int step)
{
for(pos = min; pos < max; pos += step) // goes from 0 degrees to 180 degrees
{ // in steps of 1 degree
for( int i =0; i < MAX_SERVOS; i++){
Servos[i].write( pos); // tell servo to go to position
}
delay(15); // waits 15ms for the servo to move
}
for(pos = max; pos>=min; pos-=step) // goes from 180 degrees to 0 degrees
{
for( int i =0; i < MAX_SERVOS; i++){
Servos[i].write( pos); // tell servo to go to position
}
delay(15); // waits 15ms for the servo to move
}
}
void loop()
{
pos = analogRead(potPin); // read a value from 0 to 1023
for( int i =0; i < MAX_SERVOS; i++)
Servos[i].write( map(pos, 0,1023,0,180));
delay(15);
}