Stap 4: Arduino code
Aanvankelijk, ik de draden aangesloten op de Arduino als volgt:
-pin 2: sw1
-pin 3: sw2
-pin 4: sw3
-pin 5: sw4
-pin 6: sw5
-pin 7: sw6
-pin 8: sw7
-pin 9: tokkelen omhoog
-pin 10: tokkelen omlaag
-pin 11: whammy
-pin 12: knop voor de ontsnapping
-pin 13: knop voor de ster macht
(sw1 is de eerste knop van de fret, sw7 is de zevende fret knop - maar we gebruiken alleen sw1-sw5)
(Als ik maken van de ster macht met de versnellingsmeter wilde, ik zou hebben aangesloten de X-, Y- en Z-pin op de analoge ingangen van de arduino)
Ten eerste, ik had voor het initialiseren van de seriële poort, en stel de pinnen als ingangen:
VOID Setup {}
Serial.begin(9600); Initialiseren van seriële klasse met 9600 Baud/s
for (int i = 2; ik < = 13; i ++) {}
pinMode (i, ingang); Stel de pinnen als ingangen
}
}
In de lus, ik lees de ingangen en print ze uit op de seriële poort:
void loop {}
terwijl (!. Serial.available());
voor (int i = 2; ik < = 13; i ++) {}
Serial.Print(digitalRead(i));
Serial.Print(';');
}
Serial.Print('\n');
delay(1);
De invoerwaarden worden verzonden in een lijn, gescheiden door een ';'. Dus als u op een knop drukt, of neer tokkelen, alleen de waarde van het indexcijfer 1 verandert, anders is het 0. In Java, wordt een buffer gevuld wanneer een '\n' nieuwe lijn operator wordt ontvangen. De tijd (!. Serial.available()); lijn helpt alleen de gegevens te verzenden nadat het programma is gestart.
De één milliseconde vertraging is nodig om de gegevensoverdracht plaatsvindt, zonder dat ik heb vreemde lijnen in de seriële monitor.