Olá Amigos.

Sou iniciante no Arduíno, estou encontrando dificuldade em saber qual melhor caminho para a se fazer logica, no qual seria:

1º Ler a corrente, de carga – Concluído

2º Se este valor estiver de acordo com a logica do( if) mandar um comando que neste caso é acender um led caso não . – Concluído

3º São feita três leituras de corrente diferente, e cada processo deve passar pela 1º ,2º e 3, leitura. A leitura só seguira a seguinte se estiver de acordo, caso não se deve interromper o processo, esse processo só voltará se fazer o reset. – Não Concluído

Segue abaixo o código ja feito.

#include <Wire.h>
#include <LiquidCrystal.h>

LiquidCrystal lcd(02,03,04,05,06,07);
// Criando um LCD de 16×2 no endereço 0x20

#include “EmonLib.h” //INCLUSÃO DE BIBLIOTECA
#define CURRENT_CAL 18.40 //VALOR DE CALIBRAÇÃO (DEVE SER AJUSTADO EM PARALELO COM UM MULTÍMETRO MEDINDO A CORRENTE DA CARGA)

volatile int numInterrupt = 0;
const int pinoSensor = A1; //PINO ANALÓGICO EM QUE O SENSOR ESTÁ CONECTADO
float ruido = 0.14; //RUÍDO PRODUZIDO NA SAÍDA DO SENSOR (DEVE SER AJUSTADO COM A CARGA DESLIGADA APÓS CARREGAMENTO DO CÓDIGO NO ARDUINO)
float vermelho = 10;
float amarelo = 11;
float verde = 12;

EnergyMonitor emon1; //CRIA UMA INSTÂNCIA

void setup(){

//DECLARANDO O COMANDO
pinMode(vermelho,OUTPUT);
pinMode(amarelo,OUTPUT);
pinMode(verde,OUTPUT);
pinMode(A1,INPUT);

//LED
Serial.begin(9600); //INICIALIZA A SERIAL
lcd.clear();
lcd.begin(16,2);
lcd.clear();
delay(3000);

emon1.current(pinoSensor, CURRENT_CAL); //PASSA PARA A FUNÇÃO OS PARÂMETROS (PINO ANALÓGIO / VALOR DE CALIBRAÇÃO)
}

void loop(){
//Primeiro laço

corrente:

emon1.calcVI(20,100); //FUNÇÃO DE CÁLCULO (20 SEMICICLOS / TEMPO LIMITE PARA FAZER A MEDIÇÃO)
double currentDraw = emon1.Irms; //VARIÁVEL RECEBE O VALOR DE CORRENTE RMS OBTIDO

//1º Passo.
delay(1000);

if (currentDraw <= 2.4) {
digitalWrite(vermelho, HIGH);
} else {
digitalWrite(vermelho, LOW);

}

//2º Passo.
passo2:

delay(200);
if (currentDraw == constrain(currentDraw, 2.42, 2.55)) {
digitalWrite(amarelo, HIGH);
} else {
digitalWrite(amarelo, LOW);

}

//3º Passo.
passo3:
delay(200);
if (currentDraw >= 2.61) {
digitalWrite(verde, HIGH);
} else {
digitalWrite(verde, LOW);

}

lcd.setCursor(4,0);
lcd.print(“ACTION!”);;
lcd.setCursor(0,1);
lcd.print(“Corrente: “);
lcd.print(currentDraw);
lcd.print(” A “);

Serial.print(“Corrente: “);
Serial.print(currentDraw );
Serial.println(” A “); //IMPRIME O TEXTO NA SERIAL

}

Exibições: 35

Responder esta

Respostas a este tópico

Bom dia Sr. EAC,

sugiro que vc apague o código postado na área de texto so tópico, em seguida :

e anexe um arquivo com seu código.

RV

RSS

Destaques

Registre-se no
Lab de Garagem
Clicando aqui

Convide um
amigo para fazer
parte

curso gratis de arduino

© 2019   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço