Bonjour, je suis actuellement entrain d'essayer d'écrire un programme Arduino pour mon projet afin de pouvoir fermer ou ouvrir les volets dès que j'appuyerais sur une touche. Voir les pièces jointes pour plus d'informations.
void loop() {
//Mise à 1 d'une colonne en sortie 8,9 ou 10
digitalWrite(n,HIGH);
//Détection de la touche appuyée (lecture des lignes)
if(digitalRead(A0)==HIGH && n==10) ltr='3';
if(digitalRead(A1)==HIGH && n==10) ltr='6';
if(digitalRead(A2)==HIGH && n==10) ltr='9';
if(digitalRead(A3)==HIGH && n==10) ltr='#';
if(digitalRead(A0)==HIGH && n==9) ltr='2';
if(digitalRead(A1)==HIGH && n==9) ltr='5';
if(digitalRead(A2)==HIGH && n==9) ltr='8';
if(digitalRead(A3)==HIGH && n==9) ltr='0';
if(digitalRead(A0)==HIGH && n==8) ltr='1';
if(digitalRead(A1)==HIGH && n==8) ltr='4';
if(digitalRead(A2)==HIGH && n==8) ltr='7';
if(digitalRead(A3)==HIGH && n==8) ltr='*';
Je comprends mais j'ai un keypad qui est différent, c'est comme des boutons poussoirs, c'est pour cela que le code est comme cela, j'ai juste besoin d'un code qui permet de pouvoir faire monter ou descendre un volet
J'avoue que ton schéma me laisse dubitatif. Tu utilises RX TX de la UNO, ce qui est en général plutôt déconseillé. C'est une ligne série réservée pour le chargement du code, et le debug (moniteur série).
Si tu utilisais un vrai expander du genre MCP23008 ou MCP23017, fonctionnant en I2C (2 fils), tu n'aurais pas besoin d'autant de broches que pour commander ces CD4052.
Du coup, cela libérerait quelques entrées analogiques, et libérerait probablement RX TX.
Il est à noter qu'un expander I2C est aussi capable de piloter un clavier matriciel, ce qui libérerait encore 8 GPIOs, au cas où il en manquerait.