diff --git a/src/2026-06-19_rc-car/2026-06-19_rc-car.ino b/src/2026-06-19_rc-car/2026-06-19_rc-car.ino new file mode 100644 index 0000000..483e8a6 --- /dev/null +++ b/src/2026-06-19_rc-car/2026-06-19_rc-car.ino @@ -0,0 +1,97 @@ +/* +Simple RC car. +*/ +#include // 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); + +} \ No newline at end of file