Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Servo.h>
- Servo servoesq, servodir;
- int irPin = 2;
- int start_bit = 2200;
- int bin_1 = 1000;
- int bin_0 = 400;
- void setup() {
- pinMode(irPin, INPUT);
- Serial.begin(9600);
- Serial.println("Waiting: ");
- servoesq.attach(10);
- servodir.attach(9);
- servoesq.write(89);
- servodir.write(89);
- }
- void loop() {
- int key = getIRKey();
- if (key != 0)
- {
- Serial.print("Key Recieved: ");
- switch (key)
- {
- case 146: Serial.print("Right");
- servoesq.write(180);
- servodir.write(150);
- break;
- case 147: Serial.print("Left");
- servoesq.write(0);
- servodir.write(10);
- break;
- case 148: Serial.print("Back");
- servoesq.write(180);
- servodir.write(10);
- break;
- case 165: Serial.print("Forward");
- servoesq.write(0);
- servodir.write(150);
- break;
- case 149:
- Serial.print("Stop");
- servoesq.write(89);
- servodir.write(89);
- break;
- }
- Serial.println();
- }
- }
- int getIRKey() {
- int data[12];
- int i;
- while (pulseIn(irPin, LOW) < start_bit);
- for (i = 0 ; i < 11 ; i++)
- data[i] = pulseIn(irPin, LOW);
- for (i = 0 ; i < 11 ; i++)
- {
- if (data[i] > bin_1)
- data[i] = 1;
- else if (data[i] > bin_0)
- data[i] = 0;
- else
- return -1;
- }
- int result = 0;
- for (i = 0 ; i < 11 ; i++)
- {
- if(data[i] == 1) result |= (!i);
- return result;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement