Arduino-baserad blå ruta (telefon Phreaking) (7 / 9 steg)
Steg 7: Kod för Schematisk 3 (Rotary)
Programmering
Igen, jag måste ge kredit till guidomax för hans instructables.com tutorial som jag har lånat några av hans kod för detta projekt. Den hela kodexemplet kan hittas på min pastebin.com profil här.
Den enda ingång gropen används är stift 7 och vi definierar det i funktionen setup() . som,
pinMode (i, ingång); ingång för roterande
Vi också våra tonen objekt i arrayen pin [] och stift som indata för 2600 hz, KP och ST.
PIN[0].BEGIN(PIN0); Initiera våra första tone generator < br > pin[1].begin(pin1); Initiera våra andra tongeneratorn
pinMode (b2600, ingång); 2600-knappen
pinMode (bst, ingång); 2600-knappen
pinMode (bkp, ingång); 2600-knappen
Nästa i funktionen loop() kallar vi helt enkelt två funktioner, en för att kontrollera om knapparna trycktes och en för att kontrollera om nummerskivor användes. Funktionen buttons() används digitalRead() för att kontrollera förekomsten av spänning över angivna stiften. Om knappen 2600hz trycktes, kontrollera vi helt enkelt se om siffrorna förvarades tidigare och så spela dem tillbaka genom looping över den lagrade heltalsmatris och ringa mf() per siffra tills vi når en värdet-1. Om du inte har märkt detta långt, detta är ganska mycket hur vi uppspelning siffror för varje låda med undantag för det märkliga minnet fråga med våra Arduino UNO box (Schematisk 2).
Hanterar indata från roterande
Funktionen rotary() får en spänning läsa på vår nummerskivor stift med hjälp av digitalRead() som,
int läsa = digitalRead(in);
Detta returnerar att läsa värdet för konstanten - högt eller lågt. Om det skiljer sig från det senast lästes - lagras i lastState vi tar del av tiden med funktionen millis() som,
lastStateChangeTime = millis();
Detta används när vi kolla skillnaden mellan aktuell tid i början av funktionen lastStateChangeTime. om det är större än 100 millisekunder, fortsätter vi att spela en ton för MF. Den tidigare pressade lagrade siffran kontrolleras och om vi träffar en kontroll siffra två gånger, vi går in i ett nytt läge. Det är hur vi börjar inspelningen siffror i den här rutan. För denna ruta, kan vi trycka på KP två gånger att börja inspelningsläge för att spela in siffror. KP kan då användas som vi kan MF numret, KP,1,2,1,ST, till exempel och då slå till KP två gånger igen för att avsluta inspelningsläge. Om du vill ändra till puls slå läge, som är ett läge som jag skapade efter att ha sett den Joe Engressia video på puls uppringning, enkelt pressa ST två gånger.