Stap 7: Code voor schematische 3 (draaiknop)
Programmering
Nogmaals, ik moet geven krediet aan guidomax voor zijn instructables.com tutorial ik sommige van zijn code voor dit project hebben geleend. Het gehele codevoorbeeld kan gevonden worden op mijn pastebin.com profiel hier.
De interne input pit gebruikt is pin 7 en we definiëren in de Setup -functie. Als,
pinMode(in, INPUT); // input for rotary device
Wij ook stelt onze Toon objecten in de matrix pin [] en pinnen als input voor 2600 hz, KP en ST.
pin[0].begin(pin0); // Initialize our first tone generator<br>pin[1].begin(pin1); // Initialize our second tone generator pinMode(b2600, INPUT); // 2600 button pinMode(bst, INPUT); // 2600 button pinMode(bkp, INPUT); // 2600 button
Vervolgens in de loop functie noemen gewoon we twee functies, één voor het controleren als de knoppen werden ingedrukt, en één voor de controle als de draaiknop is geopend. De functie buttons() gebruikt digitalRead() om te controleren op de aanwezigheid van spanning in de opgegeven pinnen. Als de 2600hz knop werd ingedrukt, controleren we gewoon zien als de cijfers waren eerder opgeslagen en zo spelen ze terug door in een lus over de matrix opgeslagen integer en mf() per cijfer te roepen totdat we een-1 waarde bereiken. Als u dit nog niet gemerkt veel, dit is vrij veel hoe we afspelen cijfers voor elk vak met uitzondering van de vreemde geheugen probleem met onze Arduino UNO doos (schema 2).
Behandeling van roterende Input
De rotary() functie krijgt een spanning lezen op onze pin van de draaiknop met behulp van digitalRead()
int reading = digitalRead(in);
Hiermee wordt geretourneerd naar het lezen van de waarde van de constante - hoog of laag. Indien dit van afwijkt het laatst werd gelezen - opgeslagen in lastState wij nemen nota van de tijd met behulp van de functie van de millis() ,
lastStateChangeTime = millis();
Dit wordt gebruikt als we het verschil tussen de huidige tijd aan het begin van de functie om de lastStateChangeTimete controleren. Als het groter dan 100 milliseconden is, blijven we spelen een MF-Toon. Het eerder geperst opgeslagen cijfer wordt gecontroleerd en als we een controlegetal tweemaal raken, wij een nieuwe modus. Dit is hoe wij beginnen opname cijfers in dit vak. Voor dit vak, wij kunnen KP druk op tweemaal om te beginnen de opnamemodus om vast te leggen van de cijfers. KP kan dan weer worden gebruikt als we bijvoorbeeld MF het nummer, KP,1,2,1,ST kunnen, en vervolgens treffer KP tweemaal opnieuw tot einde opname mode. Als u wilt wijzigen de kiesmodus puls, oftewel een modus die ik heb gemaakt na het zien van de Joe Engressia video aan pols kiezen, drukt u op ST tweemaal.