From b13d769b6539c96f729f47b8098a638963b91b59 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 23 Jan 2026 01:36:30 +0300 Subject: [PATCH] add IR --- platformio.ini | 3 ++- src/ir_input.cpp | 19 +++++++++++++++++++ src/ir_input.h | 4 ++++ src/main.cpp | 3 +++ 4 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 src/ir_input.cpp create mode 100644 src/ir_input.h diff --git a/platformio.ini b/platformio.ini index 2179139..a524ca5 100644 --- a/platformio.ini +++ b/platformio.ini @@ -19,4 +19,5 @@ lib_deps = adafruit/Adafruit GFX Library@^1.12.4 adafruit/Adafruit SSD1306@^2.5.16 links2004/WebSockets@^2.7.3 - LiquidCrystal_I2C@^1.1.4 \ No newline at end of file + LiquidCrystal_I2C@^1.1.4 + IRremote@^4.4.3 \ No newline at end of file diff --git a/src/ir_input.cpp b/src/ir_input.cpp new file mode 100644 index 0000000..45177fe --- /dev/null +++ b/src/ir_input.cpp @@ -0,0 +1,19 @@ +#include +#include +#include "ir_input.h" + +// ===== IR CONFIG ===== +#define IR_RECEIVE_PIN 14 + +void irInit() { + IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK); + Serial.println("IR receiver ready"); +} + +void irPoll() { + if (IrReceiver.decode()) { + Serial.print("IR HEX: 0x"); + Serial.println(IrReceiver.decodedIRData.decodedRawData, HEX); + IrReceiver.resume(); + } +} diff --git a/src/ir_input.h b/src/ir_input.h new file mode 100644 index 0000000..3c29112 --- /dev/null +++ b/src/ir_input.h @@ -0,0 +1,4 @@ +#pragma once + +void irInit(); +void irPoll(); diff --git a/src/main.cpp b/src/main.cpp index 5f34147..0b3feb7 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -10,6 +10,7 @@ #include "web_server.h" #include "ws_server.h" #include "controller.h" +#include "ir_input.h" void setup() { Serial.begin(115200); @@ -21,6 +22,7 @@ void setup() { actuatorsInit(); webServerInit(); wsInit(); + irInit(); robot.lastCmdMs = millis(); } @@ -29,4 +31,5 @@ void loop() { webServerLoop(); wsLoop(); controllerUpdate(); + irPoll(); }