Ich wende mich an euch weil ich mir das mit dem Programmieren eines Arduinos in den Anleitungen leichter angesehen habe als es nun letztendlich ist und mir die Sache über den Kopf gewachsen ist.
Bitte entschuldigt meine Grobschlächtige Ausdrucksweise zu den Begriffen. Als 42 jähriger Maschinenschlosser mit wenig Elektronik Kenntnissen wird das denke ich nicht so einfach.
Der Grund Arduino zu verwenden kommt daher das bei mir die Handteile einer Maschine zu sehr beansprucht sind und des Öfteren getauscht werden müssen. Bisher hab ich immer eine um gelötete Tastatur verwendet was auch gut klappt aber wegen der verschiedenen Tastaturen immer alle Verbindungen neu rausgesucht werden müssen.
Ich habe hier ein Gerät welches sich über sein eigenen Bedienteil und eine Tastatur steuern lässt. Auf der suche im Internet habe ich die Information bekommen das der Arduino Leonardo sich als Tastatur einsetzten lässt. Einfache Tasten haben schon sehr gut funktioniert doch man will ja wachsen und nun sollen gewisse tasten ersetzt werden und zwar durch einen Optischen Encoder.
Der Encoder hat eine A und B Spur. Die Tutorials für Encoder mit Zählen und Richtungsunterscheidung hab ich mal durchgesteckt und das hat gut funktioniert. Doch der Teufel steckt im Detail.
Ich möchte das der Leonardo wenn eine Taste als Bestätigung gedrückt wird und der Encoder gedreht wird, das ein Tastaturbefehl an den Computer wo der Leonardo angeschlossen wird sendet. Hierbei sollte auch die Richtung mit erkannt werden. Ich meine Irgendwann gehört zu haben das man zwei Bedingungen verknüpfen und als virtuellen Schalter verwenden kann. Perfekt wäre es wenn der Plus und Minusknopf trotzdem erhalten bliebe. Also die Funktion ca so aussehe.
Beispiel:
(
Wenn taste A gedrückt und Plusknopf oder Encoder rechtsgedreht dann sende KEY_RIGHT_ARROW
)
Ich habe anbei schon den Code den ich bisher geschrieben habe beigefügt. Vielleicht könnt ihr mir diesbezüglich weiterhelfen.
Ich bedanke mich für das Lesen des vielen Textes und verbleibe mit Digitalen grüßen.
Roland
Mit den simulierten Tasten sollte das funktionieren, ausser dass die Tasten noch nicht entprellt sind und im Auto-Repeat-Modus sind.
Wenn Du den Encoder einbinden willst, solltest Du uns verraten, wie Du ihn angeschlossen hast und welchen Typ Du verwendest (am besten Link dazu). Hast Du denn den Beispiel-Code für Encoder schon ausprobiert und funktioniert dieser mit Deinem Encoder?
Das liegt darin das ich nicht weis wie ich die Richtungsauswertung und die Impulsauswertung zu einem benutzbaren actuator machen kann.
pylon:
Wenn Du den Encoder einbinden willst, solltest Du uns verraten, wie Du ihn angeschlossen hast und welchen Typ Du verwendest (am besten Link dazu). Hast Du denn den Beispiel-Code für Encoder schon ausprobiert und funktioniert dieser mit Deinem Encoder?
Ist vieleicht im text oben unter gegangen. Der Encoder Besitzt eine A und B Spur welche um 90° versetzt sind einen 5-24V + Eingang und einen Massekontakt. In den Beispielen wie wie im forum beschrieben mit der Zählvariante und Richtungsanzeige hat der Encoder funktioniert.
Die Eingänge habe ich noch nicht richtig nummeriert ist aber kein thema da ich ja eh noch keine softwarelösung für das einbinden des Encoders habe.
Vieleicht kann ich das so gar nicht machen.
Oder doch?
Ist vieleicht im text oben unter gegangen. Der Encoder Besitzt eine A und B Spur welche um 90° versetzt sind einen 5-24V + Eingang und einen Massekontakt. In den Beispielen wie wie im forum beschrieben mit der Zählvariante und Richtungsanzeige hat der Encoder funktioniert.
Die Eingänge habe ich noch nicht richtig nummeriert ist aber kein thema da ich ja eh noch keine softwarelösung für das einbinden des Encoders habe.
Vieleicht kann ich das so gar nicht machen.
Oder doch?
Einerseits schreibst Du, dass die Beispiele funktionieren, Du also funktionsfähigen Code für den Encoder hast. Andererseits sagst Du, dass Du noch keine Softwarelösung für das Einbinden des Encoders hast. Was stimmt nun?
Wenn es um das Kombinieren von zwei Codeteilen geht, dann poste mal die beiden Teile, die je für sich funktionieren, dann können wir Dir dabei vielleicht behilflich sein und Tips geben. Erwarte aber nicht, dass wir Dir hier den ganzen Sketch entwickeln, dass machst Du besser selbst, denn dabei kannst Du etwas lernen.
pylon:
Einerseits schreibst Du, dass die Beispiele funktionieren, Du also funktionsfähigen Code für den Encoder hast.
Andererseits sagst Du, dass Du noch keine Softwarelösung für das Einbinden des Encoders hast. Was stimmt nun?
Ich habe 2 codes die funktonieren der eine gibt am serial terminal die richtung aus und der andere zählt ganz einfach die impulse
mir fehlt die lösung wie ich diese richtungs und impulsweitergabe in eine funktion bringe die ich
// ++ Fahren
if (digitalRead(XButton) == HIGH && digitalRead(plusButton) ==HIGH) {
Keyboard.write(KEY_RIGHT_ARROW);
}
// -- Fahren
if (digitalRead(XButton) == HIGH && digitalRead(minusButton) ==HIGH) {
Keyboard.write(KEY_LEFT_ARROW);
plusButton und minusbutton genannt habe.
pylon:
Wenn es um das Kombinieren von zwei Codeteilen geht, dann poste mal die beiden Teile, die je für sich funktionieren, dann können wir Dir dabei vielleicht behilflich sein und Tips geben. Erwarte aber nicht, dass wir Dir hier den ganzen Sketch entwickeln, dass machst Du besser selbst, denn dabei kannst Du etwas lernen.
Ich bin gelehrig ohne zweifel doch ich vermute das übersteigt meinen Horizont und suche nach einer anderen lösung zumal die zeit drängt. Bei funktionierden lösungen könnte man sich noch immer etwas ausmachen.