Recent Posts

Pages: [1] 2 3 ... 10
1
Character LCDs / Re: NHD-C0216CiZ-FSW-FBW-3V3 with arduino nano
« Last post by Saurabh_B on Today at 08:24:51 AM »
Hello,

It looks like you have the display wired backwards. Pin 1 of the display is on the right side of the display. Please see the attached picture.

I would also recommend the use of a level shifter (5V to 3V) for the data lines. While you do have the display powered with 3.3V the voltage levels on D4 & D5 will still be ~5V when powered via USB.
This can damage the controller and the display over time, thus reducing the overall lifetime of the display.

I have an example i wrote to work with an arduino Mega here:
Code: [Select]
/*****************************************************/
/*
C0216CiZ.c

  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation; either version 2 of the License, or
  (at your option) any later version.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.
*/
/*****************************************************/

/*****************************************************/
unsigned char text1[]={"NEWHAVEN Display"};
unsigned char text2[]={"2x16 LCD Module "};
unsigned char text3[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f};
unsigned char text4[]={0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f};
/*****************************************************/
#define SDO 22            //Serial data
#define SCLK 23            //Serial clock
#define RESET 24             //RESETET
/*****************************************************/
const char Slave = 0x7C;
const char Comsend = 0x00;
const char Datasend = 0x40;
const char Line2 = 0xC0;
/*****************************************************/

/*****************************************************/
void I2C_out(unsigned char j)       //I2C Output
{
  int n;
  unsigned char d;
  d=j;
  for(n=0;n<8;n++){
    if((d&0x80)==0x80)
    digitalWrite(SDO, HIGH);
    else
    digitalWrite(SDO, LOW);
    d=(d<<1);
    digitalWrite(SCLK, LOW);
    digitalWrite(SCLK, HIGH);
    digitalWrite(SCLK, LOW);
    }
  digitalWrite(SCLK, HIGH);
  while(SDO==HIGH){
    digitalWrite(SCLK, LOW);
    digitalWrite(SCLK, HIGH);
    }
  digitalWrite(SCLK, LOW);
}
/*****************************************************/
void I2C_Start()
{
  digitalWrite(SCLK, HIGH);
  digitalWrite(SDO, HIGH);
  digitalWrite(SDO, LOW);
  digitalWrite(SCLK, LOW);
}
/*****************************************************/
void I2C_Stop()
{
  digitalWrite(SDO, LOW);
  digitalWrite(SCLK, LOW);
  digitalWrite(SCLK, HIGH);
  digitalWrite(SCLK, HIGH);
}
/*****************************************************/
void Show(unsigned char *text) // Display text
{
  int n, d;
  d=0x00;
  I2C_Start();
  I2C_out(Slave);
  I2C_out(Datasend);
  for(n=0;n<16;n++){
    I2C_out(*text);
    ++text;
    }
  I2C_Stop();
}
/*****************************************************/
void nextline(void)  // Move to Line 2
{
  I2C_Start();
  I2C_out(Slave);
  I2C_out(Comsend);
  I2C_out(Line2);
  I2C_Stop();
}
void CGRAM (void) 
{
  I2C_Start();
  I2C_out(Slave);
  I2C_out(Comsend);
  I2C_out(0x38);    //go to instructino table 0
  I2C_out(0x40);    //Set CGRAM addRESETs to 0x00
  I2C_Stop();
  delay(10);
 
  I2C_Start();
  I2C_out(Slave);
  I2C_out(Datasend);
  I2C_out(0x00);    //write to first CGRAM addRESETs
  I2C_out(0x1E);
  I2C_out(0x18);
  I2C_out(0x14);
  I2C_out(0x12);
  I2C_out(0x01);
  I2C_out(0x00);
  I2C_out(0x00);    //8 bytes per character
  I2C_out(0x00);
  //continue writing to remaining CGRAM if desired
  I2C_Stop();
}
/****************************************************
*           Initialization For ST7032i              *
*****************************************************/
void init_LCD()
{
  I2C_Start();
  I2C_out(Slave);
  I2C_out(Comsend);
  I2C_out(0x38);
  delay(10);
  I2C_out(0x39);
  delay(10);
  I2C_out(0x14);
  I2C_out(0x78);
  I2C_out(0x5D);
  I2C_out(0x6D);
  I2C_out(0x0C);
  I2C_out(0x01);
  I2C_out(0x06);
  delay(10);
  I2C_Stop();
 
  //CGRAM();      //define CGRAM
 
  I2C_Start();
  I2C_out(Slave);
  I2C_out(Comsend);
  I2C_out(0x39);   
  I2C_out(0x01);    //go back Home
  I2C_Stop();
  delay(10);
}
/*****************************************************/
/*****************************************************/


void setup() {
  pinMode(RESET, OUTPUT);
  pinMode(SDO, OUTPUT);
  pinMode(SCLK, OUTPUT);
  digitalWrite(RESET, LOW);
  delay(10);
  digitalWrite(RESET, HIGH);
  delay(100);

}

void loop() {
  init_LCD();
  delay(2);
  Show(text1);
  nextline();
  Show(text2);
  delay(2500);
  while(1){
    digitalWrite(SDO, HIGH);
    delay(1000);
  }
       

}



2
Character LCDs / NHD-C0216CiZ-FSW-FBW-3V3 with arduino nano
« Last post by litun on Today at 06:49:29 AM »
Dear all,
            I have this(NHD-C0216CiZ-FSW-FBW-3V3) display and arduino nano.
But after a lot of trials, i could not get it working. Please help.

I have made connections as per the datasheet.
RST: high to 3.3V
VDD to 3.3V
VSS to GND
Vout connected to VDD through a 1uF cap
C- an C+ connected together through a 1uF cap
SCL to D5(Arduino)
SCL to D4(Arduino)
Could not figure out what is wrong. Tried some arduino code from the forum. Bot nothing works.
3
OLEDs / Re: Characters Mirrored on NHD-0420CW Display
« Last post by Saurabh_B on September 18, 2017, 10:30:24 AM »
Hello Garry,

Would it be possible to send me a picture of the back of the display as well?

I would like to see the date code and the bonding of the OLED Glass to the PCB. I would like to confirm that these are connected properly as well.
I haven't been able to replicate this issue.

Has this occurred on multiple displays or have you only been able to test 1?
4
TFTs / Re: Rotate the display upsidedown (180)
« Last post by Saurabh_B on September 15, 2017, 08:12:14 AM »
What is the part number of the display you are using.

It would help to look at the driver to see if there are any pins that let you change the scan direction (up/down & left/right)
5
OLEDs / Re: Characters Mirrored on NHD-0420CW Display
« Last post by garryg on September 14, 2017, 09:52:30 PM »
Not sure what else I can try?
I have tried the ENTRY SET MODE as suggested with results posted in previous post.
I have also tried the REV instruction with no success.
Not sure where else to look.  I have spent days on this problem.
Any help is much appreciated.  Thank you.
6
TFTs / Re: NHD-5.0-800480TF-ATXL-CTP: Image distorted at certain regions
« Last post by emilzacharia on September 14, 2017, 02:30:04 AM »
Attaching the other images separately due to size constrain.
7
TFTs / NHD-5.0-800480TF-ATXL-CTP: Image distorted at certain regions
« Last post by emilzacharia on September 14, 2017, 02:28:55 AM »
Hi,
We're using NHD-5.0-800480TF-ATXL-CTP for our Korsan(Wifi Display) project.

When we applied the clock and data as described in the timing diagram in page#12, the image displayed by the LCD was distorted in some regions(see DISTORTED.JPEG ).
The data change is in the rising edge of the clock as required.
See tek00087.png of the pixel clock and a signal below(Dark blue:Clock, Light Blue:Data)

After several debugging steps, when the clock was inverted using a NOT Gate externally and applied to LCD, the image was displayed fine ( see OK.JPEG ).
The pixel clock and a data line in this case is shown in tek00088.png. You can see the data transition occurring in falling edge of clock.

Also, the minimum setup time and hold time is specified as 8ns in Page#10.
Based on the given data, we could infer that the data is sampled on the falling clock edge.

This required setup time and hold time are properly followed in the first case where we got distorted image.

In the PCLK inverted case, this setup time and hold time seem to be improper, but we got clear image.

Please advise us wrt setup and hold time times described in your datasheet and what we observed in LCD.

Thanks in Advance.
Emil
8
OLEDs / Re: Characters Mirrored on NHD-0420CW Display
« Last post by garryg on September 14, 2017, 02:21:53 AM »
The original initialization code posted above already included ENTRY MODE SET 0x06 (see line 12)
The photos posted below are using 0x04 and 0x05 for the ENTRY MODE SET value.



9
OLEDs / Re: Not able to interface display with AT32UC3C0128C (32bit Microcontroller)
« Last post by nathanbabu on September 14, 2017, 12:12:00 AM »
Dear Sir,

Parallel Mode 4 Bit Interface we are using. It is working fine in Arduino but not able interface with 32 bit microc ontroller.
10
OLEDs / Re: Characters Mirrored on NHD-0420CW Display
« Last post by Saurabh_B on September 13, 2017, 03:53:40 PM »
From the Photo it looks like the segments are going backwards.

Can you try sending a 0x2A (Function Set, RE = 1)
followed by the Entry mode set(0b000001XY) where y could be a 0 or 1, this should stop the mirroring on the display.
Pages: [1] 2 3 ... 10