RC car
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
/*
|
||||
Simple RC car.
|
||||
*/
|
||||
#include <DIYables_IRcontroller.h> // DIYables_IRcontroller library
|
||||
|
||||
#define IR_RECEIVER_PIN D1 // The ESP8266 pin D1 connected to IR controller
|
||||
#define LED D0
|
||||
|
||||
DIYables_IRcontroller_17 irController(IR_RECEIVER_PIN, 200); // debounce time is 200ms
|
||||
|
||||
void setup() {
|
||||
Serial.begin(115200);
|
||||
Serial.setDebugOutput(true);
|
||||
|
||||
pinMode(LED, OUTPUT); // LED pin as output.
|
||||
pinMode(D2, OUTPUT); /* PWM pin for Speed Control */
|
||||
pinMode(D5, OUTPUT); //M1
|
||||
pinMode(D6, OUTPUT); //M1
|
||||
pinMode(D7, OUTPUT); //M2
|
||||
pinMode(D8, OUTPUT); //M2
|
||||
irController.begin();
|
||||
|
||||
Serial.println("SETUP OK");
|
||||
|
||||
digitalWrite(LED, HIGH);
|
||||
delay(200);
|
||||
digitalWrite(LED, LOW);
|
||||
delay(200);
|
||||
digitalWrite(LED, HIGH);
|
||||
delay(200);
|
||||
digitalWrite(LED, LOW);
|
||||
delay(200);
|
||||
digitalWrite(LED, HIGH);
|
||||
delay(200);
|
||||
digitalWrite(LED, LOW);
|
||||
delay(200);
|
||||
digitalWrite(LED, HIGH);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
|
||||
Key17 key = irController.getKey();
|
||||
|
||||
if (key != Key17::NONE) {
|
||||
switch (key) {
|
||||
case Key17::KEY_UP:
|
||||
Serial.println("BTN: UP");
|
||||
digitalWrite(D5,HIGH);
|
||||
digitalWrite(D6,LOW);
|
||||
digitalWrite(D7,HIGH);
|
||||
digitalWrite(D8,LOW);
|
||||
analogWrite(D2,255);
|
||||
break;
|
||||
case Key17::KEY_LEFT:
|
||||
Serial.println("BTN: LEFT");
|
||||
digitalWrite(D5,LOW);
|
||||
digitalWrite(D6,HIGH);
|
||||
digitalWrite(D7,HIGH);
|
||||
digitalWrite(D8,LOW);
|
||||
analogWrite(D2,1024);
|
||||
break;
|
||||
case Key17::KEY_RIGHT:
|
||||
Serial.println("BTN: RIGHT");
|
||||
digitalWrite(D5,HIGH);
|
||||
digitalWrite(D6,LOW);
|
||||
digitalWrite(D7,LOW);
|
||||
digitalWrite(D8,HIGH);
|
||||
analogWrite(D2,1024);
|
||||
break;
|
||||
case Key17::KEY_DOWN:
|
||||
Serial.println("BTN: DOWN");
|
||||
digitalWrite(D5,LOW);
|
||||
digitalWrite(D6,HIGH);
|
||||
digitalWrite(D7,LOW);
|
||||
digitalWrite(D8,HIGH);
|
||||
analogWrite(D2,255);
|
||||
break;
|
||||
case Key17::KEY_OK:
|
||||
Serial.println("BTN: OK");
|
||||
digitalWrite(D5,LOW);
|
||||
digitalWrite(D6,LOW);
|
||||
digitalWrite(D7,LOW);
|
||||
digitalWrite(D8,LOW);
|
||||
analogWrite(D2,0);
|
||||
break;
|
||||
|
||||
default:
|
||||
Serial.println("BTN: default");
|
||||
//analogWrite(D1,0);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
analogWrite(D2,0);
|
||||
}
|
||||
delay(100);
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user