Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Servo.h>
- #include <IRremote.h>
- #define trigPin 13
- #define echoPin 12
- #define led 7
- #define led2 8
- Servo myservo;
- Servo myservo1;
- Servo myservo2;
- int pos = 0;
- int IR_Recv = 3;
- int pressed = 0;
- IRrecv irrecv(IR_Recv);
- decode_results results;
- void setup()
- {
- Serial.begin (9600);
- pinMode(trigPin, OUTPUT);
- pinMode(echoPin, INPUT);
- pinMode(led, OUTPUT);
- pinMode(led2, OUTPUT);
- myservo.attach(9);
- myservo1.attach(10);
- myservo2.attach(11);
- irrecv.enableIRIn();
- irrecv.blink13(true);
- }
- void operate_robot()
- {
- long duration = 0, distance = 0;
- int pos = 0;
- attachInterrupt(1, res, CHANGE);
- digitalWrite(trigPin, LOW);
- delayMicroseconds(2);
- digitalWrite(trigPin, HIGH);
- delayMicroseconds(10);
- digitalWrite(trigPin, LOW);
- duration = pulseIn(echoPin, HIGH);
- distance = (duration/2) / 29.1;
- if(distance <= 20)
- {
- digitalWrite(led,HIGH);
- digitalWrite(led2,LOW);
- for(; pos < 180; pos++)
- {
- myservo.write(pos);
- myservo1.write(pos);
- myservo2.write(pos);
- delay(5);
- }
- for(pos = 180; pos > 0; pos--)
- {
- myservo.write(pos);
- myservo1.write(pos);
- myservo2.write(pos);
- delay(5);
- }
- }
- else if (distance > 20)
- {
- digitalWrite(led,LOW);
- digitalWrite(led2,HIGH);
- for(pos = 0; pos < 20; pos++)
- {
- myservo.write(pos);
- myservo1.write(pos);
- myservo2.write(pos);
- delay(5);
- }
- for(pos = 20; pos > 0; pos--)
- {
- myservo.write(pos);
- myservo1.write(pos);
- myservo2.write(pos);
- delay(5);
- }
- }
- }
- void res ()
- {
- irrecv.resume();
- }
- void loop()
- {
- if(pressed == 0)
- {
- if(irrecv.decode(&results))
- {
- if(results.value == 16753245)
- {
- pressed = 1;
- operate_robot();
- }
- else
- {
- irrecv.resume();
- }
- }
- }
- else if(results.value == 16753245)
- {
- operate_robot();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement