Hey!
I’m new to Arduino and I’m trying to run 4 servos (soon to be 5)
Each servo has 2 push buttons - One for clockwise and the other for counterclockwise.
I’m getting a lot of ‘jittering, vibrating’ and also the push buttons seems to only work sometimes.
I wanted to know if its a problem with the power supply, layout or code?
Any help will be much appreciated
#include <Servo.h>
// servo1
const int buttonPin = 14;
const int buttonPin2 = 15;
int buttonState = 0;
int buttonState2 = 0;
Servo servo1;
// SERVO2
const int buttonPin3 = 16;
const int buttonPin4 = 17;
int buttonState3 = 0;
int buttonState4 = 0;
Servo servo2;
// SERVO3
const int buttonPin5 = 7;
const int buttonPin6 = 6;
int buttonState5 = 0;
int buttonState6 = 0;
Servo servo3;
// SERVO4
const int buttonPin7 = 8;
const int buttonPin8 = 9;
int buttonState7 = 0;
int buttonState8 = 0;
Servo servo4;
// SERVO 5
const int buttonPin9 = 11;
const int buttonPin10 = 13;
int buttonState9 = 0;
int buttonState10 = 0;
Servo servo5;
int pos = 90;
int pos2 = 90;
int pos3 = 90;
int pos4 = 90;
int pos5 = 90;
void setup() {
Serial.begin(9600);
servo1.attach(2);
servo2.attach(3);
servo3.attach(5);
servo4.attach(10);
servo5.attach(12);
pinMode(buttonPin, INPUT);
pinMode(buttonPin2, INPUT);
pinMode(buttonPin3, INPUT);
pinMode(buttonPin4, INPUT);
pinMode(buttonPin5, INPUT);
pinMode(buttonPin6, INPUT);
pinMode(buttonPin7, INPUT);
pinMode(buttonPin8, INPUT);
pinMode(buttonPin9, INPUT);
pinMode(buttonPin10, INPUT);
digitalWrite(buttonPin, HIGH);
digitalWrite(buttonPin2, HIGH);
digitalWrite(buttonPin3, HIGH);
digitalWrite(buttonPin4, HIGH);
digitalWrite(buttonPin5, HIGH);
digitalWrite(buttonPin6, HIGH);
digitalWrite(buttonPin7, HIGH);
digitalWrite(buttonPin8, HIGH);
digitalWrite(buttonPin9, HIGH);
digitalWrite(buttonPin10, HIGH);
servo1.write (pos);
servo2.write (pos2);
servo3.write (pos3);
servo4.write (pos4);
servo5.write (pos5);
delay(1000);
}
void loop() {
// serial //
Serial.print(buttonState);
Serial.print(buttonState2);
Serial.print(buttonState3);
Serial.print(buttonState4);
Serial.print(buttonState5);
Serial.print(buttonState6);
Serial.print(buttonState7);
Serial.print(buttonState8);
Serial.print(buttonState9);
Serial.print(buttonState10);
// buttonstate //
buttonState = digitalRead(buttonPin);
buttonState2 = digitalRead(buttonPin2);
buttonState3 = digitalRead(buttonPin3);
buttonState4 = digitalRead(buttonPin4);
buttonState5 = digitalRead(buttonPin5);
buttonState6 = digitalRead(buttonPin6);
buttonState7 = digitalRead(buttonPin7);
buttonState8 = digitalRead(buttonPin8);
buttonState9 = digitalRead(buttonPin9);
buttonState10 = digitalRead(buttonPin10);
/////// MOVEMENT ////////
// servo1 //
if (buttonState == LOW) {
pos = (pos + 1);
servo1.write(pos);
Serial.println(buttonState);
delay(15);
}
if (buttonState2 == LOW) {
pos = (pos - 1);
servo1.write(pos);
Serial.println(buttonState2);
delay(15);
}
// servo2 //
if (buttonState3 == LOW) {
pos2 = (pos2 + 1);
servo2.write(pos2);
Serial.println(buttonState3);
delay(15);
}
if (buttonState4 == LOW) {
pos2 = (pos2 - 1);
servo2.write(pos2);
Serial.println(buttonState4);
delay(15);
}
// servo3 //
if (buttonState5 == LOW) {
pos3 = (pos3 + 1);
servo3.write(pos3);
Serial.println(buttonState5);
delay(15);
}
if (buttonState6 == LOW) {
pos3 = (pos3 - 1);
servo3.write(pos3);
Serial.println(buttonState6);
delay(15);
}
// servo4 //
if (buttonState7 == LOW) {
pos4 = (pos4 + 1);
servo4.write(pos4);
Serial.println(buttonState7);
delay(15);
}
if (buttonState8 == LOW) {
pos4 = (pos4 - 1);
servo4.write(pos4);
Serial.println(buttonState8);
delay(15);
}
// servo5 //
if (buttonState9 == LOW) {
pos5 = (pos5 + 1);
servo5.write(pos5);
Serial.println(buttonState9);
delay(15);
}
if (buttonState10 == LOW) {
pos5 = (pos5 - 5);
servo5.write(pos5);
Serial.println(buttonState10);
delay(15);
}
}