Stap 4: De Code
Bijgevoegd is de code.
De echte kern van het script gebeurt in een functie die moet worden aangeroepen voor elke lus. Deze functie controleert precies één knop. Het verzendt een patroon van bits naar het shift register waarin alle knoppen behalve de knop van de ene doel voor deze lus heeft uitgeschakeld. Het wordt vervolgens de status van de invoer pin gecontroleerd op dit moment: als het hoog, is deze knop wordt gedrukt, als lage de knop niet. Het vergelijkt vervolgens deze stand tegen de vorige staat voor deze knop om te beslissen als de gebruiker iets nieuw of niet net. Het staat voor deze knop slaat en vooruitgang een index zodat de knop volgende in volgorde worden gecontroleerd in de next-lus. Ik omvatte ook een timer zodat kunt u het script voor CPU-gebruik vs. knop gevoeligheid afstemmen.
Laat me weten als u fouten vindt.
Ik hoop dat dit helpt iedereen die wordt geconfronteerd met het probleem van het moeten omgaan met inbreng van een groot aantal knoppen gebruiken van de minst aantal Arduino pinnen. Ik ben zeer geïnteresseerd in de hoorzitting van wie heeft dit probleem op een andere manier opgelost.