I am completely lost with Arrays. I am working on a servo project and am a complete newbie. I have successfully written code to control one servo by pushbutton. What I would like to do is create an array for 6 servos. All that i want to do is to create an array for buttonpin and servopin. That is the only variable I want to have an array for everything else I would like to keep the same. does anyone have any ideas on the easiest way of accomplishing this? I will of course also need some help in ensuring it is able to be read in the code. I know it is likely something very simple, but I already have a migraine from learning this stuff.
The code is doing exactly what I want it to do but for only one servo.
#include <Servo.h>
// constant variables used to set servo angles, in degrees
const int straight = 90;
const int divergent = 110;
// constant variables holding the ids of the pins we are using
const int buttonpin = 8;
const int servopin = 9;
// servo movement step delay, in milliseconds
const int step_delay = 70;
// create a servo object
Servo myservo;
// global variables to store servo position
int pos = straight; // current
int old_pos = pos; // previous
void setup()
{
// set the mode for the digital pins in use
pinMode(buttonpin, INPUT);
// setup the servo
myservo.attach(servopin); // attach to the servo on pin 9
myservo.write(pos); // set the initial servo position
}
void loop()
{
// start each iteration of the loop by reading the button
// if the button is pressed (reads HIGH), move the servo
int button_state = digitalRead(buttonpin);
if(button_state == HIGH){
old_pos = pos; // save the current position
// Toggle the position to the opposite value
pos = pos == straight ? divergent: straight;
// Move the servo to its new position
if(old_pos < pos){ // if the new angle is higher
// increment the servo position from oldpos to pos
for(int i = old_pos + 1; i <= pos; i++){
myservo.write(i); // write the next position to the servo
delay(step_delay); // wait
}
} else { // otherwise the new angle is equal or lower
// decrement the servo position from oldpos to pos
for(int i = old_pos - 1; i >= pos; i--){
myservo.write(i); // write the next position to the servo
delay(step_delay); // wait
}
}
}
}// end of loop