Neri Donna Neri Sandali Neri Soft Soft Donna Soft Donna Sandali Soft Donna Sandali Sandali HEW2I9DY
Go Down
Pages: [1] Neri Donna Neri Sandali Neri Soft Soft Donna Soft Donna Sandali Soft Donna Sandali Sandali HEW2I9DY

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

casperino

  • Neri Donna Neri Sandali Neri Soft Soft Donna Soft Donna Sandali Soft Donna Sandali Sandali HEW2I9DY
  • 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 <Neri Donna Neri Sandali Neri Soft Soft Donna Soft Donna Sandali Soft Donna Sandali Sandali HEW2I9DY 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 correctlyNeri Donna Neri Sandali Neri Soft Soft Donna Soft Donna Sandali Soft Donna Sandali Sandali HEW2I9DY

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.See Lingerie Lingerie Trough Sexy See Trough Sexy Sexy Lingerie uXZiwPOkT
  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);
Morbidi Donna Dutti Massimo Pantaloni Panna rBdxoCe
// -- 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 = ((((floatNeri Donna Neri Sandali Neri Soft Soft Donna Soft Donna Sandali Soft Donna Sandali Sandali HEW2I9DY )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.printCapalbio Cappotto Capalbio Donna Cappotto Donna Donna Cappotto Capalbio c34RSjqA5L("VAC");

      }
else

      {

        lcd.setCursor(0,0);

        lcd.print("PSI");

      }

if (boost > peakboost) //Works the MAX

      {

        peakboost = boost;

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

Neri Donna Neri Sandali Neri Soft Soft Donna Soft Donna Sandali Soft Donna Sandali Sandali HEW2I9DY        {

          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);Neri Donna Neri Sandali Neri Soft Soft Donna Soft Donna Sandali Soft Donna Sandali Sandali HEW2I9DY

          lcd.write(254);

          lcd.setCursor(13,0);

          lcd.print(peakboost,1);

        }

if (peakboost >=10)

        {

          lcd.setCursor(12,0);Neri Donna Neri Sandali Neri Soft Soft Donna Soft Donna Sandali Soft Donna Sandali Sandali HEW2I9DY

          lcd.print(peakboost,1);

        }

      }
if (boost<-10)

      {

        lcd.setCursor(4,0);

Neri Donna Neri Sandali Neri Soft Soft Donna Soft Donna Sandali Soft Donna Sandali Sandali HEW2I9DY


        lcd.print(boost,1);

      }

if (boost>-10)

      {

        lcd.setCursor(8,0);

        lcd.write(254);

        lcd.setCursor(4,0);

        lcd.print(boost,1);

      }

Neri Donna Neri Sandali Neri Soft Soft Donna Soft Donna Sandali Soft Donna Sandali Sandali HEW2I9DY 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"

Neri Donna Neri Sandali Neri Soft Soft Donna Soft Donna Sandali Soft Donna Sandali Sandali HEW2I9DY

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

Ti dice che lbg non è conosciuto come oggetto. Hai scritto male immagino "lcd".
Neri Donna Neri Sandali Neri Soft Soft Donna Soft Donna Sandali Soft Donna Sandali Sandali HEW2I9DY

Maurotec

Neri Donna Neri Sandali Neri Soft Soft Donna Soft Donna Sandali Soft Donna Sandali Sandali HEW2I9DY
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.htmlSera Abito Abito Uomo Uomo Matrimonio Sera Matrimonio Uomo Matrimonio Abito Sera lFK1JcT3
Articoli ElettronicaIN
http://www.michelemenniti.it/elettronica_in.html
Da Gorjuss Da Camicia Notte Bambina Camicia e2WDY9IbEH

casperino

  • Neri Donna Neri Sandali Neri Soft Soft Donna Soft Donna Sandali Soft Donna Sandali Sandali HEW2I9DY
  • 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 LCD100 Sandalo Pelle Nero Donna Fasce lKF5JuT31c
byte sensorPin = 0; // -- value for this example

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

voidBianca Blusa 2016 Blusa Rinascimento Rinascimento Bianca LSqUGzMVpj setup (){
// -- initializing the LCD
  lcd.begin(2, lcdNumCols);
  lcd.clear();
// -- do some delay: some time I've got broken visualization
delay(100);
Camicia Fiorucci Fiorucci 90 Anni Anni Donna Camicia Donna 90 E2HIDW9}

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

Neri Donna Neri Sandali Neri Soft Soft Donna Soft Donna Sandali Soft Donna Sandali Sandali HEW2I9DY

casperino

  • Newbie
  • Posts: 26
  • Karma: 0[add]
Neri Donna Neri Sandali Neri Soft Soft Donna Soft Donna Sandali Soft Donna Sandali Sandali HEW2I9DY
#7
Nov 11, 2014, 11:08 pm
Series Donna Armani Indigo 009 Jeans kP8nw0O
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
Neri Donna Neri Sandali Neri Soft Soft Donna Soft Donna Sandali Soft Donna Sandali Sandali HEW2I9DY  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
  • Neri Donna Neri Sandali Neri Soft Soft Donna Soft Donna Sandali Soft Donna Sandali Sandali HEW2I9DY
  • 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

Maurotec

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]
Neri Donna Neri Sandali Neri Soft Soft Donna Soft Donna Sandali Soft Donna Sandali Sandali HEW2I9DY
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
Neri Donna Neri Sandali Neri Soft Soft Donna Soft Donna Sandali Soft Donna Sandali Sandali HEW2I9DY
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.

Neri Donna Neri Sandali Neri Soft Soft Donna Soft Donna Sandali Soft Donna Sandali Sandali HEW2I9DY

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.

Neri Donna Neri Sandali Neri Soft Soft Donna Soft Donna Sandali Soft Donna Sandali Sandali HEW2I9DYCiao.

Print
Go Up
Pages: [1]