Salve ragazzi sono nuovo del forum... il mio arduino non esegue il comando lcd.begin... se carico il seguente sketch:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
void setup() {
lcd.backlight();
pinMode(13, OUTPUT);
}
void loop() {
lcd.begin(16, 2);
digitalWrite(13, HIGH);
lcd.setCursor(0, 0);
lcd.print("Ciao sono Gionny");
lcd.setCursor(2, 1);
lcd.print("Ciao");
}
dovrebbe accendere il led dopo che avvii il display... invece no... ma se carico questo sketch:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
void setup() {
lcd.backlight();
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print("Ciao sono Gionny");
lcd.setCursor(2, 1);
lcd.print("Ciao");
}
mi accende il led ma non si avvia il display... e come che la lettura del programma si bloccasse su "lcd.begin".. come posso risolvere??
Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento se non lo hai già fatto: Regolamento
Qui una serie di link utili, non inerenti al tuo problema:
Il codice devi racchiuderlo nei tag code, vedi sezione 7 del regolamento, spiega bene come fare ( pulsante </> ).
Altrimenti parte del codice può essere visualizzata male o mancare perchè interpretato come attributo del testo stesso.
Come sono i collegamenti ?
Grazie...adesso mi presento... i collegamento credo siano giusti... vcc a 5v GND a massa, SDA al pin n4 e SCL al pin numero 5... avviamente i pin analogici quindi (A4 e A5)... la cosa che mi stranizza é che qualche giorno fa questo progetto funzionava correntamente e senza problemi... il problema si é posto oggi... praticamente il mio arduino( a quanto ho capito io) si blocca nella lettura della stringa:
lcd.begin(16,2);
Non so cosa fare....
lcd.begin l'ho sempre visto nel setup, prima di tutto il resto (che riguardi l'lcd). Magari prova a spostarlo lì
doppiozero:
lcd.begin l'ho sempre visto nel setup, prima di tutto il resto (che riguardi l'lcd). Magari prova a spostarlo lì
Vero. Anche perchè nella loop() verrebbe eseguito di continuo.
L'ho spostato nel loop proprio perché nel setup non funzionava comunque... ma non funziona lo stesso
Ho riprovato a spostare lcd.begin nel setup ma niente non da segni di vita
ma hai collegato altre cose oltre all'lcd? se prima andava strano che non vada più, senza modifiche..
comunque la mia libreria liquidcrystal i2c sembra essere diversa.
questo l'esempio hello world
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x20,16,2); // set the LCD address to 0x20 for a 16 chars and 2 line display
void setup()
{
lcd.init(); // initialize the lcd
// Print a message to the LCD.
lcd.backlight();
lcd.print("Hello, world!");
}
void loop()
{
}
io però non riesco a fare prove perchè non ho lcd i2c, ho solo la libreria
Mi potresti dare il link della libreria cosi provo con questa?
Niente da fare... il mio arduino si blocca nella inizializzazione del display con tutte le librerie... ho provato anche a programmarlo da diversi pc ma il risultato è sempre quello...
ma hai collegato altre cose oltre all'lcd?
prova a usare questo sketch, fa la scansione dei dispositivi i2c. Vedi un po cosa ti dice
le resistenze di pull up le hai messe? non so se sono integrate nell'lcd
Ho provato a fare lo scanner i2c ma nel monitor seriale mi scrive sempre cosi:
"I2C Scanner
Scanning..."
e nient'altro... e come che si blocchi l'esecuzione del programma... MAH!
Sicuro di non aver invertito i pin SDA e SCL ?
NO i pin sono collegati correttamente... ho provato ad aggiungere un "digitalWrite(13,HIGH)" dopo "error = Wire.endTransmission" e il led non si accende... invece se lo metto prima si accende senza problemi... sto pensando che ci sono problemi nella libreria Wire.h.... se è così cosa posso fare??