Go Down

Topic: Errore solo sul mio IDE? (LCD) (Read 150 times) previous topic - next topic

calandra

Esattamente QUI mi da errore >:( ... Se qualcuno puo' provare..Grazie



LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // Set the LCD I2C address

                                                     ^

Uso la libreria Wire alla versione 1.0 nella cartella: C:\Program Files (x86)\Arduino\libraries\Wire
Uso la libreria LiquidCrystal_I2C alla versione 1.1.2 nella cartella: C:\Program Files (x86)\Arduino\libraries\LiquidCrystal_I2C
Uso la libreria EmonLib-master alla versione 1.1.0 nella cartella: C:\Program Files (x86)\Arduino\libraries\EmonLib-master
exit status 1
'POSITIVE' was not declared in this scope

Code: [Select]
//Baseado no exemplo da biblioteca EmonLib
/*-importacao Necessaria*/
#include <Wire.h>
#include <LiquidCrystal_I2C.h>



//Carrega as bibliotecas
#include "EmonLib.h"

/*Declaracao de Constates e Objetos*/
// seta o Endereco do Display LCD  0x27
// Seta os pinos do I2C usado (padrao da biblioteca)
//                    addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // Set the LCD I2C address



EnergyMonitor emon;

//Tensao da rede AC 110 Volts e na verdade (127 volts)
int tensao = 127;
//desvio medio
double ruido =0.005;

//Pino do sensor
int sensor= 0;

double Irms =0;
double media =0;



void setup()   {
  Serial.begin(9600);  //Serial

// inicializa o lcd de 20 caracters e 4 linhas
lcd.begin(20,4); 
//lcd.begin(16,2);


  //Pino, calibracao - Corrente Constante= Ratio/BurdenR. = x.
  emon.current(sensor, 12);

  //descarta os 5 primeiros valores de leitura.
  //(costuma ter muito ruido)
  for(int index =0; index <5; index++){
    media =media+ emon.calcIrms(1480);
    delayMicroseconds(1);
    media =0;
}

// ------- Um breve blink de backlight (luz de fundo  -------------
    //liga
    lcd.backlight();
    delay(250);
    //desliga
    lcd.noBacklight();
    delay(250);
   
    //finaliza com a luz de fundo ligada
    lcd.backlight();
 
   
}


void loop() {
 
 
       Irms =0;
       media =0;

        //Calcula a media da corrente fazendo 10 amostragem
        for(int index =0; index <100; index++){
          media =media+ emon.calcIrms(1480);
          delayMicroseconds(1);
        }
        //ruido do sensor (desvio)
        Irms = media /100;
        Irms = Irms - ruido;

        //Trata possiveis desvios de ruido
        if(Irms < ruido || Irms < 0){
            Irms =0;
        }

 

        lcd.clear();
        //Reposiciona o cursor na linha 0 e coluna 0
        lcd.setCursor(0,0);
        //Escreve
       
        //Mostra o valor da corrente
        Serial.print("Corrente : ");
        // Irms
        Serial.print(Irms, 3);
        Serial.print(" A ");
        lcd.print("Corrente :");
        lcd.print(Irms, 3);
        lcd.print("A");
       
        //Pula para segunda linha na posicao 0
        lcd.setCursor(0,2);
       //Escreve
        //Calcula e mostra o valor da potencia
        Serial.print(" Potencia (Consumo) : ");
        Serial.print(Irms * tensao);
        Serial.println(" Watts ");
        lcd.print("Potencia (Consumo) : ");
        lcd.setCursor(0,3);
        lcd.print(Irms * tensao);
        lcd.print(" Watts ");
        //Aguarda 8 segundos para reiniciar o loop
        delay(2000);
       
       
 
}

gpb01

Vecchia versione d'esempio che usa cose che non si usano più con le nuove librerie e quindi ... ovviamnete ti da errore.

Un consiglio, elimina quella libreria ed utilizza quella che ti allego (in cui trovi anche gli esempi d'uso) che è sicuramente aggiornata ed è mantenuta da un untente del forum (Testato) :)

Guglielmo

Search is Your friend ... or I am Your enemy !

calandra


Ho provato a modificare l'algoritmo in mille modi,ma salta semprefuori errore, questa è una delle mie release, Saluti e karma

Code: [Select]
#include <PCF8574_HD44780_I2C.h>


#include <Wire.h>
#include <LiquidCrystal_I2C.h>
/*Declaracao de Constates e Objetos*/

// Address 0x27, 16 chars, 2 line display
PCF8574_HD44780_I2C lcd(0x27,16,2);
//Tensao da rede AC 110 Volts e na verdade (127 volts)
int tensao = 127;
int current= 0;
//desvio medio
double ruido =0.005;
//Pino do sensor
int sensor= 0;
double Irms =0;
double media =0;
void setup()   {
  Serial.begin(9600);  //Serial

// inicializa o lcd de 20 caracters e 4 linhas
lcd.begin(20,4); 
//lcd.begin(16,2);


  //Pino, calibracao - Corrente Constante= Ratio/BurdenR. = x.
  current(sensor, 12);

  //descarta os 5 primeiros valores de leitura.
  //(costuma ter muito ruido)
  for(int index =0; index <5; index++){
    media =media+ calcIrms(1480);
    delayMicroseconds(1);
    media =0;
}

// ------- Um breve blink de backlight (luz de fundo  -------------
    //liga
    lcd.backlight();
    delay(250);
    //desliga
    lcd.noBacklight();
    delay(250);
   
    //finaliza com a luz de fundo ligada
    lcd.backlight();
 
   
}


void loop() {
 
 
       Irms =0;
       media =0;

        //Calcula a media da corrente fazendo 10 amostragem
        for(int index =0; index <100; index++){
          media =media+ calcIrms(1480);
          delayMicroseconds(1);
        }
        //ruido do sensor (desvio)
        Irms = media /100;
        Irms = Irms - ruido;

        //Trata possiveis desvios de ruido
        if(Irms < ruido || Irms < 0){
            Irms =0;
        }

 

        lcd.clear();
        //Reposiciona o cursor na linha 0 e coluna 0
        lcd.setCursor(0,0);
        //Escreve
       
        //Mostra o valor da corrente
        Serial.print("Corrente : ");
        // Irms
        Serial.print(Irms, 3);
        Serial.print(" A ");
        lcd.print("Corrente :");
        lcd.print(Irms, 3);
        lcd.print("A");
       
        //Pula para segunda linha na posicao 0
        lcd.setCursor(0,2);
       //Escreve
        //Calcula e mostra o valor da potencia
        Serial.print(" Potencia (Consumo) : ");
        Serial.print(Irms * tensao);
        Serial.println(" Watts ");
        lcd.print("Potencia (Consumo) : ");
        lcd.setCursor(0,3);
        lcd.print(Irms * tensao);
        lcd.print(" Watts ");
        //Aguarda 8 segundos para reiniciar o loop
        delay(2000);
       
       
 
}

SukkoPera

Se proprio non vuoi modificare gli esempi, devi usare la libreria di F. Malpartida:

https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
"Code is read much more often than it is written, so plan accordingly. Design for readability."

Guida rapida a ESP8266: https://goo.gl/kzh62E

Go Up