This is pretty cool -
http://cats-whisker.com/web/node/7

Serial control @ TTL or RS232 levels. Very thin.
£25.00 though...
This is pretty cool -
http://cats-whisker.com/web/node/7

Serial control @ TTL or RS232 levels. Very thin.
£25.00 though...
Serial lcds are normally around 20-25$, aren't they?
US$ < £ ...
£25 = US$38.80 = AU$43.20
Of course "cheap" is highly dependent on your point of view...
Do want!
That's the coolest display I've seen in a long time, perfect for small robots or other devices.
Andrew
I like this bad boy, it's OLED, only 1 inch, but has a micro-SD card slot on the back that you can store images on.
It's $50... which is pretty spendy for an LCD, but the whole LCD only uses about 40mA.. and uses simple UART control, so only need 1 pin to use it!
And it's super bright, can be seen from almost any angle! (ah, good ol OLEDs lol )
In addition to CaptainObvious,
It's also possible to connect upto 5 buttons with various resistors to one of the pins for a joystick/keypad and another possibility is connecting a small amplifier circuit and speaker to output some sounds. It depends on what firmware (4d-system calls it "PmmC configuration file")is loaded. I used my arduino mega as a serial (TTL) to USB adapter to upload new fonts, change start animation etc. Anyone interested in a library can contact me or JuMCaR.
only need 1 pin to use it!
I've connected the display with one reset pin ,2 serial pins (the display can return info about pixelcolor/sd card contents and acknowledge/not acknowledge on received commands. And of course the powersupply and ground.
Apart from the price i like this display alot.
Jeroen
ps. I have the larger version Serial Miniature OLED Module - 1.7" (uOLED-160-G1GFX) - LCD-08543 - SparkFun Electronics The same embedded processor. Only bigger screen.
I see, yeah I think I'm going to grab that + 2 xbees and breakout boards for Free day ![]()
I wasn't aware of the buttons, that's pretty awesome, along with the sounds.
I did see that there was a library made, but don't have an LCD to test with. All though, I would be interested to see what what all you've implemented and how it's used! The biggest "seller" for me is the sd-card on board.. that just rules out ALOT of the code on the Arduino. (yay! lol:))
Just curious, are you able to upload .txt files and such to the micro-sd on board? Well, maybe not "upload" but create and log data? If not, no bother, still mainly wanted it for the ability to display pictures! ![]()
I/we haven't implemented sd-card functions yet. Or sounds/buttons for that matter. Commands for sd-card access are described from page 37 onward in the following data-sheet. http://www.4dsystems.com.au/downloads/Semiconductors/GOLDELOX-SGC/Docs/GOLDELOX-SGC-COMMANDS-SIS-rev2.pdf
Most of the graphic related functions are implemented. I'm working on a bar-graph class. Maybe seen my other thread about that.
Jeroen
Time for another outing : The seriously cheap serial LCD. £10 including pretty box. Or you could just use it on its own as an Arduino with a display ![]()
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1260399444
And this really is something I've made ![]()
Less than 20mA if you use an LCD without backlight.....
There is now this:
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1256896315/0
A really nice board with lots of extra features.
Touch screen, large screen!, SD etc...
Only $60!
Mowcius
pluggy
its not really a serial lcd is it
is a arduino hooked up to a lcd... :-?
@Ste Hughes,
what exactly is a Serial LCD then?
He has an LCD, that's normally a Parallel connection. (6 pins) Once he puts in the Chip.. (which EVERY serial LCD has a chip, but usually not the ATmega, like Pluggy used) all he needs to use is 3 pins for the whole LCD to work. RX, GND, and 5V.
Only takes 1 pin to drive the LCD from the Arduino, and that can be any pin with the use of NewSoftSerial.
After he has his chip installed, all he needs to do to use it, is plug it in, and on the main Arduino, send ASCII chars for text, here's a "hello world" example:
void setup(){
Serial.begin(9600);
Serial.print("HELLO WORLD!");
}
void loop(){
}
There is no such thing as a serial LCD, there are just LCDs and serial controller boards. That link was to an arduino based controller board.
Mowcius
I use the 6 pin FTDI interface I put on it for the serial connection. I have one in and running, its using the arduino for some local processing, since the data is coming in in a compact form using bytes and integers, the display makes sense of it and displays it in a nice readable form. It was easier than rewriting the sketch at the other end. This obviously isn't an option on a standard serial LCD.
The next step is adding some indicator LEDS to act on the incoming data so you can see some rudimentory information from across the room. Again not an option with a serial LCD.
Using an arduino to drive an LCD is like using a sledgehammer to crack a nut, but when the sledgehammer is a lot cheaper and more flexible than nutcrackers, who cares ? ![]()
Morning all,
I have one of them TextStar LCD screens and they are cool. Im struggling however to get it to play.
i can get it to show text thats the easy part, what i want to do is to show the output from a program running on my pc , either one using serial data.
I have set up the lcd using the +5 and GND and connected the rx to the arduinos tx pin.
This is my code below:
int incomingByte;
void setup()
{
Serial.begin(9600);
backlightOn();
incomingByte = 1;
clearLCD();
}
void loop()
{
//clearLCD();
selectLineOne();
delay(250);
if (Serial.available() > 0) {
// read the incoming byte:
incomingByte = Serial.read();
}
Serial.print("CPU %: ");
Serial.print(incomingByte);
//delay(100);
//selectLineTwo();
//delay(250);
//Serial.print(millis()/2);
//delay(1000);
}
void selectLineOne(){ //puts the cursor at line 0 char 0.
Serial.print(0xFE, BYTE); //command flag
Serial.print(80, BYTE); //position
Serial.print(1,BYTE); //move to line 1
Serial.print(1,BYTE); //move to column 1
}
void selectLineTwo(){ //puts the cursor at line 0 char 0.
Serial.print(0xFE, BYTE); //command flag
Serial.print(80, BYTE); //position
Serial.print(2,BYTE); // move to line 2
Serial.print(1,BYTE); //move to column 2
}
void goTo(int position) { //position = line 1: 0-15, line 2: 16-31, 31+ defaults back to 0
if (position<16){ Serial.print(0xFE, BYTE); //command flag
Serial.print((position+128), BYTE); //position
}else if (position<32){Serial.print(0xFE, BYTE); //command flag
Serial.print((position+48+128), BYTE); //position
} else { goTo(0); }
}
void clearLCD(){
Serial.print(0xFE, BYTE); //command flag
Serial.print(83, BYTE); //clear command.
}
void backlightOn(){ //turns on the backlight
// Serial.print(0x7C, BYTE); //command flag for backlight stuff
// Serial.print(157, BYTE); //light level.
}
void backlightOff(){ //turns off the backlight
// Serial.print(0x7C, BYTE); //command flag for backlight stuff
// Serial.print(128, BYTE); //light level for off.
}
void serCommand(){ //a general function to call the command flag for issuing all other commands
Serial.print(0xFE, BYTE);
}
What this shows on the screen is "CPU %: 52" or "CPU %: 36" or somewhere in between. I'm using the LCDSmartie app to send the data to the screen with a simple serial driver. all it does is send a value to the serial port or what cpu utilisation is, the display on LCD smartie shows all sorts of number but they are never reflected on the lcd screen.
once i sort this out i will be ok but cant figure it out.
I think it may be data types? i think the arduino is seeing each digit as a separate number rather than one value
Thanks for the help guys
i think the arduino is seeing each digit as a separate number rather than one value
That depends on how the data is SENT to the serial port. If the data is sent to the serial port as a string, then, yes, the Arduino sees each digit as a separate character (not number), so that is what you are telling it to display on the LCD.
Some things to consider. The loop function is called in an infinite loop. With no delay statements or other time consuming (or wasting) functions, it could be called thousands of times per second.
You read the serial data, if any is available. Then, you use Serial.print to send data to the LCD, regardless of whether is new data to display, or not.
This code:
void goTo(int position) { //position = line 1: 0-15, line 2: 16-31, 31+ defaults back to 0
if (position<16){ Serial.print(0xFE, BYTE); //command flag
Serial.print((position+128), BYTE); //position
}else if (position<32){Serial.print(0xFE, BYTE); //command flag
Serial.print((position+48+128), BYTE); //position
} else { goTo(0); }
}
is incredibly hard to read.
This code, which does exactly the same thing, is easier to read:
#define CMD 0xFE
void goTo(int position)
{ //position = line 1: 0-15, line 2: 16-31, 31+ defaults back to 0
Serial.print(CMD, BYTE); //command flag
if (position<16 || position >= 32)
{
Serial.print((position+128), BYTE); //position
}
else
{
Serial.print((position+48+128), BYTE); //position
}
}
I'm not sure but this looks like the same screen to me, just a bit cheaper.
http://www3.towerhobbies.com/cgi-bin/wti0001p?&I=LXNDU3&P=ML