perhaps a little help with servo control??
hello everyone,
here's goal, pretty simple - little prototype larger project....
i need able control 9 servo's 1 board (decimilia) independently. i'm bit new @ writing code however, approach write separate functions each servo, , call functions in main loop in whatever order necessary achieve desired effect.
i have code runs of them @ once, (just test see if power supply sufficient) -
how modify or re-write code independent control , choreographed sequence of actuations?
thanks in advance !!
here's goal, pretty simple - little prototype larger project....
i need able control 9 servo's 1 board (decimilia) independently. i'm bit new @ writing code however, approach write separate functions each servo, , call functions in main loop in whatever order necessary achieve desired effect.
i have code runs of them @ once, (just test see if power supply sufficient) -
how modify or re-write code independent control , choreographed sequence of actuations?
code: [select]
#define servoa 13
#define servob 12
#define servoc 11
#define servod 10
#define servoe 9
#define servof 8
#define servog 7
#define servoh 6
#define servoi 5
#define min_pulse 600
#define max_pulse 2400
#define delta 1800
int lastpulse = 0;
int refreshtime = 20;
long randnumber;
void setup()
{
int i;
pinmode(servoa, output);
pinmode(servob, output);
pinmode(servoc, output);
pinmode(servod, output);
pinmode(servoe, output);
pinmode(servof, output);
pinmode(servog, output);
pinmode(servoh, output);
pinmode(servoi, output);
digitalwrite(servoa, low);
digitalwrite(servob, low);
digitalwrite(servoc, low);
digitalwrite(servod, low);
digitalwrite(servoe, low);
digitalwrite(servof, low);
digitalwrite(servog, low);
digitalwrite(servoh, low);
digitalwrite(servoi, low);
serial.begin(9600);
for (i=0; i<10; i++)
{
digitalwrite(servoa, high);
digitalwrite(servob, high);
digitalwrite(servoc, high);
digitalwrite(servod, high);
digitalwrite(servoe, high);
digitalwrite(servof, high);
digitalwrite(servog, high);
digitalwrite(servoh, high);
digitalwrite(servoi, high);
delaymicroseconds((min_pulse + max_pulse)/2);
digitalwrite(servoa, low);
digitalwrite(servob, low);
digitalwrite(servoc, low);
digitalwrite(servod, low);
digitalwrite(servoe, low);
digitalwrite(servof, low);
digitalwrite(servog, low);
digitalwrite(servoh, low);
digitalwrite(servoi, low);
delay(20);
}
serial.println("servo should @ center");
delay(20);
}
void loop()
{
int i;
static int pulse_width;
randnumber = random(600, 2400);
delay(3000);
pulse_width = randnumber;
serial.println(pulse_width, dec);
/*
if (millis() - lastpulse >= refreshtime) {
digitalwrite(servoa, high);
digitalwrite(servob, high);
digitalwrite(servoc, high);
digitalwrite(servod, high);
digitalwrite(servoe, high);
digitalwrite(servof, high);
digitalwrite(servog, high);
digitalwrite(servoh, high);
digitalwrite(servoi, high);
delaymicroseconds(pulse_width);
digitalwrite(servoa, low);
digitalwrite(servob, low);
digitalwrite(servoc, low);
digitalwrite(servod, low);
digitalwrite(servoe, low);
digitalwrite(servof, low);
digitalwrite(servog, low);
digitalwrite(servoh, low);
digitalwrite(servoi, low);
delay(20);
lastpulse = millis();
}
}
*/
for (i=0; i<100; i++)
{
digitalwrite(servoa, high);
digitalwrite(servob, high);
digitalwrite(servoc, high);
digitalwrite(servod, high);
digitalwrite(servoe, high);
digitalwrite(servof, high);
digitalwrite(servog, high);
digitalwrite(servoh, high);
digitalwrite(servoi, high);
delaymicroseconds(pulse_width);
digitalwrite(servoa, low);
digitalwrite(servob, low);
digitalwrite(servoc, low);
digitalwrite(servod, low);
digitalwrite(servoe, low);
digitalwrite(servof, low);
digitalwrite(servog, low);
digitalwrite(servoh, low);
digitalwrite(servoi, low);
delay(20);
}
}
thanks in advance !!
q. supply adequate power 9 servo's ?
Arduino Forum > Forum 2005-2010 (read only) > Software > Syntax & Programs > perhaps a little help with servo control??
arduino
Comments
Post a Comment