für den neulich von Carsten zum Erwerb vorgestellten Fahr-/Bremsschalter von Gessmann habe ich hier ein Sketch samt kleiner Bibliothek für einen Arduino micro. Benötigt wird die Arduino-IDE (guckssst du hier), ein Arduino micro und, ach ja, ein Gessmann Fahr-/Bremsschalter. Das Bibliotheksarchiv wird in der Arduino-IDE über Sketch --> Bibliothek einbinden --> .ZIP-Bibliothek hinzufügen... eingebunden. Das Sketch-Archiv kann irgendwo entpackt und von dort geladen werden. Den Gessmann-Schalter habe ich wie folgt an den den Arduino micro angeschlossen:
Code: Alles auswählen
Poti blau --> GND
Poti rot --> +5V
Poti gelb --> A0/D18
oberer (inverser) Taster
o --> unteren Taster
o --> D0/RX
unterer Taster
o --> GND
o --> D2/SDA
Code: Alles auswählen
const int pinPoti = A0;
const int pinInvButton = 0;
const int pinButton = 2;
Etwas Technik
Der Analog-Digital-Wandler des Arduino liefert für die Schnellbremsstellung ~986 und für max. Fahrstellung ~64. Auf diese Werte ist die Bibliothek abgestimmt. Sollte dein Schalter aufgrund von Fertigungstoleranzen, anderer Potityp oder weiß der FuchsGeier andere Werte liefern, müssen die Einstellungen in der Bibliothek angepasst werden:
Code: Alles auswählen
// Das Poti liefert
// ~64 in max. Fahrstellung
// ~986 in Schnellbremsstellung
// Diese Werte werden auf den USB-Bereich 0..255 (Schnellbremsung..Max.Fahrstellung) gemappt
// 255 / (986 - 64) = 255 / 922 ~ 0.2766
void GessmannSchalter::setThrottle(int value)
{
int t = (986 - value) * 0.2766;
// Einhaltung des USB-Bereiches sicherstellen
if (t < 0) {
t = 0;
}
else if (t > 255) {
t = 255;
}
throttle = t;
if (autoSendState) sendState();
}
Download
Bibliothek
Sketch
Viel Spaß beim Nachbau,
Holger