Poc DualCore

This commit is contained in:
sieja
2025-09-11 19:48:45 +02:00
parent 0d9025e9e3
commit c227eb61d6

View File

@@ -0,0 +1,78 @@
#include <Arduino.h>
#include "DHT.h"
#define LED_PIN 2
#define DHT_PIN 17
#define DHT_TYPE DHT22
DHT dht(DHT_PIN, DHT_TYPE);
// Uchwyty do tasków
TaskHandle_t TaskBlink;
// TaskHandle_t TaskDHT;
float h;
float t;
void setup() {
Serial.begin(115200);
pinMode(LED_PIN, OUTPUT);
dht.begin();
// Task pulsowania LED
xTaskCreatePinnedToCore(
blinkTask, "TaskBlink", 2048, NULL, 1, &TaskBlink, 1);
// Task odczytu DHT22
// xTaskCreatePinnedToCore(
// dhtTask, "TaskDHT", 4096, NULL, 1, &TaskDHT, 1);
}
void loop() {
h = dht.readHumidity();
t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Błąd odczytu z DHT22!");
} else {
Serial.printf("Temperatura: %.1f °C | Wilgotność: %.1f %%\n", t, h);
}
delay(2000 / portTICK_PERIOD_MS);
}
// --- Task LED PWM ---
void blinkTask(void *pvParameters) {
(void) pvParameters;
while (1) {
// Rozjaśnianie
for (int i = 0; i <= 255; i++) {
analogWrite(LED_PIN, i);
vTaskDelay(10 / portTICK_PERIOD_MS);
}
// Ściemnianie
for (int i = 255; i >= 0; i--) {
analogWrite(LED_PIN, i);
vTaskDelay(10 / portTICK_PERIOD_MS);
}
}
}
// // --- Task DHT22 ---
// void dhtTask(void *pvParameters) {
// (void) pvParameters;
// while (1) {
// h = dht.readHumidity();
// t = dht.readTemperature();
// if (isnan(h) || isnan(t)) {
// Serial.println("Błąd odczytu z DHT22!");
// } else {
// Serial.printf("Temperatura: %.1f °C | Wilgotność: %.1f %%\n", t, h);
// }
// vTaskDelay(2000 / portTICK_PERIOD_MS);
// }
// }