Hallo Leute,
ich wurde schon häufiger gefragt, wie wir bei uns die 5 Knöpfe statt 3 implementiert haben (Vorstellung MedionUINO). Hierzu jetzt eine kleine Anleitung, die auch nicht so erfahrenen Programmierern die Umsetzung ermöglichen soll. Ich werde meinen Code erstmal nicht hochladen, da dort viele weitere Änderungen drin sind, welche auch meinen speziellen Wünschen entsprechen. Nach Weihnachten werde ich mich mit Github auseinander setzen und dann vielleicht hochladen. So, jetzt geht’s los.
Wir beginnen mit der Verdrahtung der zusätzlichen zwei Taster. Am besten ihr verwendet die Anschlüsse neben den bereits verwendeten, das wären Pin A3 und A4:
Die Software-Änderungen sind nicht so schwierig. Diese versuche ich Schritt für Schritt zu beschreiben. Die entsprechende Stelle im Code müsst ihr euch selber suchen, sollte aber nicht so schwer sein. Dann den Code so wie angegeben anpassen. Änderungen sind chronologisch, von oben nach unten im Code. Bei Fragen einfach nachhaken.
Im Code müsst ihr nun als erstes diese Verdrahtung hinterlegen (die letzten beiden Zeilen sind neu):
#define buttonPause A0
#define buttonUp A1
#define buttonDown A2
#define buttonVolUp A3 //Zusätzliche Buttons
#define buttonVolDown A4 //Zusätzliche Buttons
Falls ihr andere Pins verwendet habt, entsprechend hier angeben.
Dann die neuen Buttons hinzufügen, z.B. so wenn ihr Lautstärke und vor/zurück trennen wollt (die letzten beiden Zeilen sind neu):
Button pauseButton(buttonPause);
Button upButton(buttonUp);
Button downButton(buttonDown);
Button VolUpButton(buttonVolUp); //Neuer Knopf für Lautstärke hoch
Button VolDownButton(buttonVolDown); //Neuer Knopf für Lautstärke runter
Dann müsst ihr im Setup die Pullups der eben definierten Buttons setzen (die letzten beiden Zeilen sind neu):
// Knöpfe mit PullUp
pinMode(buttonPause, INPUT_PULLUP);
pinMode(buttonUp, INPUT_PULLUP);
pinMode(buttonDown, INPUT_PULLUP);
pinMode(buttonVolUp, INPUT_PULLUP); //Zusätzliche Buttons
pinMode(buttonVolDown, INPUT_PULLUP); //Zusätzliche Buttons
Dann müsst ihr im Loop die zusätzlichen Knöpfe abfragen(die letzten beiden Zeilen sind neu):
// Buttons werden nun über JS_Button gehandelt, dadurch kann jede Taste
// doppelt belegt werden
pauseButton.read();
upButton.read();
downButton.read();
VolUpButton.read(); //Zusätzliche Buttons
VolDownButton.read(); //Zusätzliche Buttons
Zum Schluss müsst ihr die Funktionen der Knöpfe anpassen, dafür müsst ihr diesen Code im Loop entfernen:
if (upButton.pressedFor(LONG_PRESS)) {
Serial.println(F("Volume Up"));
mp3.increaseVolume();
ignoreUpButton = true;
} else if (upButton.wasReleased()) {
if (!ignoreUpButton)
nextTrack(random(65536));
else
ignoreUpButton = false;
}
if (downButton.pressedFor(LONG_PRESS)) {
Serial.println(F("Volume Down"));
mp3.decreaseVolume();
ignoreDownButton = true;
} else if (downButton.wasReleased()) {
if (!ignoreDownButton)
previousTrack();
else
ignoreDownButton = false;
}
und mit diesem ersetzen:
if (VolUpButton.wasReleased()) {
Serial.println(F("Volume Up"));
mp3.increaseVolume();
}
if (upButton.wasReleased()) {
nextTrack(random(65536));
}
if (VolDownButton.wasReleased()) {
Serial.println(F("Volume Down"));
mp3.decreaseVolume();
}
if (downButton.wasReleased()) {
previousTrack();
}
Damit sollte es dann funktionieren. Viel Spaß beim Ausprobieren