Lägga till knappar i din X52-Pro Joystick med en Arduino mikro (4 / 12 steg)
Steg 4: Skriv din test skiss
Nu skall du skriva en skiss på Arduino att testa dina knappar. Du vill få koden att skriva debug utmatning till den seriella porten att visa att varje knapp fungerar som förväntat. I huvudsak för varje ingångsstift behöver du bara ange PIN-koden att acceptera indata och titta på stiftet för att se när det går från hög (+ 5v/Vcc) till lägsta (0v/Gnd). Göra detta 12 gånger och du är gyllene, rätt? Livet är tyvärr inte så enkelt.
För det första måste du se till att när knappen är inte intryckt, PIN-koden får en stadig 5v, och när det trycks det får 0v. Detta kräver användning av en pull-up resistor. Om du är ny till elektronik detta kanske låter lite udda men det logiskt när man tänker på det. Läs mer om pull-up motstånd här: https://learn.sparkfun.com/tutorials/pull-up-resistors. Lyckligtvis har Arduino mikro förmågan att aktivera interna pull-up motstånd så att du slipper göra det själv. För varje ingångsstift så ange PIN-koden i funktionen void setup():
pinMode (2, INPUT_PULLUP). Numret representerar den pin-kod
Så i mitt fall loop jag genom en mängd stiften enligt följande:
CONST int switchCount = 12;
void setup() {
för (int jag = 0; jag < = (switchCount -1); i ++) {
Göra den tryckknapp pin inmatning
pinMode i, INPUT_PULLUP.
}
}
Nu måste du läsa staten av knappar. I teorin är detta en enkel. För att läsa statligt av stift 2 använda du bara funktionen digitalRead():
switch2State = digitalRead(2);
Men när en knapp trycks du får i allmänhet lite av buller för några millisekunder och detta kan verka som om trycker på knappen att vara snabbt. Detta kan göra livet svårt minst sagt. Vad du behöver göra är att "Dämpningstid" knappen. I huvudsak läsa du staten knappen, om staten har ändrats sedan du vänta lite innan du läser igen. Detta bör ge dig knappen verkliga tillstånd utan den flaxa vanvettigt. Se http://arduino.cc/en/Tutorial/Debounce för mer info.
Detta blir lite hårig för mer än ett par knappar så jag har använt Bounce2 bibliotek för att förenkla saker och ting. Se http://playground.arduino.cc/Code/Bounce för mer information. Allt du behöver göra är att hämta filen Bounce2-master.zip från föregående länk och släpp den i mappen Arduino bibliotek innan du startar IDE. Lägg sedan till denna linje till toppen av din skiss:
#include < Bounce2.h > / / http://playground.arduino.cc/Code/Bounce
Du kan sedan bifoga en baddare till varje stift att Dämpningstid det och få en ren läsning när knappen trycks ned och släpps.
skapa en dörrvakt objekt
Bounce tempBouncer = Bounce();
tempBouncer.attach(2); Bifoga stift 2 till objektet dörrvakt
tempBouncer.interval(10); Ange DeBounce timeout i millisekunder
Nu kan du läsa rent varje knapp behöver du bara hålla en anteckning av sin tillstånd varje gång du läsa PIN-koden och göra något om tillståndet förändras. Bifogade skissen kan du läsa 12 knappar och kommer ut en debug linje varje gång en knapp trycks ned och släpps. Bara ladda upp skissen till styrelsen och en gång du se LED ljus pressen CMD + SKIFT + M (Mac) eller CTRL + SKIFT + M (Win) att öppna den Serial Monitor. Det finns gott om kommentarer inline att du vet vad som pågår.