reed switch

uwefed:
Ciao sollazzo

ma sono proprio necessari i diodi? leggendo con i due cicli for come ho scritto poco sopra non dovrebbe funzionare? dovrei riuscire a decodificare ogni singolo reed indipendentemente da quanti ce ne sono azionati.

8 1 1 1 1 1 1 1 1
7 1 1 1 1 1 1 1 1
6 0 0 0 0 0 0 0 0
5 0 0 0 0 0 0 0 0
4 0 0 0 0 1 0 0 0
3 0 0 0 0 0 0 0 0
2 1 1 1 1 0 1 1 1
1 1 1 1 1 1 1 1 1
A B C D E F G H

Considera questa posizione:
Nella riga 1,7 e 8 hai tutte la riga collegata con tutte le collonne.
La piedina in posizione E4 viene vista in A4, B4, ... H4 perché la corrente passa per i Reed delle righe 1,7,8 e nello stesso momento non viene rilevato l'assenza della piedina in E2.

Ciao Uwe

e se le righe le collego non ad un bus in comune ma ai singoli pin di output e ne attivo solamente uno alla volta?

voglio dire:

al primo ciclo for, setto high il pin della riga 1 e setto low i pin delle righe 2-8 e nel secondo for scorro tutte i pin delle colonne (quindi se rilevo corrente sono per forza della riga 1, in quanto tutte le altre colonne, anche se c'è un pezzo sopra, ha i pin disattivati quindi non passa corrente).
alla seconda iteriazione, setto high il pin della riga 2 e setto low i pin delle righe 1, 3-8, e scorro tutte i pin delle colonne (ora relativi alla riga 2), e cosi via.

forse non mi ero spiegato bene in questo passaggio.

effettivamente se le righe sono tutte alimentate non posso distinguere tra un pezzo in A4,B4 e così via, ma alimentandone solo una alla volta, e disattivando le altre, dovrei riuscirsci. almeno è quello che il mio cervello si ostina a farmi pensare :slight_smile: