I have a Scott Edwards Electronics SGX-120L graphics LCD. It serial and I have it connected to my diecimila with the three wires. I cannot seem to make it display anything but gibberish. I Think I have seen/read most online tutorials and examples, but just cannot seem to make it say even "hello"
Baud rates are right. I think it has to do with Serial.Print () types
Sure, I pulled it right out of the tutorial:
and I have tried BeginSerial vs. Serial.Begin, no results
I have tried serial.print and serial.println both, no difference
/*
Hello World!
This is the Hello World! for Arduino.
It shows how to send data to the computer
*/
void setup() // run once, when the sketch starts
{
Serial.begin(9600); // set up Serial library at 9600 bps
Serial.println("Hello world!"); // prints hello with ending line break
}
void loop() // run over and over again
{
// do nothing!
}
standard, 3 wire: +5, gnd, TX. It really appears to be a baud rate problem, or perhaps inverted signal. ? I tried debugging it by sending single letters and viewing the results, which seemed consistant, but could not apply ny kind of relational math to them. Clearing the screen seemed to work...as long as no other writing was done. Also tried delays. I have a lot of programming in a past life so Im fairly adept at debugging, but this has me beat. I called Seetron tech support and he ran through the likely suspects to no avail. I think next steps is to cut open a usb cable and se if I can talk term directly to the display module to eliminate the possibility that its bad (unlikely).
questions, the serial out from TX, is 8,n,1 correct?
the manual states "If the serial output ( of the arduino [sic]) is logic-level (5V), make sure that it is inverted. In terms of serial communication, this means that the stop-bit condition should be low (0V or negative) and the start-bit condition should be high (3.5V or higher). Is this the case?, Is there documentation on this that I can find?
there are no header bytes required, just simple ASCII controls, and, just so I know Im doing it right...eg; clear screen requires an ASCII 12, or Control-L which I write with Serial.print (clear), where int clear = 12; is this correct usage of serial print?
just simple ASCII controls, and, just so I know Im doing it right...eg; clear screen requires an ASCII 12, or Control-L which I write with Serial.print (clear), where int clear = 12; is this correct usage of serial print?
Ah, here's your/a problem. That usage of Serial.print sends a '1' and a '2' to the screen. If you want a binary 12 you need to use:
Well, I would have guessed so, but perhaps there is some other setting (position cursor?) or something that needs to be done before the text shows up. I'll read the data sheet a bit.
EDIT: Perhaps try out some of the "recipes" at the end of the data sheet?