Decodage HT1621B avec arduino

Bonjour à tous, nouvel utilisateur depuis quelques moi, je trouve ce produit génial.

Je suis en train de réparer un afficheur, le LCD est HS je veux donc utiliser un arduino pour récuperer les trames.
Le composant est un HT1621B.
Il utilise 3 informations CS, DATA et WR. SI j'ai bien compris lorsque CS est à LOW sur front montant de WR il faut récuperer la valeur DATA.

J'ai fais ce code mais les valeurs ne correspondent à rien. Pensez vous que la vitesse d'acquisition est limite ou si vous voyez qqchose dans le code ou une idée je suis preneur.
Merci d'avance de votre aide:

/*
Récuperation des données du SPA GD 3003
*/
#define CS 4
#define DATA 3
#define WR 2

int buttonPushCounter = 0; // variable pour le comptage du nombre d'appuis sur le bouton poussoir
bool boutonEtat = 0; //Variable pour l'état actuel du bouton poussoir
bool LastWR = 0; // Variable pour l'état précédent du bouton poussoir
int i = 0;
int j =0;
bool EtatCS = 0;
bool EtatDATA = 0;
bool EtatWR =0 ;
boolean TABLEAU[200];

// the setup function runs once when you press reset or power the board
void setup() {

Serial.begin (115200);
pinMode(CS, INPUT);
pinMode(DATA, INPUT);
pinMode(WR, INPUT);
i=0;

}

// the loop function runs over and over again forever

void loop()
{

EtatCS = digitalRead(CS);
if (EtatCS == LOW)
{
EtatWR = digitalRead(WR);

// Si le bouton a un état différent de celui enregistré ET
// que cet état est "haut"
if((EtatWR != LastWR) && (EtatWR == HIGH))
{
EtatDATA = digitalRead(DATA);
// Serial.print(EtatDATA);
TABLEAU =EtatDATA;

  • i=i+1;*

  • }*

  • // on enregistre l'état du bouton pour le tour suivant*

  • LastWR = EtatWR;*

  • }*

  • else {*
    //if ((TABLEAU[0] == HIGH) && (TABLEAU[1] == LOW) && (TABLEAU[2] == HIGH) ){

  • for ( j = 0; j < i; j++) //Efface le texte deja ecrit*

  • {*

  • if (j==0){ Serial.println("");}*

  • Serial.print(TABLEAU[j]);*

  • // j++;*

  • }*

  • // }*
    i=0;

  • } *

}

1 Like