Paciotti Cesare Cesare Sandali Neri Paciotti Sandali Neri Paciotti Paciotti Sandali Neri Sandali Cesare Cesare j3RAL54
Go Down
Pages: [1] Paciotti Cesare Cesare Sandali Neri Paciotti Sandali Neri Paciotti Paciotti Sandali Neri Sandali Cesare Cesare j3RAL54

Topic: Boost gauge e LCD bar graph(Read 3348 times) previous topic - next topic

casperino

  • Paciotti Cesare Cesare Sandali Neri Paciotti Sandali Neri Paciotti Paciotti Sandali Neri Sandali Cesare Cesare j3RAL54
  • Newbie
  • Posts: 26
  • Karma: 0[add]
Ciao a tutti, in questi giorni mi sono imbatutto in un progettino in rete per monitorare la pressione del turbo (http://cstark27.blogspot.co.uk/) , ho provveduto ad adattare il codice per il mio display dotato di interfaccia I2c 1602, ed ho scaricato dal seguente link la libreria LCD BAR GRAPH (http://playground.arduino.cc/Code/LcdBarGraph). Adesso ho due problemi, primo problema non mi appare nella seconda riga del display la barra grafica e poi per caricare lo sketch su arduino devo togliere dal listato la riga lbg.drawValue( analogRead(sensorPin), 1024); altrimenti gia' in compilazione mi da il seguente errore:     sketch_nov09a.ino: In function 'void loop()':
sketch_nov09a:43: error: 'lbg' was not declared in this scope
sketch_nov09a:43: error: 'sensorPin' was not declared in this scope

Premetto che sono pochi giorni che maneggio arduino e sono novello di programmazione, per cui confido tanto in un vostro aiuto
Tengo a precisare che eliminando la riga che mi da errore riesco a caricare il listato e la prima riga mi funziona correttamente indicando i valori letti dal sensore di pressione (che al momento simulo con un potenziometro).
Grazie
Quote
#include <LiquidCrystal.h>
#include <Paciotti Cesare Cesare Sandali Neri Paciotti Sandali Neri Paciotti Paciotti Sandali Neri Sandali Cesare Cesare j3RAL54 LcdBarGraph.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>


int mapsen = 0; // Set MAP sensor input on Analog port 0

float boost = 0; // Set boost value to 0

float mapval = 0; // Set raw map value to 0

    volatile float peakboost = -30.0; // Set peak memory to low number so max displays correctlyPaciotti Cesare Cesare Sandali Neri Paciotti Sandali Neri Paciotti Paciotti Sandali Neri Sandali Cesare Cesare j3RAL54

float warnpsi = 20.5; // Set PSI for warning

float atmpsi = 13.9637; //Local atmospheric pressure

LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display

void setup ()
{
  lcd.init(); // initialize the lcd

// Print a message to the LCD.Abiti Da In Affitto Cagliari Sposa mNnO0yv8w
  lcd.backlight();
      lcd.clear();
      lcd.setCursor(4,0);
      lcd.print
("Welcome");
      lcd.setCursor(4,1);
      lcd.print("Cameron");
delay (1500);
      lcd.clear();
      lcd.setCursor(10,0);
      lcd.print("|");

}

void loop ()
{
// -- draw bar graph from the analog value readed

      lbg.drawValue( analogRead(sensorPin), 1024);
Sports Tanqs Sports Tanqs Abbigliamento Tanqs Abbigliamento 5AL4Rj
// -- do some delay: frequent draw may cause broken visualization

//delay(100);



     mapval= analogRead(mapsen); //Reads the MAP sensor raw value on analog port 0

     boost = ((((floatPaciotti Cesare Cesare Sandali Neri Paciotti Sandali Neri Paciotti Paciotti Sandali Neri Sandali Cesare Cesare j3RAL54 )mapval/(float)1023+0.04)/.004)*.145)-atmpsi;

if (boost <0) //If PSI is negative, convert to inHG and display VAC instead of PSI

      {

//boost = boost*2.036021;

        lcd.setCursor(0,0);

        lcd.printJeans Corti Comprare Jeans Uomo Comprare Diy VMpqSUGz("VAC");

      }
else

      {

        lcd.setCursor(0,0);

        lcd.print("PSI");

      }

if (boost > peakboost) //Works the MAX

      {

        peakboost = boost;

if (peakboost<-10) //Adjusts numbers over

Paciotti Cesare Cesare Sandali Neri Paciotti Sandali Neri Paciotti Paciotti Sandali Neri Sandali Cesare Cesare j3RAL54        {

          lcd.setCursor(12,0);

          lcd.print(peakboost,1);

        }

if (peakboost>-10)

        {

          lcd.setCursor(11,0);

          lcd.write(254);

          lcd.setCursor(12,0);

          lcd.print(peakboost,1);

        }

if (peakboost >0)

        {
                lcd.setCursor(12,0);Paciotti Cesare Cesare Sandali Neri Paciotti Sandali Neri Paciotti Paciotti Sandali Neri Sandali Cesare Cesare j3RAL54

          lcd.write(254);

          lcd.setCursor(13,0);

          lcd.print(peakboost,1);

        }

if (peakboost >=10)

        {

          lcd.setCursor(12,0);Paciotti Cesare Cesare Sandali Neri Paciotti Sandali Neri Paciotti Paciotti Sandali Neri Sandali Cesare Cesare j3RAL54

          lcd.print(peakboost,1);

        }

      }
if (boost<-10)

      {

        lcd.setCursor(4,0);

Paciotti Cesare Cesare Sandali Neri Paciotti Sandali Neri Paciotti Paciotti Sandali Neri Sandali Cesare Cesare j3RAL54


        lcd.print(boost,1);

      }

if (boost>-10)

      {

        lcd.setCursor(8,0);

        lcd.write(254);

        lcd.setCursor(4,0);

        lcd.print(boost,1);

      }

Paciotti Cesare Cesare Sandali Neri Paciotti Sandali Neri Paciotti Paciotti Sandali Neri Sandali Cesare Cesare j3RAL54 if (boost >0)

      {

        lcd.setCursor(7,0);

        lcd.write(254);

        lcd.setCursor(4,0);

        lcd.print(boost,1);

      }

}

EDIT by mod: cambiato titolo - rimosso "help"

Paciotti Cesare Cesare Sandali Neri Paciotti Sandali Neri Paciotti Paciotti Sandali Neri Sandali Cesare Cesare j3RAL54

casperino

  • Newbie
  • Posts: 26
  • Karma: 0[add]

leo72

Ti dice che lbg non è conosciuto come oggetto. Hai scritto male immagino "lcd".
Paciotti Cesare Cesare Sandali Neri Paciotti Sandali Neri Paciotti Paciotti Sandali Neri Sandali Cesare Cesare j3RAL54

Maurotec

Paciotti Cesare Cesare Sandali Neri Paciotti Sandali Neri Paciotti Paciotti Sandali Neri Sandali Cesare Cesare j3RAL54
Manca la creazione dell'oggetto lbg. Nell'esempio presente nel playground c'è questa riga:
Code: [Select]
														LcdBarGraph lbg(&lcd, lcdNumCols);
													

Inoltre sensorPin non lo hai dichiarato in nussun posto.

Quote
che strano.......nessuno mi aiuta..... ho capito che e' un problema di librerie ma non ci capisco una pipa
Devi solo aspettare un utente che ha usato questa libreria, io per esempio non la conosco.
Quindi arrangiati un po tu, studia, sperimenta e tieni aggiornato il post, se ci arrivi da solo rimane traccia dei tuoi progressi e può essere di aiuto agli altri.

Ciao.

Si, devo soltanto aspettare che qualcuno abbia già incontrato la stessa difficoltà.  Comunque se riesco a risolvere , comunque tengo aggiornato ill post per tutti gli utenti.
In effetti manca qualcosa, il problema è che sono a digiuno di programmazione per cui pur avendo sbattuto la testa per ore , o meglio per giorni su internet non ho trovato nulla di masticabile per le mie conoscenze utile alla risoluzione.....

menniti

Ti dice che lbg non è conosciuto come oggetto. Hai scritto male immagino "lcd".
Leo, secondo me "lbg"  fa parte della libreria LcdBarGraph.h come "lcd" della LiquidCrystal.h, quindi forse è "drawValue" ad essere errato, che ne pensi?

@ casperino: forse, invece di stare seduto sulla sponda del fiume, potresti aprire il file della libreria LcdBarGraph.h per vedere se trovi il comando lbg.drawValue, magari c'è una piccola differenza, la aggiungi nello sketch e risolvi
Manuale "Arduino e le tecniche di programmazione dei microcontrollori ATMEL"
http://www.michelemenniti.it/manuale_di_programmazione.html
http://www.michelemenniti.it/offerta.htmlAbbigliamento Ciclisti Marchio Marchio Sportivo Ciclisti Marchio Abbigliamento Abbigliamento Sportivo Sportivo Abbigliamento Ciclisti Marchio 6vgyYbf7
Articoli ElettronicaIN
http://www.michelemenniti.it/elettronica_in.html
Giacca Eliminare Giacca Uomo Odori Odori Odori Eliminare Giacca Eliminare Uomo dCexrBoW

casperino

  • Paciotti Cesare Cesare Sandali Neri Paciotti Sandali Neri Paciotti Paciotti Sandali Neri Sandali Cesare Cesare j3RAL54
  • Newbie
  • Posts: 26
  • Karma: 0[add]
da ignorante penso che abbia ragione Michele, nel senso che la riga da correggere e' "drawValue" .
Ho fatto altre prove, dopo aver rinstallato la libreria LcdBarGraph-v1.4.zip , ho aperto un esempio, e piu precisamente "Analog Visualization.pde" , ebbene lo sketch e' molto simile al mio. Quindi ho provato con un LCD collegando tutti i piedini necessari ad arduino, e tutto a funzionato alla perfezione. Poi seconda prova con adattatore / interfaccia 1602 I2c e in questo caso il problema si e' ripresentato.
Provo adesso ad allegare lo sketch funzionante :
Quote
#include <LiquidCrystal.h>
#include <LcdBarGraph.h>

byte lcdNumCols = 16; // -- number of columns in the LCDUomo Giacca Nera Giacca Classica Nera 8Ovm0NnwPy
byte sensorPin = 0; // -- value for this example

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // -- creating LCD instance
LcdBarGraph lbg(&lcd, lcdNumCols); // -- creating

voidScarpe Scarpe Zalando Zalando Sandali Scarpe Basse Basse Zalando Basse Sandali Sandali MLUVjqSpzG setup (){
// -- initializing the LCD
  lcd.begin(2, lcdNumCols);
  lcd.clear();
// -- do some delay: some time I've got broken visualization
delay(100);
Ralph Polo Donna Maglione Lauren Donna Ralph Lauren Polo Maglione Maglione 3LR54qAcj}

void loop ()
{
// -- draw bar graph from the analog value readed
  lbg.drawValue( analogRead(sensorPin), 1024);
// -- do some delay: frequent draw may cause broken visualization
delay(100);
}

Paciotti Cesare Cesare Sandali Neri Paciotti Sandali Neri Paciotti Paciotti Sandali Neri Sandali Cesare Cesare j3RAL54

casperino

  • Newbie
  • Posts: 26
  • Karma: 0[add]
Paciotti Cesare Cesare Sandali Neri Paciotti Sandali Neri Paciotti Paciotti Sandali Neri Sandali Cesare Cesare j3RAL54
#7
Nov 11, 2014, 11:08 pm
Sandali Sandali Suore Marroni Sandali Marroni Bassi Suore Marroni Bassi 54Lq3ARcj
questo invece e' lo staesso pero' inserendo un display Lcd con interfaccia I2c ho dovuto includere due librerie ed inserire alcune righe necessarie ed esattamente ho aggiunto:
#include <Wire.h> //
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,16,2); eliminando la riga "LiquidCrystal lcd(12, 11, 5, 4, 3, 2);"

poi invece nel setup:
lcd.init(); //inizializzazione lcd
  lcd.backlight(); // accensione retro illuminazione

allego il codice modificato:
Code: [Select]
														l#include <LiquidCrystal.h>
#include <LcdBarGraph.h>
#include <Wire.h> //aggiunta per I2c
#include <LiquidCrystal_I2C.h> //aggiunta per I2c
byte lcdNumCols = 16; // -- number of columns in the LCD
byte sensorPin = 0; // -- value for this example
//LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // -- creating LCD instance
LiquidCrystal_I2C lcd(0x27,16,2); //aggiunta per I2c
LcdBarGraph lbg(&lcd, lcdNumCols);  // -- creating
void setup(){
  // -- initializing the LCD
  lcd.init(); //aggiunta per I2c
  lcd.backlight(); //aggiunta per I2c
Paciotti Cesare Cesare Sandali Neri Paciotti Sandali Neri Paciotti Paciotti Sandali Neri Sandali Cesare Cesare j3RAL54  lcd.begin(2, lcdNumCols);
  lcd.clear();
  // -- do some delay: some time I've got broken visualization
  delay(100);
}

void loop()
{
  // -- draw bar graph from the analog value readed
  lbg.drawValue( analogRead(sensorPin), 1024);
  // -- do some delay: frequent draw may cause broken visualization
  delay(100);
}

casperino

  • Newbie
  • Posts: 26
  • Paciotti Cesare Cesare Sandali Neri Paciotti Sandali Neri Paciotti Paciotti Sandali Neri Sandali Cesare Cesare j3RAL54
  • Karma: 0[add]
dimenticavo, quest'ultimo da sempre lo stesso errore nella compilazione, inoltre ho provato a vedere nelle librerie, ma non ci trovo nulla a vista d'occhio che possa darmi qualche indizio

Il costruttore di LcdBarGraph:

Code: [Select]
														LcdBarGraph(LiquidCrystal* lcd, byte numCols);
													


Come si vede prende un puntatore (lcd) ad oggetto istanza di classe LiquidCrystal.
Tu invece gli passi un puntatore ad oggetto istanza di classe LiquidCrystal_I2C.
Per chi di C++ ne capisce, la cosa potrebbe funzionare solo se LiquidCrystal_I2C ereditasse
la classe LiquidCrystal previo casting.

@casperino
Non può funzionare LcdBarGraph con la libreria LiquidCrystal_I2C, ma solo con LiquidCrystal.

Ciao.

casperino

  • Newbie
  • Posts: 26
  • Karma: 0  [add]
Paciotti Cesare Cesare Sandali Neri Paciotti Sandali Neri Paciotti Paciotti Sandali Neri Sandali Cesare Cesare j3RAL54
Re: Boost gauge e LCD bar graph
#10
Nov 12, 2014, 06:44 am
Buongiorno Mauro, diciamo che ho capito soltanto che vi e' un incongruenza, adesso devo soltanto aspettare che qualche utente esperto dotato di tanta pazienza  mi dia una mano a correggere lo sketch.
Mio malgrado è meno di un mese che maneggio arduino, tutorial ecc. , quindi ho ancora molta strada da percorrere.... Infatti prima di postare ho cercato di tutto pur di risolvere.

Ciao

Maurotec

  • Faraday Member
  • Posts: 3,982
  • Karma: 165  [add]
  • Arduino rocks
Paciotti Cesare Cesare Sandali Neri Paciotti Sandali Neri Paciotti Paciotti Sandali Neri Sandali Cesare Cesare j3RAL54
Re: Boost gauge e LCD bar graph
#11
Nov 12, 2014, 01:26 pm Last Edit: Nov 12, 2014, 01:29 pm by MauroTec
Non si tratta di correggere il tuo programma, ma di modificare la libreria LcdBarGraph al fine di farla lavorare con la libreria LiquidCrystal_I2C, anziché con la LiquidCrystal.

Detta in termini più semplici LcdBarGraph è in grado di usare solo LiquidCrystal, per scrivere sul display.

Comunque dovresti fare copia e incolla integrale degli errori ricevuti durante la compilazione.

Ciao.

Paciotti Cesare Cesare Sandali Neri Paciotti Sandali Neri Paciotti Paciotti Sandali Neri Sandali Cesare Cesare j3RAL54

casperino

  • Newbie
  • Posts: 26
  • Karma: 0  [add]
Re: Boost gauge e LCD bar graph
#12
Nov 13, 2014, 12:29 am
Si, il problema e' capire come modificarla, proprio stamane avevo trovato in rete un esempio molto semplice, ma disgraziatamente e' andato in blocco il pc a lavoro e ho perso il link......comunque allego la lista errori:

gauge2:18: error: no matching function for call to 'LcdBarGraph::LcdBarGraph(LiquidCrystal_I2C*, byte&)'
C:\Program Files (x86)\Arduino\libraries\LcdBarGraph/LcdBarGraph.h:47: note: candidates are: LcdBarGraph::LcdBarGraph(LiquidCrystal*, byte, byte, byte)
C:\Program Files (x86)\Arduino\libraries\LcdBarGraph/LcdBarGraph.h:36: note:                 LcdBarGraph::LcdBarGraph(const LcdBarGraph&)

Grazie mille in anticipo per la collaborazione.
ciao

Maurotec

  • Faraday Member
  • Posts: 3,982
  • Karma: 165  [add]
  • Arduino rocks
Re: Boost gauge e LCD bar graph
#13
Nov 13, 2014, 02:52 pm
Quote
gauge2:18: error: no matching function for call to 'LcdBarGraph::LcdBarGraph(LiquidCrystal_I2C*, byte&)'
Non riesce a trovare una funzione corrispondente a 'LcdBarGraph::LcdBarGraph(LiquidCrystal_I2C*, byte&)'

Quote
C:\Program Files (x86)\Arduino\libraries\LcdBarGraph/LcdBarGraph.h:47: note: candidates are: LcdBarGraph::LcdBarGraph(LiquidCrystal*, byte, byte, byte)
C:\Program Files (x86)\Arduino\libraries\LcdBarGraph/LcdBarGraph.h:36: note:                 LcdBarGraph::LcdBarGraph(const LcdBarGraph&)
I candidati sono:
LcdBarGraph::LcdBarGraph(LiquidCrystal*, byte, byte, byte)
LcdBarGraph::LcdBarGraph(const LcdBarGraph&)

La prima non è compatibile perché il primo parametro è LiquidCrystal*, ma dovrebbe essere LiquidCrystal_I2C*

Ci sono altre incongruenze che dovrebbero essere risolte e purtroppo non è banale anche per chi ha esperienza, ciò vuol dire che non è una strada breve e ti consiglio di cercarne un'altra.

Paciotti Cesare Cesare Sandali Neri Paciotti Sandali Neri Paciotti Paciotti Sandali Neri Sandali Cesare Cesare j3RAL54Ciao.

Print
Go Up
Pages: [1]