/*Author: MrMad Date: 21.5.2018 Board: Arduino UNO*/ //----------Libraries #include #include #include //----------Servos Servo Servo1; //Tongs Servo Servo2; //Wrist Servo Servo3; //Elbow Servo Servo4; //Shoulder //----------Reciver int reciver = 2; IRrecv irrecv(reciver); decode_results results; //----------Variables int position1 = 150; int position2 = 50; int position3 = 100; //----------Setup void setup() { Servo1.attach(7); //Tongs Servo2.attach(9); //Wrist Servo3.attach(6); //Elbow Servo4.attach(8); //Shoulder Servo2.write(position1); //Basic position Servo3.write(position2); // Basic position Servo4.write(position3); // Basic position irrecv.enableIRIn(); } void loop() { if (irrecv.decode(&results)) { translateIR(); irrecv.resume(); } } // You must change your sequences in Void translateIR() because you have another controler. void translateIR() { switch(results.value) { case 0xFF30CF: Down1(); break; case 0xFF10EF: Up1(); break; case 0xFF18E7: Up2(); break; case 0xFF38C7: Down2(); break; case 0xFF7A85: Up3(); break; case 0xFF5AA5: Down3(); break; case 0xFF906F: Open(); break; case 0xFFA857: Close(); break; } delay(50); } //----------Functions void Up1() { position1 = position1 + 15; Servo2.write(position1); delay(50); } void Down1() { position1 = position1 - 15; Servo2.write(position1); delay(50); } void Up2() { position2 = position2 + 10; Servo3.write(position2); delay(100); position2 = position2 + 5; Servo3.write(position2); delay(50); } void Down2() { position2 = position2 - 10; Servo3.write(position2); delay(100); position2 = position2 - 5; Servo3.write(position2); delay(50); } void Up3() { position3 = position3 + 15; Servo4.write(position3); delay(50); } void Down3() { position3 = position3 - 15; Servo4.write(position3); delay(50); } void Open() { Servo1.write(50); delay(50); } void Close() { Servo1.write(180); delay(50); }