// Definição dos pinos dos LEDs
const int ledVermelho = 4;
const int ledVerde = 5;
// Função para controlar o LED vermelho no Core 0
void controlaLedVermelho(void *parameter) {
 // Variável para alternar o estado do LED
 bool estadoVermelho = LOW;
 while (true) {
 // Alterna o estado do LED vermelho
 estadoVermelho = !estadoVermelho;
 digitalWrite(ledVermelho, estadoVermelho);
 // Espera por 2 segundos
 vTaskDelay(2000 / portTICK_PERIOD_MS);
 }
}
// Função para controlar o LED verde no Core 1
void controlaLedVerde(void *parameter) {
 // Variável para alternar o estado do LED
 bool estadoVerde = LOW;
 while (true) {
 // Alterna o estado do LED verde
 estadoVerde = !estadoVerde;
 digitalWrite(ledVerde, estadoVerde);
 // Espera por 3 segundos
 vTaskDelay(3000 / portTICK_PERIOD_MS);
 }
}


void setup() {
 // Configurando os pinos dos LEDs como saída
 pinMode(ledVermelho, OUTPUT);
 pinMode(ledVerde, OUTPUT);
 // Criando as tarefas:
 // Tarefa do LED vermelho no núcleo 0
 xTaskCreatePinnedToCore(
 controlaLedVermelho, // Função da tarefa
 "TaskLedVermelho", // Nome da tarefa (para identificação)
 1000, // Tamanho da stack
 NULL, // Parâmetro da tarefa (não usado aqui)
 1, // Prioridade da tarefa
 NULL, // Handle da tarefa (não usado aqui)
 0 // Núcleo onde a tarefa será executada (Core 0)
 );
 // Tarefa do LED verde no núcleo 1
 xTaskCreatePinnedToCore(
 controlaLedVerde, // Função da tarefa
 "TaskLedVerde", // Nome da tarefa
 1000, // Tamanho da stack
 NULL, // Parâmetro da tarefa
 1, // Prioridade da tarefa
 NULL, // Handle da tarefa
 1 // Núcleo onde a tarefa será executada (Core 1)
 );
}
void loop() {
 // O loop permanece vazio porque as tarefas estão sendo controladas
}

$abcdeabcde151015202530354045505560fghijfghij