Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define sensorPin A0 // Port para leitura analogica
- float potencia = 100; // Valor da potencia calculada
- float accPotencia = 0; // Valor de potencia acumulada
- unsigned long newMillis; // Calculo de intervalo
- unsigned long intervalo = 100; // Intervalo de acumulo em milissegundos
- unsigned long tempo = 3600000; // 1 hora em milisegundos
- unsigned long imprime = 0; // Tempo para impressao
- unsigned long contador = 0; // Controle da unidade de tempo
- //-------------------------------------------
- void setup() {
- Serial.begin(115200); // Inicializa Serial
- pinMode(sensorPin, INPUT); // Port ADC como entrada
- newMillis = millis(); // Inicializa intervalo
- imprime = millis(); // Inicializa controle impressao
- }
- //-------------------------------------------
- void loop()
- {
- potencia = analogRead(sensorPin);
- //potencia = 100; // Teste
- if (millis() - imprime > 1000) // Imprime a cada segundo
- {
- imprime = millis();
- Serial.print(" Consumo instataneo : ");
- Serial.print(potencia);
- Serial.print("W ");
- Serial.print(" Consumo hora : ");
- Serial.print((accPotencia * tempo) / (contador));
- Serial.println("W ");
- }
- // Esta rotina abaixo vai acumualr a potencia a cada intervalo definido
- if (millis() - newMillis >= intervalo) // Se passou o intervalo
- {
- newMillis = millis(); // Reinicializa intervalo
- accPotencia = accPotencia + potencia / tempo; // Acumula potencia
- contador ++; // incrementa controle de calculo
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement