Kijk, dat is belangrijke informatie.
Het blijkt dus dat er toch andere hardware gebruikt zal worden, waardoor je wel degelijk de "zwevende" situatie zult hebben.
En het blijkt dat je ook al een matrix hebt.
Je kunt je matrix direct aansluiten op je Arduino, dus zonder weerstanden.
Vervolgens maak je een programma dat telkens kolom A, B of C hoog maakt.
Daarna kijk je of je op rij 1,2 3 of 4 ook een hoog ziet verschijnen.
Wanneer dat het geval is, weet je welke toets er ingedrukt is.
Wanneer er geen toets is ingedrukt, ga je naar de volgende kolom (A, B of C) en doe je hetzelfde trucje.
Dat is de werkelijke kracht van de matrices.
Maar je wil graag een iets andere aanpak meen ik te zien.
In het figuur hierboven moet je altijd 2 toetsen ingedrukt hebben om een andere waarde te kunnen zien dan nul.
Dus denk ik niet dat dat is wat je werkelijk wil en wat je werkelijk hebt met je matrix toetsenbord.
Er vanuit gaande dat je nooit meer dan 1 toets gelijktijdig indrukt, kun je wel iets maken.
A B C
1 # # #
2 # # #
3 # # #
4 # # #
Ik neem aan dat dit de layout is van je matrix (want dat is de standaard).
op die manier kun je dan een eigen weerstandswaarde toewijzen aan telkens A, B, C en 1, 2, 3 en 4.
Nul is ook een waarde dus waarom zou je die niet gebruiken.
Wanneer je het volgende doet, moet je eigenlijk al een heel eind komen:
Bij elke kolom komt er 10K bij en we beginnen bij nul, bij elke rij (van onder naar boven) komt er 1K bij en we beginnen ook met nul.
De weerstand naar GND heb ik wat hoger gemaakt zodat de 5 volt niet te hard naar beneden getrokken zal worden.
De toets linksonder zet dus 5 volt over de 2K2 weerstand en zal 5 volt op je analoge ingang zetten, dus 1023 opleveren
De toets daarnaast zal via 10K en 2K2 een spanningsdeler maken, en zal ergens rond 1/6e van de 1023 uitkomen.
De toets daar weer naast zal via 20K en 2K2 rond 1/10e uitkomen.
Zo heeft dan iedere combinatie een uniek resultaat.
Wellicht kom je met een iets andere bedrading handiger uit, maar je kunt dit met je software vertalen naar de juiste toetsen.
Je kunt ook allemaal 2K2 voor de rijen gebruiken en misschien zo wat beter uitkomen om onderscheid te maken tussen de verschillende toetsen, ik zou dat gewoon eens proberen.
Overigens, ga niet precies op een specifieke waarde testen, want er kunnen allerlei variaties optreden.
Dus gebruik een bepaalde range van waarden per toets, dan maak je het wat betrouwbaarder.
Probeer het eens en laat weten wat je resultaten zijn, ik ben benieuwd.