I would like to be able to control 10 servos using an IR receiver. After doing a bit of research I decided to get an Arduino Uno, IR receiver/remote, PCA9685, and the other necessary equipment. I would like to not have to get more supplies and would like to keep the hardware as small as possible. I was able to assemble the hardware but the coding was stumping me.
I can control each individual servo but would like to control all 10. Please help me write code that can connect all the servos to the arduino
Here is my code.
#include <IRremote.h>
#include <Servo.h>
int IRpin = 11; // pin for the IR sensor
IRrecv irrecv(IRpin);
decode_results results;
Servo Rkneecap;
Servo Lkneecap;
Servo RhipL;
Servo LhipL;
Servo RhipU;
Servo LhipU;
Servo Rshoulder;
Servo Lshoulder;
Servo Relbow;
Servo Lelbow;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
Rshoulder.attach(9); // attaches the servo on pin 9 to the servo object
}
void loop()
{
if (irrecv.decode(&results))
{
irrecv.resume(); // Receive the next value
}
//STAND (>||)
//left knee cap
if (results.value == 16712445) // change according to your IR remote button number
{
//left knee cap
Lkneecap.write(90);
delay(0);
//left hip lower
LhipL.write(90);
delay(0);
//left hip upper
LhipU.write(90);
delay(0);
//left elbow
Lelbow.write(90);
delay(0);
//left shoulder
Lshoulder.write(90);
delay(0);
//right knee cap
Rkneecap.write(90);
delay(0);
//right hip lower
RhipL.write(90);
delay(0);
//right hip upper
RhipU.write(90);
delay(0);
//right elbow
Relbow.write(90);
delay(0);
//right shoulder
Rshoulder.write(90);
delay(0);
}
//WALK FORWARD (VOL+)
//left knee cap
if (results.value == 16736925) // change according to your IR remote button number
{
//right shoulder
Rshoulder.write(70);
delay(0);
//right knee cap
Rkneecap.write(80);
delay(0);
//right hip lower
RhipL.write(130);
delay(0);
//left elbow
Lelbow.write(130);
delay(0);
//left hip lower
LhipL.write(105);
delay(500); //2:00
//right shoulder
Rshoulder.write(90);
delay(0);
//right elbow
Relbow.write(60);
delay(0);
//right hip lower
RhipL.write(80);
delay(0);
//right knee cap
Rkneecap.write(90);
delay(0);
//left shoulder
Lshoulder.write(100);
delay(0);
//left elbow
Lelbow.write(120);
delay(0);
//left hip lower
LhipL.write(55);
delay(0);
//left knee cap
Lkneecap.write(30);
delay(500); //2:15
//right elbow
Relbow.write(90);
delay(0);
//right knee cap
Rkneecap.write(160);
delay(0);
//right hip lower
RhipL.write(120);
delay(0);
//left knee cap
Lkneecap.write(90);
delay(0);
//left shoulder
Lshoulder.write(90);
delay(0);
//left elbow
Lelbow.write(130);
delay(0);
//left hip lower
LhipL.write(90);
delay(0); //3:00
}
//PUNCH RIGHT (FUNC/STOP)
if (results.value == 16769565) // change according to your IR remote button number
{
//right shoulder
Rshoulder.write(180);
delay(0);
//right elbow
Relbow.write(140);
delay(0);
}
//PUNCH LEFT (ON)
if (results.value == 16753245) // change according to your IR remote button number
{
//left elbow
Lelbow.write(180);
delay(0);
//left shoulder
Lshoulder.write(140);
delay(0);
}
}
Here is a picture of my robot robot - Album on Imgur
The servos would be hooked up to the PCA 9685.
My end goal is to build a robot that I can control with a remote.