Gitarr hjälte USB-styrenhet med Arduino och Java (4 / 6 steg)
Steg 4: Arduino kod
Först anslutit jag ledningarna till Arduino såhär:
-stift 2: sw1
-stift 3: sw2
-stift 4: sw3
-stift 5: sw4
-stift 6: sw5
-stift 7: sw6
-pin 8: sw7
-stift 9: knäpper upp
-stift 10: strum ner
-stift 11: whammy
-stift 12: knapp för utrymning
-stift 13: knapp för stjärna makt
(sw1 är knappen första bandet, sw7 är knappen sjunde bandet - men vi kommer endast att använda sw1-sw5)
(Om jag ville göra den stjärna makten med accelerometern, jag skulle har anslutit X, Y och Z pin till arduino analoga ingångar)
För det första, jag var tvungen att initiera serieporten och stiften som ingångar:
void setup() {
Serial.BEGIN(9600); Initiera seriell klass med 9600 Baud/s
för (int jag = 2; jag < = 13; i ++) {
pinMode (i, ingång); Ställa in stiften som insatsvaror
}
}
I slingan, jag läsa ingångarna och skriva ut dem till den seriella porten:
void loop() {
tag (!. Serial.available());
för (int jag = 2; jag < = 13; i ++) {
Serial.Print(digitalRead(i));
Serial.Print(';');
}
Serial.Print('\n');
Delay(1);
Indatavärdena skickas i en rad, separerade med ett ';'. Så om du trycker på en knapp, eller knäpper ner, Visar endast värdet av index 1, annars är det 0. I Java fylls en buffert när en '\n' ny linje operatör tas emot. Den tag (!. Serial.available()); linje bidrar till att endast skicka data efter att programmet startades.
En millisekund fördröjningen behövs för att överföra data, utan att jag fick konstiga linjer i följetong monitor.