Stap 3: De theorie - meerdere knoppen op één pin
U bedriegen! Het geheim van dit is het gebruik van een analoge input pin, niet digitaal.
U kunt lezen over hoe de analoge ingang werken door deze Arduino tutorialdoorlopen. In wezen, wat u moet weten al is dat wanneer er 0V op de analoge pin is, analogRead() resulteert in een waarde van 0 en als er 5V, analogRead een waarde van 1023 zal terugkeren. Voor een spanning tussen de 0V en 5V, analogRead zal een getal retourneren evenredig met de spanning.
We niet daadwerkelijk veranderen van de spanning die wordt geleverd naar de pin (niet gemakkelijk in ieder geval, en ik ben lui, zo gemakkelijk is belangrijk), maar als u van de wet van Ohm, V weet = IR. De huidige (I) wordt vastgesteld, wat betekent dat we alleen het toevoegen van een weerstand tussen de voedingsspanning en de analoge pin moeten te wijzigen van de spanning.
Voor degenen onder u die om over de wiskunde die nodig is opgewonden waren voor het berekenen van de spanningen, 'm I gonna moet u teleurstellen... Ik ben lui, dus ik hoef niet wiskunde.
Laten we een beetje praktischer, en ik zal je laten zien waarom we niet schelen over de wiskunde. We weten dat de analoge pin spanningen leest en we weten dat we deze spanningen veranderen kunnen door toevoeging van een weerstand tussen haar en de voedingsspanning. We weten ook dat wij dit ver heb gegaan omdat we kunnen lezen schakelaars willen, dus we moeten waarschijnlijk sommige schakelopties in te gooien.
Nu, voor degenen die geïnteresseerd zijn, als u wilt ontwerpen, u start met wat je weet. Ik weet hoe een Eén aansluiting verbinden met een enkele schakelaar. Ik wilde 5 knoppen, zodat ik het 5 keer gedupliceerd. Ik vervolgens het vereenvoudigd door het hebben van een single pull-down resister verbonden met alle knoppen, en dan gewoon weerstanden tussen de knoppen en de voedingsspanning en alle ingangen samengebonden.
Als u elke knop verbinden in de voedingsspanning door de weerstand van een andere waarde, afhankelijk van welke knop wordt ingedrukt, de waarde die wordt geretourneerd door analogRead zou anders en u kunt een heleboel als verklaringen om te zien welke knop is ingedrukt. De reden dat we niet nodig hebben de wiskunde is omdat we gewoon allemaal aansluiten, de knoppen duwen en afdrukken van de resulterende waarden op de seriële poort.