Stap 12: Code schrijven om te testen elke pin
Downloaden van de schets van de Arduino aangesloten op deze stap en toegankelijk op opwaarts. U zult merken dat het ziet er een beetje ingewikkelder dan de code uit stap 7, maar het is voor een goede reden. In de eerste plaats bevat de code een debouncing routine die kan controleren de staat van een willekeurig aantal pinnen. In de tweede plaats de code wordt een matrix gebruikt om te houden van alle van de pin-codes, zodat u alleen hoeft te bewerken een variabele wanneer u wilt toevoegen of verwijderen van de pinnen van uw speelgoed, in plaats van duiken in de gehele schets!
Debouncing
Debouncing mogelijk nodig met bepaalde soorten knoppen vanwege iets genaamd mechanische contact chatter, of "stuiteren". Dit gebeurt wanneer de twee metalen stukken voor een switch contact, en vervolgens "bounce" uit elkaar voor een kort moment maken. Dit gebeurt zo snel dat u het niet in de seriële Monitor of door aanraking merken, zou je pas echt weten over het uit de problemen die dit zal veroorzaken, of door te kijken naar het signaal op een oscilloscoop.
Er zijn vele technieken die men gebruiken kan om te debouncing ingangen, maar ik ben met behulp van een techniek uiteengezet door Nils "ladyada" gebakken hier: http://www.adafruit.com/blog/2009/10/20/example-code-for-multi-button-checker-with-debouncing/
Met behulp van de schets
Ik test één pin tegelijk, gewoon om de probleemoplossing te vergemakkelijken. Bijwerken van de array van knoppen [] om te bevatten het pin-nummer van de pin die u wilt testen en vervolgens uploaden van de schets aan uw Teensy. Open de Seriële Monitor en kijk voor berichten die worden verzonden vanaf uw Teensy. De schets stuurt een bericht telkens wanneer een knop wordt ingedrukt en vrijgegeven, die aangeeft het pin nummer dat opgenomen de gebeurtenis. Als je eenmaal een pin werkt weet, kun je het in de matrix. Wanneer u op naar de volgende pin verplaatsen, toevoegen aan het einde van de array, zodat tegen het einde, al je rode knoppen worden toegevoegd aan de code.