#include
#define SEND_LEDC_CHANNEL 0
#include
// Define the GPIO pin connected to the IR receiver
#define IR_RECEIVE_PIN 27
// Queue to hold IR commands
QueueHandle_t irQueue;
// Declare task functions
void readIrTask(void *parameter);
void displayIrTask(void *parameter);
void setup()
{
Serial.begin(115200);
Serial.println("IR Receiver Example");
// Start the IR receiver
IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK);
// Create a queue capable of containing 10 IR commands
irQueue = xQueueCreate(10, sizeof(uint32_t));
// Create the tasks
xTaskCreatePinnedToCore(readIrTask, "ReadIR", 2048, NULL, 1, NULL, 1);
xTaskCreatePinnedToCore(displayIrTask, "DisplayIR", 2048, NULL, 2, NULL, 1);
}
void loop()
{
// No need to use loop since tasks handle execution
}
// Task to read IR commands
void readIrTask(void *parameter)
{
while (true)
{
if (IrReceiver.decode())
{
//Serial.print("Decoded IR Command: ");
//Serial.println(IrReceiver.decodedIRData.decodedRawData, HEX);
uint32_t commandValue = IrReceiver.decodedIRData.decodedRawData;
// Send the command to the queue
xQueueSend(irQueue, &commandValue, portMAX_DELAY);
Serial.println("Command sent to queue.");
IrReceiver.resume(); // Prepare for the next value
}
vTaskDelay(10 / portTICK_PERIOD_MS); // Delay to yield control
}
}
// Task to display IR commands
void displayIrTask(void *parameter)
{
uint32_t receivedValue;
while (true)
{
// Wait for a command from the queue
if (xQueueReceive(irQueue, &receivedValue, portMAX_DELAY) == pdPASS)
{
Serial.print("Received IR Command: ");
Serial.println(receivedValue, HEX);
}
vTaskDelay(10 / portTICK_PERIOD_MS); // Delay to yield control
}
}
< /code>
Ich habe diesen Code aus der Arduino IDE 2 auf mein NodeMcu32S -Board und alle Arbeiten von Serial.print hochgeladen. Ich habe mit dem seriellen Monitor von Arduino IDE und Platformio von ARDUINO IDE verifiziert. Wenn ich jedoch den seriellen Monitor öffne, wird nur die Meldung "IR -Empfänger Beispiel" gedruckt. Ich habe auch den seriellen Monitor der Arduino IDE sofort geöffnet, nachdem ich den seriellen Monitor von Platformio geschlossen hatte, und sah das gleiche Problem. Ich weiß nicht, was das Problem sein könnte. Warum ist nur die Nachricht im Void -Setup -Druck? Wie teste ich Theorien darüber, was falsch sein könnte, und wie löste ich es? < /P>
Vielen Dank für die Hilfe. Ich bin neu im Platformio.
Istremote und Freertos -Code für ESP32 läuft mit Arduino IDE, aber nicht vollständig mit Platformio ⇐ C++
-
- Similar Topics
- Replies
- Views
- Last post