Hello together,
Since last week I am proud owner of an Genuino/Arduino UNO
After recycling some electronic parts from old gear, I've found a LCD Display which was used in an old Siemens phone. After some research I've got the following information for that Display:
- Same as HB24208 and HB24209
- HD44780 compatible
- uses a KS0074 controller (in serial mode => SPI)
- uses SPI for communication (which is pretty cool as not much wires are needed to run the LCD)
- SPI LSBFIRST
- max 1MHz
- Power Supplay 2,7V - 5,5V
Pinout:
1 - not used
2 - not used
3 - MOSI
4 - GND
5 - CLK
6 - GND
7 - MISO
8 - VCC
9 - SS/CS
10 - Contrast
I would love to use that LCD in some Projects. But I am not able to get fired it up After some days without success I hope to get some input/help from you guys
The LCD is coneccted as followed with my Genuino/Arduino Uno:
LCD Pin 3 - MOSI <=== Arduino Pin 11
LCD Pin 5 - CLK <=== Arduino Pin 13
LCD Pin 9 SS/CS <=== Arduino Pin 10
LCD Pin 4/6 - GND <=== Arduino GND
LCD Pin 8 - VCC <=== Arduino +5V
LCD Pin 10 <=== 10K - Potentiometer - 5V
and I am using the following code:
#include <SPI.h>
const int cs=10;
SPISettings spiLCD(SPI_CLOCK_DIV16,LSBFIRST,SPI_MODE0); //1MHz
void setup() {
 //SPI.setBitOrder(LSBFIRST);
 //SPI.setClockDivider(SPI_CLOCK_DIV16); //1Mhz
Â
 pinMode(cs,OUTPUT);
 digitalWrite(cs,HIGH);
 delay(22); //Wait 22-ms for LCD
 SPI.begin();Â
Â
 SPI.beginTransaction(spiLCD);Â
 digitalWrite(cs,LOW);
Â
 SPI.transfer(B00011111); //0x1F MSB 0001 1111 LSB - StartByte
 delay(50);
 /*SPI.transfer(0x03); //8bit-2line => Function-Set MSB 0011 1000 LSB
 SPI.transfer(0x04);Â
 delayMicroseconds(40);
 */
 //SPI.transfer(B00001000); //Function Set 8-bit 2-lines
 //SPI.transfer(B00000011);Â
 delay(50);
 SPI.transfer(B00001111); //0x0F - MSB 0000 1111 LSB Display-on, cursor-on, blink on => Display Control
 SPI.transfer(B00000000);Â
 delay(50);
 SPI.transfer(B00000001); //0x01 - MSB 0000 0001 LSB Clear Display
 SPI.transfer(B00000000);
 delay(2000);
 SPI.transfer(B00001111); //0x5F - MSB 0101 1111 LSB Entry Mode Set 0000 0110
 SPI.transfer(B00000101);
Â
 //SPI.transfer(B00000110); //0x07 - MSB 0000 0110 LSB Entry Mode Set
 //SPI.transfer(B00000000);
 //Initalization end
 delay(50);
Â
 SPI.transfer(B00000010); //0x42 - MSB 0100 0010 LSB Write ASCII B
 SPI.transfer(B00000100);
 delay(1);
Â
 digitalWrite(cs,HIGH);
 SPI.endTransaction();
Â
}
void loop() {Â
Â
}
Thank you in advance I appreciate any feedback given