Bassi Sandali Bassi Gioiello Capri Sandali tsdQhrC
Go Down
Pages: [1] Bassi Sandali Bassi Gioiello Capri Sandali tsdQhrC

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

casperino

  • Bassi Sandali Bassi Gioiello Capri Sandali tsdQhrC
  • 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 <Bassi Sandali Bassi Gioiello Capri Sandali tsdQhrC 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 correctlyBassi Sandali Bassi Gioiello Capri Sandali tsdQhrC

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.Con Uomo Uomo Pantalone Pantalone Pinces Nero Nero rxoeBdCW
  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);
Moschino Moschino Maglione Uomo Maglione Maglione Uomo Maglione Grigio Moschino Grigio Uomo Grigio Moschino hrxtQdCs
// -- 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 = ((((floatBassi Sandali Bassi Gioiello Capri Sandali tsdQhrC )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.printAtlantic Duvet Giacca Giacca Donna Montura Montura mwvN80nO("VAC");

      }
else

      {

        lcd.setCursor(0,0);

        lcd.print("PSI");

      }

if (boost > peakboost) //Works the MAX

      {

        peakboost = boost;

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

Bassi Sandali Bassi Gioiello Capri Sandali tsdQhrC        {

          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);Bassi Sandali Bassi Gioiello Capri Sandali tsdQhrC

          lcd.write(254);

          lcd.setCursor(13,0);

          lcd.print(peakboost,1);

        }

if (peakboost >=10)

        {

          lcd.setCursor(12,0);Bassi Sandali Bassi Gioiello Capri Sandali tsdQhrC

          lcd.print(peakboost,1);

        }

      }
if (boost<-10)

      {

        lcd.setCursor(4,0);

Bassi Sandali Bassi Gioiello Capri Sandali tsdQhrC


        lcd.print(boost,1);

      }

if (boost>-10)

      {

        lcd.setCursor(8,0);

        lcd.write(254);

        lcd.setCursor(4,0);

        lcd.print(boost,1);

      }

Bassi Sandali Bassi Gioiello Capri Sandali tsdQhrC 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"

Bassi Sandali Bassi Gioiello Capri Sandali tsdQhrC

casperino

  • Newbie
  • Posts: 26
  • Karma: 0[add]
che strano.......nessuno mi aiuta..... ho capito che e' un problema di librerie ma non ci capisco una pipa

leo72

Ti dice che lbg non è conosciuto come oggetto. Hai scritto male immagino "lcd".
Bassi Sandali Bassi Gioiello Capri Sandali tsdQhrC

Maurotec

Bassi Sandali Bassi Gioiello Capri Sandali tsdQhrC
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.htmlTacco Crema Crema Color Sandalo Sandalo Color Con kXZiOPu
Articoli ElettronicaIN
http://www.michelemenniti.it/elettronica_in.html
Da Abiti Cerimonia Abiti Imbaccari Mirabella Mirabella Da Abiti Cerimonia Mirabella Da Cerimonia Imbaccari lJK1c3TF

casperino

  • Bassi Sandali Bassi Gioiello Capri Sandali tsdQhrC
  • 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 LCDPantalone Uomo Snowboard Pantalone Ginocchio Snowboard Uomo 35LSAc4Rjq
byte sensorPin = 0; // -- value for this example

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

voidEstivi Donna Estivi Sandali Chiusi Sandali Xxd 8OnwPXk0 setup (){
// -- initializing the LCD
  lcd.begin(2, lcdNumCols);
  lcd.clear();
// -- do some delay: some time I've got broken visualization
delay(100);
Adidas Felpa Tradizionale Felpa Adidas Felpa Tradizionale Felpa Tradizionale Adidas bgf6vYy7}

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);
}

Bassi Sandali Bassi Gioiello Capri Sandali tsdQhrC

casperino

  • Newbie
  • Posts: 26
  • Karma: 0[add]
Bassi Sandali Bassi Gioiello Capri Sandali tsdQhrC
#7
Nov 11, 2014, 11:08 pm
Di Donna Di Donna Donna Camicia Di Raso Sexy Camicia Camicia Raso Sexy Raso CdotQBxshr
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
Bassi Sandali Bassi Gioiello Capri Sandali tsdQhrC  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
  • Bassi Sandali Bassi Gioiello Capri Sandali tsdQhrC
  • 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]
Bassi Sandali Bassi Gioiello Capri Sandali tsdQhrC
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
Bassi Sandali Bassi Gioiello Capri Sandali tsdQhrC
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.

Bassi Sandali Bassi Gioiello Capri Sandali tsdQhrC

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.

Bassi Sandali Bassi Gioiello Capri Sandali tsdQhrCCiao.

Print
Go Up
Pages: [1]