Volet automatique

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='*';

J'ai commencé le code par :

           if (ltr=='*') // volet
           { }


Merci d'avance pour votre aide.

:warning:
Post mis dans la mauvaise section, on parle anglais dans les forums généraux. déplacé vers le forum francophone.

Merci de prendre en compte les recommandations listées dans Les bonnes pratiques du Forum Francophone

Salut.
Une librairie te soulagerait : Keypad, installable depuis l'IDE.
Regarde cet exemple :

Avec cette librairie, les résistances R1 à R4 sont inutiles.
Et elle gère les rebonds !

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

Du coup ton code ne marche pas ?

il marche, il faudrait juste que je rajoute le programme si vous avez des idées

Quel que soit le keypad, s'il fonctionne en matrice comme dans ton cas, cette librairie fait le job.

Il serait bien de dire ce que tu entends par rajouter le programme : activer la broche X3 du 4052 ?

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.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.