#include <Arduino.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
void TaskBlink1(void *pvParameters);
void TaskBlink2(void *pvParameters);
void setup(){
lcd.init();
lcd.backlight();
pinMode(19, OUTPUT);
pinMode(18, OUTPUT);
xTaskCreatePinnedToCore(
TaskBlink1,
"TaskBlink1",
4096,
NULL,
2,
NULL,
ARDUINO_RUNNING_CORE
);
xTaskCreatePinnedToCore(
TaskBlink2,
"TaskBlink2",
4096,
NULL,
1,
NULL,
ARDUINO_RUNNING_CORE
);
}
void loop() {
}
void TaskBlink1(void *pvParameters){
(void) pvParameters;
bool led1State = false;
for(;;){
digitalWrite(19, HIGH);
if(!led1State){
lcd.setCursor(0, 0);
lcd.print("LED 1: ON");
led1State = true;
}
vTaskDelay(2000 / portTICK_PERIOD_MS);
digitalWrite(19, LOW);
if(led1State){
lcd.setCursor(0, 0);
lcd.print("LED 1: OFF");
led1State = false;
}
vTaskDelay(3000 / portTICK_PERIOD_MS);
}
}
void TaskBlink2(void *pvParameters){
(void) pvParameters;
bool led2State = false;
for(;;){
digitalWrite(18, HIGH);
if(!led2State){
lcd.setCursor(0, 1);
lcd.print("LED 2: ON");
}
vTaskDelay(2500 / portTICK_PERIOD_MS);
digitalWrite(18, LOW);
if(led2State){
lcd.setCursor(0, 1);
lcd.print("LED 2: OFF");
}
vTaskDelay(500 / portTICK_PERIOD_MS);
}
}