LCD is not working: DOGM204-A

Hi,

i read, that i can use the DOGLCDs alsmost out of the box via IC2. So i bought one of these guys. But i simply cannot get it to work:

what i did: i connected the pins 44-41, 37-33 and 31 to the 3,3v of the arduino, pins 38 and 39 to SDA, 40 to SCL and 31, 23-30 to GND of the arduino.

Then i installed the liquidcristal lib and opened the example code:

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>



#define BACKLIGHT_PIN     13

//LiquidCrystal_I2C lcd(0x20);  // Set the LCD I2C address

LiquidCrystal_I2C lcd(0x3D, BACKLIGHT_PIN, NEGATIVE);  // Set the LCD I2C address


// Creat a set of new characters
const uint8_t charBitmap[][8] = {
   { 0xc, 0x12, 0x12, 0xc, 0, 0, 0, 0 },
   { 0x6, 0x9, 0x9, 0x6, 0, 0, 0, 0 },
   { 0x0, 0x6, 0x9, 0x9, 0x6, 0, 0, 0x0 },
   { 0x0, 0xc, 0x12, 0x12, 0xc, 0, 0, 0x0 },
   { 0x0, 0x0, 0xc, 0x12, 0x12, 0xc, 0, 0x0 },
   { 0x0, 0x0, 0x6, 0x9, 0x9, 0x6, 0, 0x0 },
   { 0x0, 0x0, 0x0, 0x6, 0x9, 0x9, 0x6, 0x0 },
   { 0x0, 0x0, 0x0, 0xc, 0x12, 0x12, 0xc, 0x0 }
   
};

void setup()
{
   int charBitmapSize = (sizeof(charBitmap ) / sizeof (charBitmap[0]));

  // Switch on the backlight
  pinMode ( BACKLIGHT_PIN, OUTPUT );
  digitalWrite ( BACKLIGHT_PIN, HIGH );
  
  lcd.begin(20,4);               // initialize the lcd 

   for ( int i = 0; i < charBitmapSize; i++ )
   {
      lcd.createChar ( i, (uint8_t *)charBitmap[i] );
   }

  lcd.home ();                   // go home
  lcd.print("Hello, ARDUINO ");  
  lcd.setCursor ( 0, 1 );        // go to the next line
  lcd.print (" FORUM - fm   ");
  delay ( 1000 );
}

void loop()
{
   lcd.home ();
   // Do a little animation by writing to the same location
   for ( int i = 0; i < 2; i++ )
   {
      for ( int j = 0; j < 16; j++ )
      {
         lcd.print (char(random(7)));
      }
      lcd.setCursor ( 0, 1 );
   }
   delay (200);
}

But simply nothing (nothing) happens on the display!

Whats wrong there?!

Thanks a lot!

Pcace

Does the display light up and is simply not receiving input from the microcontroller or is it the case that the display doesn't even come on?

I'm guessing this is a typo
what i did: i connected the pins ...31 to the 3,3v of the arduino,

....and 31....to GND of the arduino.

Hi,

sorry, pin 31 was a typo! 31 to +3,3V
I still cannot get it to work and i really do not know why.
Running this IC2 "check" Programm, i get

Scanning...
I2C device found at address 0x3C !
done

or this (depends on what i do with pin 43 (+3,3 or GND)

Scanning...
I2C device found at address 0x3D !
done

That means that there is actually something!
Heres the sketch:

// --------------------------------------
// i2c_scanner
//
// Version 1
//    This program (or code that looks like it)
//    can be found in many places.
//    For example on the Arduino.cc forum.
//    The original author is not know.
// Version 2, Juni 2012, Using Arduino 1.0.1
//     Adapted to be as simple as possible by Arduino.cc user Krodal
// Version 3, Feb 26  2013
//    V3 by louarnold
// Version 4, March 3, 2013, Using Arduino 1.0.3
//    by Arduino.cc user Krodal.
//    Changes by louarnold removed.
//    Scanning addresses changed from 0...127 to 1...119,
//    according to the i2c scanner by Nick Gammon
//    http://www.gammon.com.au/forum/?id=10896
// Version 5, March 28, 2013
//    As version 4, but address scans now to 127.
//    A sensor seems to use address 120.
// 
//
// This sketch tests the standard 7-bit addresses
// Devices with higher bit address might not be seen properly.
//

#include <Wire.h>


void setup()
{
  Wire.begin();

  Serial.begin(9600);
  Serial.println("\nI2C Scanner");
}


void loop()
{
  byte error, address;
  int nDevices;

  Serial.println("Scanning...");

  nDevices = 0;
  for(address = 1; address < 127; address++ ) 
  {
    // The i2c_scanner uses the return value of
    // the Write.endTransmisstion to see if
    // a device did acknowledge to the address.
    Wire.beginTransmission(address);
    error = Wire.endTransmission();

    if (error == 0)
    {
      Serial.print("I2C device found at address 0x");
      if (address<16) 
        Serial.print("0");
      Serial.print(address,HEX);
      Serial.println("  !");

      nDevices++;
    }
    else if (error==4) 
    {
      Serial.print("Unknow error at address 0x");
      if (address<16) 
        Serial.print("0");
      Serial.println(address,HEX);
    }    
  }
  if (nDevices == 0)
    Serial.println("No I2C devices found\n");
  else
    Serial.println("done\n");

  delay(5000);           // wait 5 seconds for next scan
}

But still nothing on the display. So i downloaded the LiquidCrystal Lib, loaded an example, modified the IC2 Adress and still: nothing.

Here is the testcode:

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x3D);  // Set the LCD I2C address


const uint8_t charBitmap[][8] = {
   { 0xc, 0x12, 0x12, 0xc, 0, 0, 0, 0 },
   { 0x6, 0x9, 0x9, 0x6, 0, 0, 0, 0 },
   { 0x0, 0x6, 0x9, 0x9, 0x6, 0, 0, 0x0 },
   { 0x0, 0xc, 0x12, 0x12, 0xc, 0, 0, 0x0 },
   { 0x0, 0x0, 0xc, 0x12, 0x12, 0xc, 0, 0x0 },
   { 0x0, 0x0, 0x6, 0x9, 0x9, 0x6, 0, 0x0 },
   { 0x0, 0x0, 0x0, 0x6, 0x9, 0x9, 0x6, 0x0 },
   { 0x0, 0x0, 0x0, 0xc, 0x12, 0x12, 0xc, 0x0 }
   
};

void setup()
{
   int charBitmapSize = (sizeof(charBitmap ) / sizeof (charBitmap[0]));

  lcd.begin(16,2);               // initialize the lcd 
 lcd.home ();                   // go home
 lcd.print("Hello, ARDUINO ");  
  lcd.setCursor ( 0, 1 );        // go to the next line
  lcd.print (" FORUM - fm   ");
  delay ( 1000 );
}
  
void loop()
{
   lcd.home ();
   // Do a little animation by writing to the same location
   for ( int i = 0; i < 2; i++ )
   {
      for ( int j = 0; j < 16; j++ )
      {
         lcd.print (char(random(7)));
      }
      lcd.setCursor ( 0, 1 );
   }
   delay (200);
}

It would be awesome if someone could help me with that problem!!!

I also uploaded a picture of the display...

Ideas?!

Thanks,

Pcace

pcace:
But still nothing on the display.

My question still stands then:

Does the display light up and is simply not receiving input from the microcontroller or is it the case that the display doesn't even come on?

Oh, sorry,

its like on the picture: nothing happens, there is simply nothing happening on the display - it just stays really dark blue.
This display cannot light up, because there are no leds connected.

Thanks,

Pcace

pcace:
This display cannot light up, because there are no leds connected.

I don't know what that means.

I think that with many 2 and 4 line LCD's, if they are getting power correctly, the backlight is on, even is nothing is being sent or displayed.

If your display is not doing anything (not even lighting up), I would guess you do not have it wired properly.

This display cannot light up, because there are no leds connected.

Means, there is NO backlight in this LCD panel. It is optional available.
(EA DOGM204B-A: LCD-Textmodul, 59 x 21,3 mm, blau bei reichelt elektronik)

if it gets recognized as an IC2 device, any other Idea whats wrong here?

Thanks,

pcace

Where does the LiquidCrystal_I2C library come from? Is it proven to work? Does Electronic Assembly have a forum to ask on?


Rob

Oh, this is one of those displays with a custom integrated I2C interface.

It is not the same as a standard LCD display with a "backpack", and the "standard" libraries are inappropriate.

bperrybap is the expert on these, you will find his postings - and the information - in the "Displays" forum. :smiley: