// Librerías
#include "config.h"
// Variables a utilizar
int pot1;
int pot2;
int vpot1;
int vpot2;
int pb1;
int pb2;
int pb3;
int pb1_prev;
int pb2_prev;
int pb3_prev;
int oldledr;
int oldleda;
int oldledv;
int LEDr = 0;
int LEDa = 0;
int LEDv = 0;
int LEDy = 0;
int LEDc = 0;
int data = 0;
// Punteros para Adafruit
AdafruitIO_Feed *ALEDr = io.feed("LEDrojo");
AdafruitIO_Feed *ALEDa = io.feed("LEDazul");
AdafruitIO_Feed *ALEDv = io.feed("LEDverde");
AdafruitIO_Feed *Abla = io.feed("LEDamarillo");
AdafruitIO_Feed *Ablc = io.feed("LEDceleste");
void setup() {
// ENTRADAS
pinMode(25, INPUT_PULLUP);
pinMode(33, INPUT_PULLUP);
pinMode(32, INPUT_PULLUP);
pinMode(35, INPUT);
pinMode(34, INPUT);
//SALIDAS
pinMode(5, OUTPUT);
pinMode(18, OUTPUT);
pinMode(19, OUTPUT);
pinMode(21, OUTPUT);
pinMode(22, OUTPUT);
// Comunicación Serial
Serial.begin(115200);
while(! Serial);
// Conexión WIFI de Wokwi
Serial.print("Connecting to WiFi");
WiFi.begin("Wokwi-GUEST", "", 6);
while (WiFi.status() != WL_CONNECTED) {
delay(100);
Serial.print(".");
}
Serial.println(" Connected!");
// Coneción con Adafruit
Serial.print("Connecting to Adafruit IO");
io.connect();
while(io.status() < AIO_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println();
Serial.println(io.statusText());
}
void loop() {
// Inicio de Adafruit
io.run();
//Lectura de Pots
pot1 = analogRead(35);
vpot1 = map(pot1, 0, 4095, 0, 255);
pot2 = analogRead(34);
vpot2 = map(pot2, 0, 4095, 0, 255);
//Lectura de PBs
pb1 = digitalRead(32);
pb2 = digitalRead(33);
pb3 = digitalRead(25);
//Funcionamiento
//Encendido de LED rojo
if(!pb1)
{
pb1_prev = 1;
}
if(pb1_prev && pb1)
{
if(!LEDr)
{
LEDr = 1;
}
else{
LEDr = !LEDr;
}
digitalWrite(5, LEDr);
pb1_prev = 0;
}
//Encendido de LED azul
if(!pb2)
{
pb2_prev = 1;
}
if(pb2_prev && pb2)
{
if(!LEDa)
{
LEDa = 1;
}
else{
LEDa = !LEDa;
}
digitalWrite(18, LEDa);
pb2_prev = 0;
}
//Encendido de LED verde
if(!pb3)
{
pb3_prev = 1;
}
if(pb3_prev && pb3)
{
if(!LEDv)
{
LEDv = 1;
}
else{
LEDv = !LEDv;
}
digitalWrite(19, LEDv);
pb3_prev = 0;
}
//Encendido de LED amarillo
analogWrite(21, vpot1);
//Encendido de LED celeste
analogWrite(22, vpot2);
delay(10); // this speeds up the simulation
// Envío de datos a Adafruit
if(LEDr != oldledr){
ALEDr->save(LEDr);
}
if(LEDa != oldleda){
ALEDa->save(LEDa);
}
if(LEDv != oldledv){
ALEDv->save(LEDv);
}
if(vpot1 != oldbla){
Abla->save(vpot1);
}
if(vpot2 != oldblc){
Ablc->save(vpot2);
}
// Guardar valores
oldledr = LEDr;
oldleda = LEDa;
oldledv = LEDv;
oldbla = vpot1;
oldblc = vpot2;
delay(3000);
}
esp:VIN
esp:GND.2
esp:D13
esp:D12
esp:D14
esp:D27
esp:D26
esp:D25
esp:D33
esp:D32
esp:D35
esp:D34
esp:VN
esp:VP
esp:EN
esp:3V3
esp:GND.1
esp:D15
esp:D2
esp:D4
esp:RX2
esp:TX2
esp:D5
esp:D18
esp:D19
esp:D21
esp:RX0
esp:TX0
esp:D22
esp:D23
led1:A
led1:C
led2:A
led2:C
led3:A
led3:C
led4:A
led4:C
led5:A
led5:C
r1:1
r1:2
r2:1
r2:2
r3:1
r3:2
r4:1
r4:2
r5:1
r5:2
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r
btn2:1.l
btn2:2.l
btn2:1.r
btn2:2.r
btn3:1.l
btn3:2.l
btn3:1.r
btn3:2.r
pot1:GND
pot1:SIG
pot1:VCC
pot2:GND
pot2:SIG
pot2:VCC