#include <Arduino_FreeRTOS.h>
int LED_VERMELHO = 4;
int LED_AMARELO = 3;
int LED_VERDE = 2;
bool ledState[] = {LOW,LOW,LOW};
unsigned long currentTime = 0;
unsigned long previousTime[] = {0,0,0};
int leds[] ={2, 3, 4};
void setup(){
Serial.begin(9600);
for(int i = 0; i < 3; i++){
pinMode(leds[i], OUTPUT);
}
int v[] = {LED_VERMELHO, 2000};
int a[] = {LED_AMARELO, 2000};
int ve[] = {LED_VERDE, 2000};
xTaskCreate(tarefa1, "vermelho", 128, NULL, 1, NULL);
xTaskCreate(tarefa2, "amarelo", 128, NULL, 1, NULL);
xTaskCreate(tarefa3, "verde", 128, NULL, 1, NULL);
}
void loop()
{
}
void tarefa1(void *pvParameters){
// Extrai os parâmetros
int pin = LED_VERMELHO;
int interval = 2000;
//Serial.println(pin);
while(1){
//Serial.println(pin);
currentTime = millis();
//interval /= 2;
if((currentTime - previousTime[0]) >= interval) {
previousTime[0] = currentTime;
bool state = !ledState[0];
ledState[0] = state;
digitalWrite(pin, state);
}
}
}
void tarefa2(void *pvParameters){
// Extrai os parâmetros
int pin = LED_AMARELO;
int interval = 1000;
//erial.println(pin);
while(1){
//Serial.println(pin);
currentTime = millis();
//interval /= 2;
if((currentTime - previousTime[1]) >= interval) {
previousTime[1] = currentTime;
bool state = !ledState[1];
ledState[1] = state;
digitalWrite(pin, state);
}
}
}
void tarefa3(void *pvParameters){
// Extrai os parâmetros
int pin = LED_VERDE;
int interval = 500;
//erial.println(pin);
while(1){
//Serial.println(pin);
currentTime = millis();
//interval /= 2;
if((currentTime - previousTime[2]) >= interval) {
previousTime[2] = currentTime;
bool state = !ledState[2];
ledState[2] = state;
digitalWrite(pin, state);
}
}
}