#include <WiFi.h>
#include "config.h"
#define LED1 12
#define LED2 13
#define LED3 14
#define LED4 25
#define LED5 26
#define PUSH1 4
#define PUSH2 16
#define PUSH3 17
#define POT1 34
#define POT2 35
int selector = 0, tiempo = 0;
bool pb1, pb2, pb3, pb1_prev, pb2_prev, pb3_prev;
bool l1, l2, l3, flag = 0;
int P1 = 0, P2 = 0;
byte LEDr = 0, LEDr2 = 0, LEDr3 = 0;
AdafruitIO_Feed *pb1_l5 = io.feed("pb1-l5");
AdafruitIO_Feed *pb2_l5 = io.feed("pb2-l5");
AdafruitIO_Feed *pb3_l5 = io.feed("pb3-l5");
AdafruitIO_Feed *pot1_l5 = io.feed("pot1-l5");
AdafruitIO_Feed *pot2_l5 = io.feed("pot2-l5");
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
while(! Serial);
Serial.print("Connecting to WiFi");
WiFi.begin("Wokwi-GUEST", "", 6);
while (WiFi.status() != WL_CONNECTED) {
delay(100);
Serial.print(".");
}
Serial.println(" Connected!");
Serial.print("Connecting to Adafruit IO");
// connect to io.adafruit.com
io.connect();
// wait for a connection
while(io.status() < AIO_CONNECTED) {
Serial.print(".");
delay(500);
}
// we are connected
Serial.println();
Serial.println(io.statusText());
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(PUSH1, INPUT_PULLUP);
pinMode(PUSH2, INPUT_PULLUP);
pinMode(PUSH3, INPUT_PULLUP);
pinMode(POT1, INPUT);
pinMode(POT2, INPUT);
}
void loop() {
// put your main code here, to run repeatedly:
// EJERCICIO 1 ------------------------------------------------------------------
io.run();
if(!flag){
tiempo = millis() + 11000;
flag = 1;
}
pb1 = digitalRead(PUSH1);
if(!pb1)
pb1_prev = true;
if(pb1_prev && pb1){
l1 = !l1;
pb1_prev = false;
}
digitalWrite(LED1, l1);
pb2 = digitalRead(PUSH2);
if(!pb2)
pb2_prev = true;
if(pb2_prev && pb2){
l2 = !l2;
pb2_prev = false;
}
digitalWrite(LED2, l2);
pb3 = digitalRead(PUSH3);
if(!pb3)
pb3_prev = true;
if(pb3_prev && pb3){
l3 = !l3;
pb3_prev = false;
}
digitalWrite(LED3, l3);
P1 = analogRead(POT1);
P2 = analogRead(POT2);
P1 = map(P1, 0, 4095, 0, 255);
P2 = map(P2, 0, 4095, 0, 255);
analogWrite(LED4, P1);
analogWrite(LED5, P2);
if(tiempo < millis()){
flag = 0;
pb1_l5->save(l1);
pb2_l5->save(l2);
pb3_l5->save(l3);
pot1_l5->save(P1);
pot2_l5->save(P2);
}
// EJERCICIO 02 ----------------------------------------------------------------
/*if (Serial.available()){
byte lec = Serial.read();
switch(lec){
case '1':
LEDr = !LEDr;
break;
case '2':
LEDr2 = !LEDr2;
break;
case '3':
LEDr3 = !LEDr3;
break;
}
}
digitalWrite(LED1, LEDr);
digitalWrite(LED2, LEDr2);
digitalWrite(LED3, LEDr3);*/
delay(10); // this speeds up the simulation
}