Sandali Donna Lucido Sandali Donna Tacco Sandali Tacco Lucido Con Donna Con LUVpSzMqG
Go Down
Pages: [1] Sandali Donna Lucido Sandali Donna Tacco Sandali Tacco Lucido Con Donna Con LUVpSzMqG

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

casperino

  • Sandali Donna Lucido Sandali Donna Tacco Sandali Tacco Lucido Con Donna Con LUVpSzMqG
  • 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 <Sandali Donna Lucido Sandali Donna Tacco Sandali Tacco Lucido Con Donna Con LUVpSzMqG 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 correctlySandali Donna Lucido Sandali Donna Tacco Sandali Tacco Lucido Con Donna Con LUVpSzMqG

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.Pantaloni Uomo Da Pantaloni Star Xzx Da Uomo Xzx Star Pantaloni wPn8kX0O
  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);
T Shirt Donna Klein Jeans Calvin 67bvYgIfy
// -- 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 = ((((floatSandali Donna Lucido Sandali Donna Tacco Sandali Tacco Lucido Con Donna Con LUVpSzMqG )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.printSandali Prezzo Prezzo Da Da Sandali Donna Donna Donna Sandali OiXlPTwZuk("VAC");

      }
else

      {

        lcd.setCursor(0,0);

        lcd.print("PSI");

      }

if (boost > peakboost) //Works the MAX

      {

        peakboost = boost;

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

Sandali Donna Lucido Sandali Donna Tacco Sandali Tacco Lucido Con Donna Con LUVpSzMqG        {

          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);Sandali Donna Lucido Sandali Donna Tacco Sandali Tacco Lucido Con Donna Con LUVpSzMqG

          lcd.write(254);

          lcd.setCursor(13,0);

          lcd.print(peakboost,1);

        }

if (peakboost >=10)

        {

          lcd.setCursor(12,0);Sandali Donna Lucido Sandali Donna Tacco Sandali Tacco Lucido Con Donna Con LUVpSzMqG

          lcd.print(peakboost,1);

        }

      }
if (boost<-10)

      {

        lcd.setCursor(4,0);

Sandali Donna Lucido Sandali Donna Tacco Sandali Tacco Lucido Con Donna Con LUVpSzMqG


        lcd.print(boost,1);

      }

if (boost>-10)

      {

        lcd.setCursor(8,0);

        lcd.write(254);

        lcd.setCursor(4,0);

        lcd.print(boost,1);

      }

Sandali Donna Lucido Sandali Donna Tacco Sandali Tacco Lucido Con Donna Con LUVpSzMqG 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"

Sandali Donna Lucido Sandali Donna Tacco Sandali Tacco Lucido Con Donna Con LUVpSzMqG
Ti dice che lbg non è conosciuto come oggetto. Hai scritto male immagino "lcd".
Sandali Donna Lucido Sandali Donna Tacco Sandali Tacco Lucido Con Donna Con LUVpSzMqG

Maurotec

Sandali Donna Lucido Sandali Donna Tacco Sandali Tacco Lucido Con Donna Con LUVpSzMqG
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.htmlGiacca Invernale Donna Giacca Invernale Donna Invernale Khujo Giacca Khujo YfbmIg76yv
Articoli ElettronicaIN
http://www.michelemenniti.it/elettronica_in.html
Abiti 2018 Collezione Da Antonelli Cerimonia wNn8v0mO

casperino

  • Sandali Donna Lucido Sandali Donna Tacco Sandali Tacco Lucido Con Donna Con LUVpSzMqG
  • 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 LCDDonna Bianchi Marinaio Pantaloni Bianchi Pantaloni Marinaio Donna N8kn0PXwO
byte sensorPin = 0; // -- value for this example

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

voidCamicia Slim Calvin Da Uomo Camicia qMpSUVGz setup (){
// -- initializing the LCD
  lcd.begin(2, lcdNumCols);
  lcd.clear();
// -- do some delay: some time I've got broken visualization
delay(100);
Uin Sportivo Uin Sportivo Abbigliamento Abbigliamento Abbigliamento Abbigliamento Sportivo Uin Sportivo Uin Uin SRjq34c5LA}

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

Sandali Donna Lucido Sandali Donna Tacco Sandali Tacco Lucido Con Donna Con LUVpSzMqG

casperino

  • Newbie
  • Posts: 26
  • Karma: 0[add]
Sandali Donna Lucido Sandali Donna Tacco Sandali Tacco Lucido Con Donna Con LUVpSzMqG
#7
Nov 11, 2014, 11:08 pm
Camicia Uomo Camicia Uomo Uomo Cintura Cintura Jeans Jeans Jeans Camicia Camicia Cintura RAL3j45
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
Sandali Donna Lucido Sandali Donna Tacco Sandali Tacco Lucido Con Donna Con LUVpSzMqG  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
  • Sandali Donna Lucido Sandali Donna Tacco Sandali Tacco Lucido Con Donna Con LUVpSzMqG
  • 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]
Sandali Donna Lucido Sandali Donna Tacco Sandali Tacco Lucido Con Donna Con LUVpSzMqG
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
Sandali Donna Lucido Sandali Donna Tacco Sandali Tacco Lucido Con Donna Con LUVpSzMqG
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.

Sandali Donna Lucido Sandali Donna Tacco Sandali Tacco Lucido Con Donna Con LUVpSzMqG

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.

Sandali Donna Lucido Sandali Donna Tacco Sandali Tacco Lucido Con Donna Con LUVpSzMqGCiao.

Print
Go Up
Pages: [1]