Pages: [1]   Go Down
Author Topic: mandare caratteri a un lcd  (Read 545 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 13
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

[size=12]Salve a tutti! Mi chiamo Stefano ho 16 anni e sono nuovo di questo forum e del mondo arduino.
Scrivo qui perchè ho un problema in un mio progetto.
vorrei che le parole scritte sul Serial Monitor dell IDE vengano mandate ad un lcd collegato via I2C all'Arduino.
Questo è il codice:[/size]
[size=14]
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x20,16,2);  
int val =0;

void setup()
{
  Serial.begin(9600);
  lcd.init();                    
 
 
  
}

void loop(){
 
  if(Serial.available()){
    val=Serial.read();
  }
    lcd.backlight();
    lcd.setCursor(0,0);
    lcd.print(val);
    
  }[/size]

[size=12]L'unico problema è che al posto di parole sul lcd appaiono dei numeri.
C'è qualche anima pia che mi può aiutare?
Grazie.

PS:ottimo forum! smiley-wink smiley-wink[/size]
Logged

Caserta
Offline Offline
Jr. Member
**
Karma: 0
Posts: 87
Ar..dito me lo lego(las)
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

magari ti risponderà chi ne sa + di me ma credo che tu stampi i codici dei caratteri ricevuti dalla seriale.
Posta i numeri che ti stampa e vediamo.
ciao
Logged

kokiua
Guest
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao Stefano e ben venuto  smiley-grin  E' molto positivo che chi è così giovane sia anche così determinato ed intraprendente, bravo!

Allora:
La variabile val la devi impostare come char e non come int perchè char corrisponde ad un byte senza segno (da 0 a 255 come il codice ascii).

poi:
Code:
lcd.setCursor(0,0);
che dovrai far eseguire al codice solo dietro specifico comando, es:

Code:
if( val == 13 ){
  lcd.setCursor(0,0);
}
Altrimenti ad ogni carattere visualizzato riporti il cursore del dispaly all'inizio e non ti si sposta mai di li, mentre nell'esempio che ti ho fatto, all'inizio ci va solo quando gli invii un [return] (o invio che dir si voglia). Per capire i vari numeri che arrivano dal PC consulta sempre una tabella di codici ascii, perchè quello che ti arriva è sempre e comunque un numero, e ad ogni numero corrisponde un simbolo (lettera, numero o punteggiatura che sia).

E soprattutto nel loop dove controlli la seriale devi spostare anche lcd.print(val), altrimenti il loop continua a scrivere sempre lo stesso carattere all'infinito...

Fai queste modifiche e poi fatti sentire  smiley-wink



Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 13
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Grazie mille adesso funziona! grande kokiua!
grazie ancora
Logged

Pages: [1]   Go Up
Jump to: