#define relayPin 2 /**el compilador en cada parte que llame relayPin
remplaza por 2, no ocupa memoria **/
//const int relayPin 2 ← esto lo guarda en memoria, y puede variar su valor
#define potePin 32 //potenciometro
volatile int estadoPote;
void setup() {
Serial.begin(115200);//velocidad en baudios
pinMode(relayPin, OUTPUT); //UNA VEZ DEFINIDO UN PIN DE SALIDA, DEFINO UN PIN A TIERRA
digitalWrite(relayPin, LOW);//LOW|HIGH indica el valor del voltaje, min o max
pinMode(potePin, INPUT);
}
// void loop() {
// digitalWrite(relayPin, HIGH);
// delay(1000); //aplica un delay de 1 seg (el micro no hace nada en ese tiempo).
// digitalWrite(relayPin, LOW);
// delay(1000);
// }
void loop() {
//relayLoop();
relayPote();
}
void relayLoop(){
//static: me permite conservar el valor de la variable, es como si fuera variable global
static unsigned long previousMilis = millis(); //usigned(sin signo)
/** millis() devuelve el número de milisegundos que han pasado desde
que la placa Arduino comenzó a ejecutar el programa actual.
**/
if (millis()- previousMilis > 5000){
previousMilis = millis();
digitalWrite(relayPin, !digitalRead(relayPin));
Serial.println("Hola");
}
}
void relayPote() {
estadoPote=analogRead(potePin);
static unsigned long previousMilis = millis();
if (millis()- previousMilis > 2500){
previousMilis = millis() ;
digitalWrite(relayPin,analogRead(potePin) > 2000);
//El relay pasa a HIGH (se enciende el led) si el valor del potenciometro es mayor a 2000
Serial.print("Lectura de Potenciometro: ");
Serial.println(estadoPote);
Serial.print("Millis: ");
Serial.println(previousMilis);
}
}
// printf("Valor del sensor: %d %i \n", estadoPote, potePin);
// /n salto de línea
// %d o %i valores enteros con signo.
// %u valores enteros sin signo.
// %f valores de punto flotante.
// %s cadenas de caracteres.
// %c caracteres individuales.
// %x valores enteros en formato hexadecimal.
// %e valores de punto flotante en notación científica.