NHD-C0220BiZ-FS(RGB)-FBW-3VM Test
I'm also having a problem with no display on my LCD as the last post SteveC had. However, I initially had a short circuit and corrected it but could have toasted the LCD? I tried switching the slave address from 0x78 to 0x3C with no avail. My LCD pin input values are:
#2 - SCL = 3.28
#3 - SDA = 3.28
#5 - VDD = 3.29
#6 - VOUT = 2.75
#7 - C1+ = 3.10
#8 - C1- = .24
Is there anyway I can test the LCD to verify it is operational before I start debugging my code?
-
Unfortunately there is not a "test mode" available. Where was the short you first had, and how long was it shorted for? It may have destroyed the display, or maybe not. It is hard to say for certain. I would try using the code I posted for SteveC from an older post of mine.
0 -
Hi, The concept that I was not aware of was that the LCD is completely turned OFF after power-up and must be initialized by the software. In other words, the voltage converter and contrast are software controlled. So just going through the software to get those functions working as measured by the voltages on pins #6, #7 and #8 is a clear indication if the LCD is being initialized properly. If you go to the ST7036 datasheet on pages 40 and 42 there is similar software which describes what the commands in the comments. Those comments are VERY helpful to me at least.
Hope this helpls.0 -
The short lasted only a second or two but produced some smoke on my microcontroller board and left it inoperable. I've replaced the board and it is working again and I have ordered another LCD just in case. I will try using the code you posted and I will read the comments in the ST7036 datasheet as SteveC suggested.
Thank you both for your help!0 -
Dean, I'm using an Arduino Uno to drive the LCD. Here's my code for the Arduino with the original eval code commented out.
*****************************************************/
//int main(void)
void loop()
{
int i;
while(1) //continue
{
init_LCD();
delay(2);
Show(text1);
nextline();
Show(text2);
delay(2000);
init_LCD();
delay(2);
// I2C_out(Slave);
// I2C_out(Datasend);
Wire.beginTransmission(Slave); // transmit to LCD
Wire.write(Datasend); // sends 0x40 to LCD
// This is a Data Send to LCD
for(i=16;i<36;i++){//show 20 chars in font table starting at 16 on the top, first line of the LCD
// I2C_out(i);}
Wire.write(i);}
//
// I2C_Stop();
Wire.endTransmission(); // stop transmitting
nextline();
Wire.beginTransmission(Slave); // transmit to LCD
Wire.write(Datasend); // sends 0x40 to LCD
// This is a Data Send to LCD
for(i=65;i<85;i++){//shows 20 chars in font table starting at 65 on the 2nd, bottom line of the LCD
// I2C_out(i);}
Wire.write(i);}
//
// I2C_Stop();
Wire.endTransmission(); // stop transmitting
delay(4000);
}
}0
Please sign in to leave a comment.
Comments
4 comments