Anybody who has any experience using the MM5453 LCD display driver?
I have built a prototype but I can't get it to work. All segments on the LCD are always on.
Wired it according to the datasheet https://www.ti.com/lit/ds/symlink/mm5453.pdf.
Test code below:
void loop(){
static boolean segments[32] = { 1,0,1,1,0,1,1,1, //1-8
0,1,1,1,1,0,1,1, //9-16
1,1,1,0,1,1,1,1, //17-24
1,1,0,1,1,1,1,1}; //25-32
//First send a startbit 1
digitalWrite(CLOCK_PIN, HIGH);
digitalWrite(CLOCK_PIN, LOW);
digitalWrite(DATA_PIN, HIGH);
//Send the 32 bits of data
for (uint8_t i = 0; i < 32; i++){
digitalWrite(CLOCK_PIN, HIGH);
digitalWrite(CLOCK_PIN, LOW);
digitalWrite(DATA_PIN, segments ? HIGH : LOW);
}
//3 more clock pulses to get a total of 36 clock pulses
for (uint8_t i = 0; i < 3; i++){
digitalWrite(CLOCK_PIN, HIGH);
digitalWrite(CLOCK_PIN, LOW);
}
}
I have built a prototype but I can't get it to work. All segments on the LCD are always on.
Wired it according to the datasheet https://www.ti.com/lit/ds/symlink/mm5453.pdf.
Test code below:
void loop(){
static boolean segments[32] = { 1,0,1,1,0,1,1,1, //1-8
0,1,1,1,1,0,1,1, //9-16
1,1,1,0,1,1,1,1, //17-24
1,1,0,1,1,1,1,1}; //25-32
//First send a startbit 1
digitalWrite(CLOCK_PIN, HIGH);
digitalWrite(CLOCK_PIN, LOW);
digitalWrite(DATA_PIN, HIGH);
//Send the 32 bits of data
for (uint8_t i = 0; i < 32; i++){
digitalWrite(CLOCK_PIN, HIGH);
digitalWrite(CLOCK_PIN, LOW);
digitalWrite(DATA_PIN, segments ? HIGH : LOW);
}
//3 more clock pulses to get a total of 36 clock pulses
for (uint8_t i = 0; i < 3; i++){
digitalWrite(CLOCK_PIN, HIGH);
digitalWrite(CLOCK_PIN, LOW);
}
}