Alarma con sensor

Hola buena tarde

Estoy trabajando con un sensor para detectar y calcular voltaje en AC desde Arduino, esa parte ya esta operando bien.

Me podrían ayudar por favor indicándome como puedo complementar el código para que encienda un led cuando detecte que han pasado 30 segundos detectando 120 Voltios.

Es decir, yo conecto a 120 VAC y comienzo a detectar el voltaje, deseo encender un led cuando pasen 30 segundos despues de activarse la lectura del voltaje, si dura menos de 30 Segundos no hace nada.

Adjunto el codigo que llevo hasta el momento.


#include "MCMVoltSense.h"             
#include <Wire.h> 

MCMmeter meter;                       

unsigned long tiempo=0;

void setup() {

  Serial.begin(9600);

  meter.VoltageStp(A0, 139.46, 1.7);  

}

void loop() {

  meter.analogVoltage(40,2000); 

  float Vrms = meter.Vrms;       

  Serial.print("Voltage Real: ");
  Serial.print(Vrms,2);
  Serial.println(" V");

}

Lo que veo es un código copiado de la librería.
Y lo que te piden parece una tarea escolar.
Lo que tienes que hacer es:

  1. consultar si la tensión actual es > que un valor
  2. Si es mayor tomar un dato de millis() que es un contador en milisegundos que se incrementa desde que se enciende el arduino.
  3. SI millis() - ese valor anterior es >= 30x1000 donde 30x1000 mseg son 30 segundos entonces enciendes el led que estará en algun pin de salida del arduino y si no, lo apagas.

Si no sabes que es millis() ve a Documentación, hay muy buenos tutoriales allí.

NOTA: acabo de editar porque en lugar de leerse 30 * 1000 se leía todo junto con itálica.
es

30*1000 milisegundos

Muchas gracias, indagare sobre el tema de millis.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.