NHD-0420D3Z-FL-GBW-V3 I2C library
Hi All,
Is there a recommended I2C library to use for the NHD-0420D3Z-FL-GBW-V3 for an Arduino Uno R3?
Thanks
Is there a recommended I2C library to use for the NHD-0420D3Z-FL-GBW-V3 for an Arduino Uno R3?
Thanks
0
-
Hi dql,
Here is some example code we have that uses the Arduino wire.h
#include <Wire.h>
#define RES 0
//Pin A4 = Data
//Pin A5 = Clock
const unsigned char slave = 0x3C;
const unsigned char com = 0;
const unsigned char dat = 0x40;
unsigned char packet[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
char const text1[] = ("Newhaven Display");
char const text2[] = ("LCD Test LN2 ");
char const text3[] = (" CHARACTER TEST ");
char const text4[] = (" LCD Display ");
char const text5[] = ("ABCDEFGHIJKLMOPQ");
char const text6[] = ("RSTUVWXYZabcdefg");
char const text7[] = ("hijklmnopqrstuvw");
char const text8[] = ("<(''<)|| <('')>|");
const char slave2w = 0x78;
const char Comsend = 0x00;
const char Datasend = 0x40;
void command(unsigned char c){
packet[0] = com;
packet[1] = c;
sendpacket(2);
}
void data(unsigned char d){
packet[0] = com;
packet[1] = d;
sendpacket(2);
}
void sendpacket(unsigned char x){
unsigned char ix;
Wire.beginTransmission(slave2w);
for(ix = 0; ix < x; ix++){
Wire.write(packet[ix]);
}
Wire.endTransmission();
}
void output()
{
int i;
command(0x01);
for(i=0;i<16;i++){
data(0x1F);
}
command(0xA0);
for(i=0;i<16;i++){
data(0x1F);
}
/*
command(0x01);
for (i=0;i<16;i++){
data(text1[i]);
}
command(0xA0);
for (i=0;i<16;i++){
data(text2[i]);
}
command(0xC0);
for (i=0;i<16;i++){
data(text3[i]);
}
command(0xE0);
for (i=0;i<16;i++){
data(text4[i]);
}
*/
}
void setup() {
pinMode(RES, OUTPUT);
pinMode(2, OUTPUT);
digitalWrite(2, LOW);
digitalWrite(RES, HIGH);
delay(10);
digitalWrite(RES, LOW);
delay(100);
digitalWrite(RES, HIGH);
Wire.begin();
delay(10);
command(0x2A); //function set (extended command set)
command(0x71); //function selection A, disable internal Vdd regualtor
data(0x5c);
command(0x28); //function set (fundamental command set)
command(0x08); //display off, cursor off, blink off
command(0x2A); //function set (extended command set)
command(0x79); //OLED command set enabled
command(0xD5); //set display clock divide ratio/oscillator frequency
command(0x70); //set display clock divide ratio/oscillator frequency
command(0x78); //OLED command set disabled
command(0x08); //extended function set (2-lines)
command(0x06); //COM SEG direction
command(0x72); //function selection B, disable internal Vdd regualtor
data(0x00); //ROM CGRAM selection
command(0x2A); //function set (extended command set)
command(0x79); //OLED command set enabled
command(0xDA); //set SEG pins hardware configuration
command(0x10); //set SEG pins hardware configuration
command(0xDC); //function selection C
command(0x00); //function selection C
command(0x81); //set contrast control
command(0x7F); //set contrast control
command(0xD9); //set phase length
command(0xF1); //set phase length
command(0xDB); //set VCOMH deselect level
command(0x40); //set VCOMH deselect level
command(0x78); //OLED command set disabled
command(0x28); //function set (fundamental command set)
command(0x01); //clear display
command(0x80); //set DDRAM address to 0x00
command(0x0C); //display ON
delay(100);
}
void loop() {
for(int i = 0x21; i < (0x21+16); i++){
data(i);
}
delay(1000);
}Best Regards,
0
Please sign in to leave a comment.
Comments
1 comment