Consulta sobre LCD "extraño"

Buenas gente, hoy recurro a ustedes por que ya no me da.jaja Habalando en serio, estoy tratando de reutilizar un display LCD de un lavarropas, la cuestion es que no logro entender como funciona, mirando la placa no tiene ningun controlador, solo 3 registros de desplazamiento, 74hc595 para ser exactos, estuve probando enviando datos de forma serial utilizando un arduino mega, por comodidad mas que nada, ya que se me hace mas rapido trabajar con la pc, viendo que datos envio etc, tendra alguien idea de como dar con la combinacion de bits que haga aparaecer tal o cual caracter?, (por cierto los caracteres los trae ya definidos) o alguna sugerencia, link o algo que me ayude a comprender el funcionamiento de este lcd? cualquier cosa se los agradeceria. djunto codigo de arduino que estoy utilizando y unas fotos del LCD.

Código:
const int led=13;
long int dato=0;
char ch;
int b=0;
int latchpin=22,clockpin=23,datapin=24;
//Pin conectado a SH_CP of 74HC595 (marron clock)
//Pin conectado a ST_CP of 74HC595 (Celeste latch)
//Pin connected to DS of 74HC595  (blanco data)

void setup() {
  Serial.begin(9600);
  Serial.flush();
  pinMode(led,OUTPUT);
  pinMode(latchpin,OUTPUT);
  pinMode(clockpin,OUTPUT);
  pinMode(datapin,OUTPUT);
}

void loop() {
 /* String codigo="";
  b=0;
   do{
    if(Serial.available()){
      ch=Serial.read();
      Serial.print(ch);
      codigo+=ch;
      b++;
    }}while(ch!='=');
    
    if (b!=0){
      dato=codigo.toInt();  
        Serial.print(" ");
        Serial.println(dato,BIN);
        Serial.flush();
        digitalWrite(clockpin,LOW);
        digitalWrite(latchpin, LOW) ; // Latch a LOW para que no varíe la salida
        shiftOut(datapin, clockpin, MSBFIRST, dato>>16);  // Aqui va dato los primeros 8 bits de mas peso
        shiftOut(datapin, clockpin, MSBFIRST, dato>>8);  // Aqui va dato los los 8 bits centrales
        shiftOut(datapin, clockpin, MSBFIRST, dato);  // Aqui va dato los 8 bits de menos peso
        digitalWrite(latchpin, HIGH) ; // Latch a HIGH fija valores en la salida
        delay(5);
        }*/
    for (long int i=59;i<=16777215;i++){
        digitalWrite(clockpin,LOW);
        digitalWrite(latchpin, LOW) ; // Latch a LOW para que no varíe la salida
        shiftOut(datapin, clockpin, MSBFIRST, i>>16);  // Aqui va dato los primeros 8 bits de mas peso
        shiftOut(datapin, clockpin, MSBFIRST, i>>8);  // Aqui va dato los los 8 bits centrales
        shiftOut(datapin, clockpin, MSBFIRST, i);  // Aqui va dato los 8 bits de menos peso
        digitalWrite(latchpin, HIGH) ; // Latch a HIGH fija valores en la salida
        delay(1000);
        Serial.print(i);
        Serial.print("= ");
        Serial.println(i,BIN);}
}
 

Adjuntos

  • 2015-05-25-498[1].jpg
    2015-05-25-498[1].jpg
    54.5 KB · Visitas: 45
  • 2015-05-25-502[1].jpg
    2015-05-25-502[1].jpg
    105.9 KB · Visitas: 40
Hola, bueno tienes al menos dos opciones para lo que deseas hacer.
1ro. Busca en la red las características del LCD tratando de obtener algún datasheet, que en cierta manera dudo, ya que parece ser un desarrollo exclusivo.
2do. Opción, busca el datasheet del 74HC595, que es un registro serie a paralelo. Deberás armar el esquema completo según el impreso, de ahí podrás entender cómo se reciben los datos y las señales de control para hacer funcionar dicho registro.
Luego a ensayos determinar que dato direcciona el símbolo a representar en dicho LCD.
 
Última edición:
gracias por tu respuesta Gudino Roberto duberlin, la verdad es que entiendo como se reciben los datos, de hecho ya estoy haciendo los ensayos correspondientes, el problema esta en que hay demasiadas combinaciones que cubrir y es un trabajo de nunca acabar, como son 3 74HC595, serian como 2^24 posibilidades no? no se si habra alguna forma de acortar camino o algo asi.
 
Atrás
Arriba