Go Down

Topic: Petite question sur le PCA9555 polarite des entrees (Read 827 times) previous topic - next topic

albertrand

Bonsoir a tous et toutes.
J'ai une petite question sur le PCA9555 (adresse du data sheeld:http://www.nxp.com/documents/data_sheet/PCA9555.pdf).
Est-il possible de commander les Entrées en 5v(+) car pour le moment je ni suis arrivé quand utilisant le négatif.
J'ai testé en changeant les dif. registre "Polarity Inversion port 0 or 1", mais rien ni fait.
Merci .
Voissi une de mon code(je ne suis pas un spécialiste en programmation car débute) :

/*
The address for the PCA9555 is 0x20.

*/

#include <Wire.h> // specify use of Wire.h library.
int In;
int i;
int PCA_in1(0x20);  // adress PCA9555


void setup()   {
   Wire.begin();
  Serial.begin(9600);
   // Parametre input port 0 and 1
  Wire.beginTransmission(PCA_in1);  // set PCA9555
  Wire.send(0x04); //POINTEUR
  Wire.send(0x00);  // DDR Port0 port no invert
  Wire.send(0x00);  // DDR Port1 port no invert
  Wire.send(0xFF);  // DDR Port0 all  1
  Wire.send(0xFF);  // DDR Port1 all 0
  Wire.endTransmission(); 
 
  }  // end setup

void loop() {
  // read port 0
    Wire.beginTransmission(PCA_in1);
    Wire.send(0x01); // must act as a position pointer?
    Wire.endTransmission();
    Wire.requestFrom(PCA_in1, 1);    // request 1 byte
    In = Wire.receive(); // record  a byte

    if(In !=0) // is not value no print
{
Serial.print("Port 1 : ");
Serial.print(In,DEC);
Serial.print("  ");
Serial.println(In,BIN);
}


// read port 1
    Wire.beginTransmission(PCA_in1);
    Wire.send(0x00); // must act as a position pointer?
    Wire.endTransmission();
    Wire.requestFrom(PCA_in1, 1);    // request 1 byte
    In = Wire.receive(); // record a byte
 
    if(In !=0) // is not value no print
{
Serial.print("Port 2 : ");
Serial.print(In,DEC);
Serial.print("  ");
Serial.println(In,BIN);
}
    delay(100);

} // end loop

« Ungibus et Rostro » (De bec et d'ongles)

Go Up