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 . - [b]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 16x2 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: 118

Responder esta

Respostas a este tópico

Aparentemente sua postem está incompleta, Euder.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço