Go Down

Topic: Problem MCP23009 with LCD (Read 88 times) previous topic - next topic

Krummy57

Hello,

Having an old LCD to plug it into I2C I need a MCP23009 only when I run my program nothing happens I have my pin ADDR to mass so I do not know if I use the right address

Thank you for your help

Code: [Select]
#include <Wire.h>


void setup()
{
  // put your setup code here, to run once:

  // Ce qu'attend le MCP23009
  

//IODIR

 
Wire.begin(); // Condition de start, se déclare maître sur le bus I2C
Wire.beginTransmission(0x20); // Données de transmissions
// début de la transmission au périphérique d'adresse du MCP
Wire.write(0x00); // Registre IODIR
Wire.write(0x00); // Valeur IODIR
Wire.endTransmission(); // Condition stop
// envoi de la somme de contrôle et fin de transmission


//GPIO


Wire.begin(); // Condition de start
Wire.beginTransmission(0x20); // Données de transmissions
// début de la transmission au périphérique d'adresse du MCP
Wire.write(0x09); // Registre GPIO
Wire.write(0x00); // Valeur GPIO
Wire.endTransmission(); // Condition stop
// envoi de la somme de contrôle et fin de transmission


//GPPU


Wire.begin(); // se déclare maitre sur le bus i2c
Wire.beginTransmission(0x20); //
// début de la transmission au périphérique d'adresse du MCP
Wire.write(0x06); // Registre GPPU pull up
Wire.write(0xFF); // Valeur GPPU
Wire.endTransmission();
// envoi de la somme de contrôle et fin de transmission





   // Ce qu'attend l'afficheur   33 32 01 0F 28

  
  
// Passage en 4 bits (33,32)

// Registre GPIO
// Envoie 33


//MSB 3


Wire.begin();  // se déclare maitre sur le bus i2c
Wire.beginTransmission(0x20);
// début de la transmission au périphérique d'adresse du MCP
Wire.write(0x09); // accès GPIO
Wire.write(0x32);
Wire.write(0x30);
Wire.endTransmission();




//lSB 3


Wire.begin();  // se déclare maitre sur le bus i2c
Wire.beginTransmission(0x20) ;
// début de la transmission au périphérique d'adresse du MCP
Wire.write(0x09); // accès GPIO
Wire.write(0x32);
Wire.write(0x30);
Wire.endTransmission() ;


delay(100);


// Envoie 32



//MSB 3


Wire.begin();  // se déclare maitre sur le bus i2c
Wire.beginTransmission(0x20);
// début de la transmission au périphérique d'adresse du MCP
Wire.write(0x09); // accès GPIO
Wire.write(0x32);
Wire.write(0x30);
Wire.endTransmission();



//LSB 2


Wire.begin(); // se déclare maitre sur le bus i2c
Wire.beginTransmission(0x20);
// début de la transmission au périphérique d'adresse du MCP
Wire.write(0x09); // accès GPIO
Wire.write(0x22);
Wire.write(0x20);
Wire.endTransmission() ;

delay(100);



// Envoie 01

//MSB 0


Wire.begin();  // se déclare maitre sur le bus i2c
Wire.beginTransmission(0x20);
// début de la transmission au périphérique d'adresse du MCP
Wire.write(0x09); // accès GPIO
Wire.write(0x02);
Wire.write(0x00);
Wire.endTransmission() ;



//lSB 1


Wire.begin();  // se déclare maitre sur le bus i2c
Wire.beginTransmission(0x20);
// début de la transmission au périphérique d'adresse du MCP
Wire.write(0x09); // accès GPIO
Wire.write(0x12);
Wire.write(0x10);
Wire.endTransmission();

delay(100);

// Envoie 0F


//MSB 0


Wire.begin();  // se déclare maitre sur le bus i2c
Wire.beginTransmission(0x20);
// début de la transmission au périphérique d'adresse du MCP
Wire.write(0x09); // accès GPIO
Wire.write(0x02);
Wire.write(0x00);
Wire.endTransmission() ;




//lSB F


Wire.begin();  // se déclare maitre sur le bus i2c
Wire.beginTransmission(0x20);
// début de la transmission au périphérique d'adresse du MCP
Wire.write(0x09) ;// accès GPIO
Wire.write(0xF2);
Wire.write(0xF0);
Wire.endTransmission();

delay(100);


// Envoie 28


//MSB 2

Wire.begin();  // se déclare maitre sur le bus i2c
Wire.beginTransmission(0x20);
// début de la transmission au périphérique d'adresse du MCP
Wire.write(0x09); // accès GPIO
Wire.write(0x22);
Wire.write(0x20);
Wire.endTransmission();



//lSB 8

Wire.begin();  // se déclare maitre sur le bus i2c
Wire.beginTransmission(0x20);
// début de la transmission au périphérique d'adresse du MCP
Wire.write(0x09); // accès GPIO
Wire.write(0x82);
Wire.write(0x80);
Wire.endTransmission();

delay(100);
 








// AFFICHER PRENOM "KRUMMY"************************************************************


//AFF "K"



//MSB 4
Wire.begin();  // se déclare maitre sur le bus i2c
Wire.beginTransmission(0x20) ;
// début de la transmission au périphérique d'adresse du MCP
Wire.write(0x09); // accès GPIO
Wire.write(0x43);
Wire.write(0x41);
Wire.endTransmission();


//LSB B
Wire.begin();  // se déclare maitre sur le bus i2c
Wire.beginTransmission(0x20) ;
// début de la transmission au périphérique d'adresse du MCP
Wire.write(0x09); // accès GPIO
Wire.write(0xB3);
Wire.write(0xB1);
Wire.endTransmission();



delay(100);



//AFF "r"




//MSB 7


Wire.begin();  // se déclare maitre sur le bus i2c
Wire.beginTransmission(0x20) ;
// début de la transmission au périphérique d'adresse du MCP
Wire.write(0x09); // accès GPIO
Wire.write(0x73);
Wire.write(0x71);
Wire.endTransmission();


//LSB 2


Wire.begin();  // se déclare maitre sur le bus i2c
Wire.beginTransmission(0x20) ;
// début de la transmission au périphérique d'adresse du MCP
Wire.write(0x09); // accès GPIO
Wire.write(0x23);
Wire.write(0x21);
Wire.endTransmission();

delay(100);



//AFF "u"



//MSB 7
Wire.begin();  // se déclare maitre sur le bus i2c
Wire.beginTransmission(0x20) ;
// début de la transmission au périphérique d'adresse du MCP
Wire.write(0x09); // accès GPIO
Wire.write(0x73);
Wire.write(0x71);
Wire.endTransmission();


//LSB 5
Wire.begin();  // se déclare maitre sur le bus i2c
Wire.beginTransmission(0x20) ;
// début de la transmission au périphérique d'adresse du MCP
Wire.write(0x09); // accès GPIO
Wire.write(0x53);
Wire.write(0x51);
Wire.endTransmission();



delay(100);




//AFF "m"


//MSB 6
Wire.begin();  // se déclare maitre sur le bus i2c
Wire.beginTransmission(0x20) ;
// début de la transmission au périphérique d'adresse du MCP
Wire.write(0x09); // accès GPIO
Wire.write(0x63);
Wire.write(0x61);
Wire.endTransmission();


//LSB D
Wire.begin();  // se déclare maitre sur le bus i2c
Wire.beginTransmission(0x20) ;
// début de la transmission au périphérique d'adresse du MCP
Wire.write(0x09); // accès GPIO
Wire.write(0xD3);
Wire.write(0xD1);
Wire.endTransmission();

delay(100);





//AFF "m"


//MSB 6
Wire.begin();  // se déclare maitre sur le bus i2c
Wire.beginTransmission(0x20) ;
// début de la transmission au périphérique d'adresse du MCP
Wire.write(0x09); // accès GPIO
Wire.write(0x63);
Wire.write(0x61);
Wire.endTransmission();


//LSB 9
Wire.begin();  // se déclare maitre sur le bus i2c
Wire.beginTransmission(0x20) ;
// début de la transmission au périphérique d'adresse du MCP
Wire.write(0x09); // accès GPIO
Wire.write(0xD3);
Wire.write(0xD1);
Wire.endTransmission();

delay(100);



//AFF "y"


//MSB 7
Wire.begin();  // se déclare maitre sur le bus i2c
Wire.beginTransmission(0x20) ;
// début de la transmission au périphérique d'adresse du MCP
Wire.write(0x09); // accès GPIO
Wire.write(0x73);
Wire.write(0x71);
Wire.endTransmission();


//LSB 9
Wire.begin();  // se déclare maitre sur le bus i2c
Wire.beginTransmission(0x20) ;
// début de la transmission au périphérique d'adresse du MCP
Wire.write(0x09); // accès GPIO
Wire.write(0x93);
Wire.write(0x91);
Wire.endTransmission();

delay(100);





}

void loop() // Boucle
{



}

6v6gt

Start with an I2C scanner https://playground.arduino.cc/Main/I2cScanner/ and use pullup resistors (say 4.7k) on A4 and A5.

Then look at the adafruit I2C LCD backpack. It uses a similar chip (if MCP23008 and MCP23009 are similar, that is).


Krummy57

Super thank you very much I will use the scanner I2C but the resistance of puul-up I have already

Go Up