Created
November 26, 2019 11:31
-
-
Save dsvakola/c096cc9a11abcef74ec1d901e9d1b3dd to your computer and use it in GitHub Desktop.
Code of Arduino UNO based Teaching Pendant 4 DOF Robotic Arm in less Jitter Environment of Servos
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* This code was developed at Vidyasagar Academy, Akola | |
* Website: www.vsa.edu.in | |
* License: you can use it for any purpose as long as | |
* you don't claim that you are its author and | |
* you don't alter license terms and formulations (lines 2-8 of this file). | |
* If you can improve this code, please do so! | |
* You can contact us on our email addresses. | |
*/ | |
#include <Servo.h> | |
Servo servo1; | |
Servo servo2; | |
Servo servo3; | |
Servo servo4; | |
const int LED1 = 2; | |
const int LED2 = 3; | |
const int LED3 = 4; | |
const int LED4 = 7; | |
const int button1 = 12; | |
const int button2 = 13; | |
int button1Presses=0; | |
boolean button2Pressed=false; | |
const int pot1 = A0; | |
const int pot2 = A1; | |
const int pot3 = A2; | |
const int pot4 = A3; | |
int pot1Val; //Potentimeter values | |
int pot2Val; | |
int pot3Val; | |
int pot4Val; | |
int pot1Angle; | |
int pot2Angle; | |
int pot3Angle; | |
int pot4Angle; | |
int servo1PosSaves[] = {1,1,1,1}; // position saves | |
int servo2PosSaves[] = {1,1,1,1}; | |
int servo3PosSaves[] = {1,1,1,1}; | |
int servo4PosSaves[] = {1,1,1,1}; | |
void setup() | |
{ | |
servo1.attach(5); | |
servo2.attach(6); | |
servo3.attach(9); | |
servo4.attach(10); | |
pinMode(LED1, OUTPUT); | |
pinMode(LED2, OUTPUT); | |
pinMode(LED3, OUTPUT); | |
pinMode(LED4, OUTPUT); | |
pinMode(button1, INPUT); | |
pinMode(button2, INPUT); | |
Serial.begin(9600); | |
} | |
void loop() | |
{ | |
pot1Val = analogRead(pot1); | |
pot1Angle = map(pot1Val, 0, 512, 0, 180); | |
pot2Val = analogRead(pot2); | |
pot2Angle = map(pot2Val, 0, 512, 0, 180); | |
pot3Val = analogRead(pot3); | |
pot3Angle = map(pot3Val, 0, 512, 0, 180); | |
pot4Val = analogRead(pot4); | |
pot4Angle = map(pot4Val, 0, 512, 0, 180); | |
servo1.write(pot1Angle); | |
servo2.write(pot2Angle); | |
servo3.write(pot3Angle); | |
servo4.write(pot4Angle); | |
if(digitalRead(button1) == HIGH) | |
{ | |
button1Presses++; | |
switch(button1Presses) | |
{ | |
case 1: | |
servo1PosSaves[0] = pot1Angle; | |
servo2PosSaves[0] = pot2Angle; | |
servo3PosSaves[0] = pot3Angle; | |
servo4PosSaves[0] = pot4Angle; | |
digitalWrite(LED1, HIGH); | |
break; | |
case 2: | |
servo1PosSaves[1] = pot1Angle; | |
servo2PosSaves[1] = pot2Angle; | |
servo3PosSaves[1] = pot3Angle; | |
servo4PosSaves[1] = pot4Angle; | |
digitalWrite(LED2, HIGH); | |
break; | |
case 3: | |
servo1PosSaves[2] = pot1Angle; | |
servo2PosSaves[2] = pot2Angle; | |
servo3PosSaves[2] = pot3Angle; | |
servo4PosSaves[2] = pot4Angle; | |
digitalWrite(LED3, HIGH); | |
break; | |
case 4: | |
servo1PosSaves[3] = pot1Angle; | |
servo2PosSaves[3] = pot2Angle; | |
servo3PosSaves[3] = pot3Angle; | |
servo4PosSaves[3] = pot4Angle; | |
digitalWrite(LED4, HIGH); | |
break; | |
} | |
} | |
if(digitalRead(button2)==HIGH) | |
{ | |
button2Pressed = true; | |
} | |
if(button2Pressed) | |
{ | |
for(int i=0;i<4;i++) | |
{ | |
servo1.write(servo1PosSaves[i]); | |
delay(300); | |
servo2.write(servo2PosSaves[i]); | |
delay(300); | |
servo3.write(servo3PosSaves[i]); | |
delay(300); | |
servo4.write(servo4PosSaves[i]); | |
delay(300); | |
} | |
} | |
delay(500); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment