Toetsenblok verbonden met slechts 3 draden aan de Arduino. Achtergrond:
Een matrix-toetsenbord kan worden aangesloten op een Arduino board zodat numerieke gegevens kunnen worden ingevoerd door de gebruiker.
Instructies bestaan in verschillende fora over hoe dit te doen. Het grootste probleem is dat deze meestal maakt gebruik van een totaal van 7 van uw digitale input/output pinnen.
Het probleem:
Voor mij is dit een groot probleem als ik wil deze pinnen vrij om te bepalen van externe apparaten zoals magneetafsluiters en actuatoren. Ik moet ook enkele gegevens te sturen naar een serieel LCD-scherm.
Opties zijn ofwel
a) gebruik een Arduino Mega met veel meer pinnen of
b) een manier van interfacing een toetsenbord met behulp van minder input pins vinden.
Oplossing:
Met behulp van één enkele analoge invoer pin en een raster van weerstanden, kunnen we kabellengte tot de knoppen op het toetsenbord zodanig dat wanneer elk wordt ingedrukt een verschillende spanning wordt verzonden naar de analoge input pin.
Hoewel er een ruzie bedrading van alle de weerstanden, is het grote voordeel dat alle uw digitale pinnen vrijstaan om te worden gebruikt voor andere dingen.
Dit is beschreven voor op AVR forums maar ik heb aangepast voor Arduino en geschreven wat code voor u aan de slag.