Go Down

Topic: Arduino Mega +Display seriale/I2C 20x4 Devantech (Read 2124 times) previous topic - next topic

SAMPEI80

Sep 01, 2010, 11:48 am Last Edit: Sep 01, 2010, 11:53 am by SAMPEI80 Reason: 1
Ciao a tutti,ho un problema con il mio display seriale in quanto lancio lo sketch e lui mi dà la scrittache voglio ma non posizionata nel modo giusto, cioè: se per esempio il serial.print è così:

Code: [Select]
void mainmenu()
{
 Serial.print("?f");
 delay(50);
 Serial.print("?x01?y01  Paolo Carlo");
 delay(50);
 Serial.print("?x01?y12  Mamma Papà");
 delay(50);
 Serial.print("?x01?y23  Luca Paolo");
 delay(50);
 Serial.print("?x01?y34  Setup Menu");
 delay(50);


Lui sul display mi indica così:
?x01?y23  Luca Paolo?x01?y34  Setup Menu ,come se non capisce le coordinate,giusto?

uwefed

ciao SAMPEI80
Sappiamo tanto ma non siamo ancora indovini o veggenti.
Quale display hai? Eventualmetne con quale schedina d' interfaccia?
Senó posso solo dirti: Consulta la documantazione del display e gli esempi inclusi.
Ciao Uwe

SAMPEI80

Se leggi il titolo del post è chiarissimo,comunque ho arduino mega e un display seriale/I2C 20x4 Devantech

uwefed

Ciao SAMPEI80
Non mi é chiaro.
Ci sono comandi che l'interfaccia seriale interpreta. Quelli dipendono dal interfaccia o dal diplay che ha integrato l' interfaccia.

I normali LCD con il controller HD44780 non ha un interfaccia seriale.

Percui io posso aiutarti se mi dici che Display o elettronica di interfaccia stai usando.

Ciao Uwe



SAMPEI80

#4
Sep 01, 2010, 02:09 pm Last Edit: Sep 01, 2010, 02:11 pm by SAMPEI80 Reason: 1
ok guarda questo in allegato è il manuale del display dove c'è anche l'adattatore seriale che utilizza

http://www.robot-italy.com/product_info.php?products_id=92

sul piccolo adattatore c'è un integrato e c'è scritto:
PIC16F819

uwefed

ciao SAMPEI80
Scusami se ho insistito ma capirai quando leggi quello che scrivo.

Mi riferisco alla lista comandi sulla pagina 3 di http://www.robot-italy.net/downloads/lcd03.PDF

Il tuo errore é che mandi i comandi per il display come carattere ascii e non come numero.

Il comando (in decimale) 2 o in esadecimale 0x02 ( si scrive "0x" davanti per dire che é un numero esadecimale) mette il cursore su una posizione del display; Valori ammessi 1 a 80.
Il comando 3 mette il cursore su una posizione dando come valori la riga e poi la colonna.

se vuoi scrivere nella prima riga "Paolo Carlo" devi scrivere al posto di:

Serial.print("?x01?y01  Paolo Carlo");
Serial.print(3); Serial.print(1);Serial.print(1);Serial.print("Paolo Carlo");

Serial.print("?x01?y12  Mamma Papà");
Serial.print(3); Serial.print(2);Serial.print(1);Serial.print("Mamma Papà"); // oppure
Serial.print(2); Serial.print(21);Serial.print("Mamma Papà");  // non só se la "a" coll'accento é presente come lettera nel set di caratteri del display; prova. se non c'é Ti visualizzerá un simbolo strano.

comunque inizierei con un
Serial.print(12); //che cancella il display.

Scrivi nel Tuo esempio " void mainmenu(){ "
È una funzione che hai definita Tu?
L' arduino non ha la funzione "main()" del C;  le 2 funzioni che esegue sono setup() e loop().

Il PIC16F819 é un piccolo microcontroller (simile al ATmega328, che usa l'Arduino) programmato con un programma che interpreta i comandi seriali e pilota il display HD44780-compatibile con interfaccia parallela.

Ciao Uwe


SAMPEI80

Grazie mille oggi provo e ti faccio sapere come è andata.
Buona giornata

SAMPEI80

Ciao mi risponde :

In function 'void mainmenu()':
error: invalid use of member (did you forget the '&' ?)

uwefed

Ciao SAMPEI80
Non so mica cosa hai scritto. Mandami per favore tutto il codice.
Ciao Uwe

SAMPEI80

#9
Sep 02, 2010, 04:31 pm Last Edit: Sep 02, 2010, 04:41 pm by SAMPEI80 Reason: 1
Code: [Select]
void mainmenu()
{
 Serial.print(12);
 delay(50);
 Serial.print(3);Serial.print(1);Serial.print=(1);Serial.print(" Manuale");
 delay(50);
 Serial.print(3);Serial.print(1);Serial.print=(12);Serial.print(" Automatico");
 delay(50);
 Serial.print(3);Serial.print(1);Serial.print=(23);Serial.print("  Mode");
 delay(50);
 Serial.print(3);Serial.print(1);Serial.print=(34);Serial.print(" Setup");
 delay(50);
}

uwefed

#10
Sep 02, 2010, 05:49 pm Last Edit: Sep 02, 2010, 05:50 pm by uwefed Reason: 1
Per favore TUTTO il programma non solo un pezzo.
Non ci va il "=" dopo Serial.print
Ciao Uwe


uwefed

Grazie SAMPEI80;
per primo:
Sia l' hardware che il software di Arduino sono sotto Creative Commons Attribution-ShareAlike 3.0 License. Percui anche se quella persona ha scritto personalmente il programma non puó adottare nessun altra licenza. Comunque va bene che mi hai spedito il programma in privato e non vuoi divulgarlo.

Secondo me il progetto originale usa un display con un altro Interfaccia seriale che usa altri commandi.
Se togli il segno uguale dovrebbe funzionare.

Code: [Select]

void setup()                    // run once, when the sketch starts
{
Serial.begin(9600);      
 Serial.print(12);
 delay(50);
 Serial.print(3);Serial.print(1);Serial.print(1);Serial.print(" Manuale");
 delay(50);
 Serial.print(3);Serial.print(1);Serial.print(12);Serial.print(" Automatico");
 delay(50);
 Serial.print(3);Serial.print(1);Serial.print(23);Serial.print("  Mode");
 delay(50);
 Serial.print(3);Serial.print(1);Serial.print(34);Serial.print(" Setup");
 delay(5000);
}
void loop(){
delay(5000);
}

Questo codice dovrebbe scriverti 1 volta "Manuale", "Automatico", "Mode" e "Setup" sul display. e poi aspettare in eterno.

Per imparare incomincia lentamente seguendo un libro su Arduino e poi sucessivamente incomincia a cambiare il programma della Birra alle tue esigenze.

Dove abiti? Forse qualcuno del forum abita vicino e puó aiutarti incontrandoti.

Ciao Uwe

SAMPEI80

Abito a Roma comunque ho provato prima ma non andava ho visto il serial monitor e il display e continua a non cambiare,si probabilmente la persona usava un altro display, e probabilmente a me nemmeno serve il suo sketch,tu non puoi aiutarmi nella mia impresa?

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy