Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Servo.h>
- Servo myservo;
- int servopos = 30; //default servoposition for our servo
- int pdown = 2;
- int pup = 3;
- int pright = 4; //joystick pins
- int pleft = 5;
- int rdown = 0;
- int rup = 0;
- int rright = 0; //joystick read values
- int rleft = 0;
- int tswitch = 6; // togle switch variable
- int switchpos = 0; // position of the switch
- int read1 = 0;
- int sensor = 0;
- int sensorlevel = 0;
- void setup() {
- Serial.begin(9600);
- pinMode(pdown, INPUT);
- pinMode(pup, INPUT);
- pinMode(pright, INPUT);
- pinMode(pleft, INPUT);
- pinMode(LED_BUILTIN, OUTPUT);
- pinMode(tswitch, INPUT_PULLUP);
- myservo.attach(7);
- myservo.write(30);
- }
- void loop() {
- switchcheck:
- switchpos=digitalRead(tswitch);
- if(switchpos == HIGH){
- goto joycheck; //check the position of the switch
- }
- else{goto automatic;
- }
- joycheck:
- rdown=digitalRead(pdown);
- rup=digitalRead(pup); //reading the joystick's value
- rright=digitalRead(pright);
- rleft=digitalRead(pleft);
- if( rdown == LOW && rup == LOW && rright == LOW && rleft == LOW)
- {goto switchcheck;} //if joystick pos is 0 go back to switch check
- if(rup == HIGH || rdown == HIGH)
- {servopos = 30; //up or down = motor position to zero
- myservo.write(servopos);
- goto switchcheck;
- }
- if(rright == HIGH)
- {
- if (servopos != 10)
- {servopos=servopos-5; //right rotation
- myservo.write(servopos);
- digitalWrite(LED_BUILTIN,HIGH);
- delay(500);}
- goto switchcheck;
- }
- if(rleft == HIGH)
- {
- if (servopos != 50)
- {servopos=servopos+5; //left rotation
- myservo.write(servopos);
- digitalWrite(LED_BUILTIN,LOW);
- delay(500);}
- goto switchcheck;
- }
- automatic:
- sensor=analogRead(A0);
- sensorlevel=map(sensor,0,1023,1,9);
- Serial.println(sensorlevel);
- delay(1000);
- if(sensorlevel==4 || sensorlevel==3)
- {
- servopos=40;
- myservo.write(servopos);
- }
- if(sensorlevel==2 || sensorlevel==1)
- {
- servopos=50;
- myservo.write(servopos);
- }
- if(sensorlevel==6 || sensorlevel==7)
- {
- servopos=20;
- myservo.write(servopos);
- }
- if(sensorlevel==8 || sensorlevel==9)
- {
- servopos=10;
- myservo.write(servopos);
- }
- if(sensorlevel==5)
- {
- servopos=30;
- myservo.write(servopos);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment