Bonjour,
Sur ma carte Arduino, je souhaite pouvoir capter l'appui de 8 boutons, mais je ne dispose plus que d'une seule entrée d’interruption.
Par ailleurs, le nombre de GPIO encore disponible est faible.
J'ai donc imaginé le montage suivant. Voir image en pièce jointe.
Mes 8 boutons alimentent un registre à décalage PISO 8 bits (CD4021 - Parallel Input / Serial Output)
Ce registre est lui même connecté à l'arduino via 3 GPIO (Pin7=PSC, Pin8=CLCK et Pin9=DATA) pour le piloter et le lire.
Mes boutons convergent également vers mon entrée d'interruption arduino disponible, via des diodes.
Quand un bouton est pressé, le registre PISO est mis à jour.
Un interruption est également déclenchée sur l'arduino.
Dans mon code, l'ISR exécutés par l'interruption va alors verrouiller le registre PISO (via changement d'état sur la Pin7 => PSC (Parallel/Serial Control))
(C'est la seul action réalisée. C'est rapide et simple)
Une fois revenu dans la boucle LOOP de mon code, si le registre PISO est verrouillé, alors je vais lire sont contenu (transmission série des 8 bits, avec Pin9/CLCK et Pin8/DATA...) pour déterminer quel est le bouton qui a été enfoncé : l'un des 8 bits du registre.
Est-ce que cela peut fonctionner de cette manière ?
Merci pour votre aide,
-----