Advertisement
Guest User

Untitled

a guest
Aug 19th, 2018
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.85 KB | None | 0 0
  1. #include<Servo.h>
  2. Servo servo;
  3. int buttonLeft = 2;
  4. int buttonRight = 3;
  5. const int ledGreen = 7;
  6. const int ledRed = 8;
  7.  
  8. int timesPressed = 0;
  9. int angleDirection = 0;
  10. float desiredAngle = 90;
  11. float currentAngle = 80;
  12. long randomNumber;
  13. const int potentioPin = A0;
  14. int potentioVal = 0;
  15.  
  16. void setup() {
  17.   Serial.begin(9600);
  18.   servo.attach(11);
  19.   pinMode(buttonLeft, INPUT);
  20.   pinMode(buttonRight, INPUT);
  21.   pinMode(ledGreen, OUTPUT);
  22.   pinMode(ledRed, OUTPUT);
  23.   attachInterrupt(digitalPinToInterrupt(buttonLeft), rotateServo, FALLING);
  24. }
  25.  
  26. void loop() {
  27.   if(digitalRead(buttonLeft) == 0 && digitalRead(buttonRight) == 0){
  28.     digitalWrite(ledGreen, HIGH);
  29.   } else {
  30.     digitalWrite(ledGreen, LOW);
  31.   }
  32.  
  33.   if(angleDirection == -1){
  34.     if(currentAngle > desiredAngle){
  35.       currentAngle += angleDirection * round(potentioVal / 30);
  36.       servo.write(round(currentAngle));
  37.     }
  38.   } else {
  39.     if(currentAngle < desiredAngle){
  40.       currentAngle += angleDirection * round(potentioVal / 30);
  41.       servo.write(round(currentAngle));
  42.     }
  43.   }
  44.   delay(100);
  45.  
  46.   if(currentAngle == desiredAngle){
  47.     Serial.println("Reached position of motor");
  48.     digitalWrite(ledRed, HIGH);
  49.     delay(2000);
  50.     digitalWrite(ledRed, LOW);
  51.   }
  52. }
  53.  
  54. void rotateServo() {
  55.   Serial.println("Button was pushed");
  56.   timesPressed += 1;
  57.   potentioVal = analogRead(potentioPin);
  58.   Serial.write("Servo moving with speed ");
  59.   Serial.print(round(potentioVal) / 30);
  60.   Serial.write(", raw potentio value:");
  61.   Serial.print(potentioVal);
  62.  
  63.   if(timesPressed % 2 == 0){
  64.     angleDirection = -1;
  65.     randomNumber = random(90);
  66.     desiredAngle = randomNumber;
  67.    
  68.   } else if (timesPressed % 2 == 1) {
  69.     angleDirection = 1;
  70.     randomNumber = random(90, 180);
  71.     desiredAngle = randomNumber;
  72.    
  73.   } else {
  74.     angleDirection = 0;
  75.   }
  76.  
  77.  
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement