Une touche est appuyée
(deux boutons par broche)?
Voir la page Deux boutons par broche qui décrit ce montage.
En utilisant les mêmes broches que pour le montage "Une touche est appuyée (un bouton par broche)?" mais avec 12 boutons, on peut utiliser la même astuce, mais il faut deux octets pour faire la mémorisation. Les broches 2 à 7 sont en INPUT ou en INPUT_PULLUP. Pour lire les boutons "du bas", il faut se mettre en INPUT_PULLUP. On peut alors utiliser:
PORTD |= 0b11111100; // Passage vers INPUT_PULLUP
Et pour mettre les broches en INPUT:
PORTD &= 0b00000011; // Passage vers INPUT
Je ne développe pas plus, ce montage étant très peu utilisé