I2C on NHD-C0216CiZ-FSW-FBW-3V3

Comments

2 comments

  • Michael_L

    I have some Arduino code for this display below:

    #include <Wire.h>

    int RES = 22;
    int ASDA = 20;
    int ASCL = 21;

    int test = 55;

    unsigned char text1[]={"Newhaven Display"};
    unsigned char text2[]={"    I2C TEST    "};
    unsigned char text3[]={" March 21 2014  "};
    unsigned char text4[]={" Michael LaVine "};

    const char slave2w = 0x3E;  //3E for CiZ (0x7C shifted over 1 bit)  //3C for BiZ (0x78 shifted over 1 bit)
    const char comsend = 0x00;
    const char datasend = 0x40;
    const char line2 = 0xC0;

    void show(unsigned char *text)
    {
      int n, d;
      d=0x00;
      Wire.beginTransmission(slave2w);
      Wire.write(datasend);
      for(n=0;n<16;n++)
      {
        Wire.write(*text);
        ++text;
      }
      Wire.endTransmission();
    }

    void nextline(void)
    {
      Wire.beginTransmission(slave2w);
      Wire.write(comsend);
      Wire.write(line2);
      Wire.endTransmission();
    }

    void CGRAM(void)
    {
      Wire.beginTransmission(slave2w);
      Wire.write(comsend);
      Wire.write(0x38);
      Wire.write(0x40);
      Wire.endTransmission();
      delay(10);
      Wire.beginTransmission(slave2w);
      Wire.write(datasend);
      Wire.write(0x00);
      Wire.write(0x1E);
      Wire.write(0x18);
      Wire.write(0x14);
      Wire.write(0x12);
      Wire.write(0x01);
      Wire.write(0x00);
      Wire.write(0x00);
      Wire.endTransmission();
    }

    void CiZ_init()
    {
      Wire.beginTransmission(slave2w);
      Wire.write(comsend);
      Wire.write(0x38);
      delay(10);
      Wire.write(0x39);
      delay(10);
      Wire.write(0x14);
      Wire.write(0x70);
      Wire.write(0x5E);
      Wire.write(0x6D);
      Wire.write(0x0C);
      Wire.write(0x01);
      Wire.write(0x06);
      Wire.endTransmission();
     
      CGRAM();
     
      Wire.beginTransmission(slave2w);
      Wire.write(comsend);
      Wire.write(0x39);
      Wire.write(0x01);
      test = Wire.endTransmission();
      Wire.endTransmission();
      if(test!=0)
      {
        while(1)
        {
          delay(100);
        }
      }
      delay(10);
    }

    void setup()
    {
      pinMode(RES, OUTPUT);
      pinMode(ASCL, OUTPUT);
      pinMode(ASDA, OUTPUT);
      digitalWrite(RES, HIGH);
      delay(10);
      digitalWrite(ASCL, LOW);
      digitalWrite(ASDA, LOW);
      delay(10);
     
      delay(10);
      //CiZ_init();
      //delay(5);
    }

    void loop()
    {
     
      Wire.begin();
      //TWBR = 12;
      //TWSR |= _BV(TWPS0);
      while(1)
      {
      CiZ_init();
      show(text1);
      nextline();
      show(text2);
      delay(1000);
     
      CiZ_init();
      show(text3);
      nextline();
      show(text4);
      delay(1000);
      }
    }

     

    0
  • SteveS

    Thanks for your help Michael - I will give it a try.
    Regards,
    Steve

    0

Please sign in to leave a comment.