ERRORE LIBRERIA DISPLAY LCD

Buongiorno a tutti, oggi ho provato il progetto OHM METER ma quando vado ad inserire la libreria del display ottengo questo messaggio di errore: 'LiquidCristal' does not name a type
Come posso risolvere?
Grazie

Ciao

maltese04:
Come posso risolvere?
Grazie

Guarda, la soluzione è li, proprio sotto i tuoi occhi.
È nel codice che hai scritto/copiato, non lo vedi l'errore?

Eppure ti assicuro che è proprio lì; prova a guardare meglio.

Non lo vedi?
Beh, neanch'io.
Meglio che posti il codice >:( >:(

Ciao
Pippo72

pippo72:
Non lo vedi?
Beh, neanch'io.
Meglio che posti il codice >:( >:(

... questa m'è piaciuta !

Guglielmo

maltese04:
'LiquidCristal' does not name a type
Come posso risolvere?
Grazie

Hai messo l' #include ?

ExperimentUno:
Hai messo l' #include ?

Avoglia le domande oltre quella:
Hai installato la libreria correttamente?
Se sì quale libreria è?
Quale errore precisamente dà nell'output dettagliato?
Quale codice stai usando?

Forse pure altre :slight_smile:

Non serve prendermi in giro, io sono completamente allo scuro del pianeta Arduino, mi sto avvicinando piano piano e posto l'errore che compare sulla riga in basso; non so niente dell'esistenza di più tipi di LiquidCristal o di quali codici inserire. Seguo un manuale o qualche sito e se certe nozioni vengono date per scontate e quindi non specificate più chiaramente, io le ignoro e il progetto non mi funziona. Abbiate pazienza di spiegarmi il più possibile passo passo, se volete... le polemiche non servono. Buona serata

Vi scrivo tutto lo sketch. L'#include come si mette; ho cliccato "sketch/#include libreria/LiquidCrystal" ma non è questo il passaggio esatto?

<int analogPin= 0;
int raw= 0;
int Vin= 5;
float Vout= 0;
float R1= 1000;
float R2= 0;
float buffer= 0;

#include <LiquidCrystal.h>

LiquidCristal lcd(12, 11, 5, 4, 3, 2);

void setup()
{
// put your setup code here, to run once:
lcd.begin(16, 2);
Serial.begin(9600);
}

void loop()
{
// put your main code here, to run repeatedly:
raw= analogRead(analogPin);
if(raw)
{
buffer= raw * Vin;
Vout= (buffer)/1024.0;
buffer= (Vin/Vout) -1;
R2= R1 * buffer;
Serial.print("Vout: ");
Serial.println(Vout);
Serial.print("R2: ");
Serial.println(R2);
lcd.print("OHM METER");
lcd.setCursor(0, 1);
lcd.print("R2: ");
lcd.print(R2);
delay(1000);
lcd.clear();
}>

Questo invece è l'errore che viene visualizzato più in basso:

OMHMETRO:12: error: 'LiquidCristal' does not name a type

LiquidCristal lcd(12, 11, 5, 4, 3, 2);

^

C:\Users...\OMHMETRO.ino: In function 'void setup()':

OMHMETRO:17: error: 'lcd' was not declared in this scope

lcd.begin(16, 2);

^

C:\Users...\OMHMETRO.ino: In function 'void loop()':

OMHMETRO:35: error: 'lcd' was not declared in this scope

lcd.print("OHM METER");

^

exit status 1
'LiquidCristal' does not name a type

Nessuno penso ti stava prendendo in giro :wink: Semplicemente è buona norma fornire tutti i dettagli al di là delle conoscenze su una cosa :wink: Comunque il codice va racchiuso nei TAG CODE che trovi nell'editor sul forum con i simboli </>

Comunque per me è un'errata installazione della libreria e questo carattere "<" che hai messo all'inizio del codice lo devi togliere. L'hai cercata direttamente dall'IDE la libreria per il display?

ciao

maltese04:
Non serve prendermi in giro, io sono completamente allo scuro del pianeta Arduino...

Non era mia intenzione prenderti in giro, se ti sei offeso ti chiedo scusa.

ho cliccato "sketch/#include libreria/LiquidCrystal" ma non è questo il passaggio esatto?

si, è esatto. L'errore è un altro:

#include <LiquidCrystal.h>

LiquidCristal lcd(12, 11, 5, 4, 3, 2);

Riesci a vederlo? (non ti sto prendendo in giro). Hai scritto LiquidCrystal prima e LiquidCristal poi con una "i" al posto della "y". questo basta a causare tutti quegli errori.

Allo sketch manca anche un "}" alla fine, ma penso sia solo un errore di copia-incolla.

questo lo sketch corretto

int analogPin = 0;
int raw = 0;
int Vin = 5;
float Vout = 0;
float R1 = 1000;
float R2 = 0;
float buffer = 0;


#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup()
{
  // put your setup code here, to run once:
  lcd.begin(16, 2);
  Serial.begin(9600);
}

void loop()
{
  // put your main code here, to run repeatedly:
  raw = analogRead(analogPin);
  if (raw)
  {
    buffer = raw * Vin;
    Vout = (buffer) / 1024.0;
    buffer = (Vin / Vout) - 1;
    R2 = R1 * buffer;
    Serial.print("Vout: ");
    Serial.println(Vout);
    Serial.print("R2: ");
    Serial.println(R2);
    lcd.print("OHM METER");
    lcd.setCursor(0, 1);
    lcd.print("R2: ");
    lcd.print(R2);
    delay(1000);
    lcd.clear();
  }
}

con nessun errore di compilazione:

Lo sketch usa 5.558 byte (17%) dello spazio disponibile per i programmi. Il massimo è 32.256 byte.
Le variabili globali usano 276 byte (13%) di memoria dinamica, lasciando altri 1.772 byte liberi per le variabili locali. Il massimo è 2.048 byte.

Il carattere "<" all'inizio dello sketch e il carattere ">" alla fine credo sia un errato tentativo di usare i tag code.

ciao
pippo72

maltese04:
Non serve prendermi in giro, io sono completamente allo scuro del pianeta Arduino,

... nessuno ti prende in giro, ma se pretendi che uno tii possa aiutare SENZA dare tutti i dettagli necessari ... ::slight_smile:

In conformità al regolamento, punto 7, devi editare il tuo post (in basso a destra del post, bottone More -> Modify) e racchiudere il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone fatto così: </>, tutto a sinistra).

Guglielmo

Eh di sera non ho notato sta cosa banale :smiley:

Sì avete ragione, ho scritto Crystal con la "i" e non avevo capito la funzione "insert code"; ora funziona ma non scrive caratteri latini. Allego foto. Grazie a tutti

LCD Arduino.JPG

>maltese04: ancora una volta, in conformità al regolamento, punto 7, ti chiedo di editare il tuo post #5 (in basso a destra del post, bottone More -> Modify) e racchiudere il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone fatto così: </>, tutto a sinistra).

Guglielmo

Non puoi scrivere tutti i caratteri che vuoi, devi usare il codice ASCII e a volte non funziona nemmeno in quel modo... quali caratteri sono?

int analogPin= 0;
int raw= 0;
int Vin= 5;
float Vout= 0;
float R1= 1000;
float R2= 0;
float buffer= 0;


#include <LiquidCrystal.h>

LiquidCristal lcd(12, 11, 5, 4, 3, 2);

void setup() 
 {
  // put your setup code here, to run once:
  lcd.begin(16, 2);
  Serial.begin(9600);
 }

void loop()
{
  // put your main code here, to run repeatedly:
 raw= analogRead(analogPin);
 if(raw)
 {
    buffer= raw * Vin;
    Vout= (buffer)/1024.0;
    buffer= (Vin/Vout) -1;
    R2= R1 * buffer;
    Serial.print("Vout: ");
    Serial.println(Vout);
    Serial.print("R2: ");
    Serial.println(R2);
    lcd.print("OHM METER");
    lcd.setCursor(0, 1);
    lcd.print("R2: ");
    lcd.print(R2);
    delay(1000);
    lcd.clear();
  }

quello che doveva venir scritto è OHM METER come si vede dalla riga

lcd.print("OHM METER");

ed effettivamente controllando la tabella dei simboli cinesi che mi ha mandato nid69ita è quello che deve uscire

LCD Arduino.JPG

maltese04:
Scusa gpb01 ma non trovo il More->Modyf, ho solo Preview e Save Draft a destra del Post.

In basso, sotto il post a destra c'è: Quote Quick Edit More ...
... ce l'hanno tutti quindi presta attenzione e fai quanto richiesto ! Grazie.

Guglielmo

Io voglio vedere nel codice cosa stai cercando di scrivere. :slight_smile: Con quella foto posso capire poco

Di solito i display cinesi 16x2 hanno una tabella dei font fissa, tipo questa:


Quindi NO caratteri latini (penso intendi e con accento e altri ascii particolari)

Per questo volevo vedere cosa scriveva