/*
Creare un programma in c per Wokwi per esp32 per
a realizzazione dell'accensione di un led verde a pulsante
premuto e al suo spegnimento e all'accensione di quello
rosso a pulsante rilasciato. Pulsante in modo pullup.
*/
#include <pthread.h>
int ledrosso = 4;
int ledverde = 16;
int btn1 = 12;
pthread_t t_blink;// descrittori dei threads
// TASK 1
void *blink(void*){
while (true) { // loop task 1
digitalWrite(ledverde,!digitalRead(ledverde));
delay(2000);
}
}
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!");
pinMode(ledrosso, OUTPUT);
pinMode(ledverde, OUTPUT);
pinMode(btn1, INPUT);
pthread_create(&t_blink,NULL,blink,NULL);
}
void loop() {
// task1. gestione pulsante
//Fase1: lettura ingressi
int val = !digitalRead(btn1);
//Fase2: calcolo logica di comando
if(val){// equivale val == HIGH o val == 1
//Fase3: scrittura uscite
digitalWrite(ledrosso, HIGH);
}else{
//Fase3: scrittura uscite
digitalWrite(ledrosso, LOW);
}
delay(10); // this speeds up the simulation
}