Digispark als Eingabegerät

Hallo zusammen,

ich würde mir gerne eine PC Handbremse bauen (digital).

Ich habe mir dazu einen Microschalter gekauft. Weiters würde ich dafür gerne einen Digispark verwenden, da der ja eigentlich HID kann (?!)

Folgenden Testaufbau habe ich gemacht:

Somit habe ich 3,3V am P1 anliegen, sobald ich den Schalter drücke.

Der extrem simple Sketch dazu:

#include "DigiKeyboard.h"
int buttonPin = 1; // Hier ist der Taster angeschlossen

void setup() {
  pinMode(buttonPin, INPUT);
  digitalWrite(buttonPin, LOW);
}

void loop() {
  DigiKeyboard.sendKeyStroke(0);
  if (digitalRead(buttonPin) == HIGH){
    DigiKeyboard.sendKeyStroke(KEY_R);
    DigiKeyboard.delay(50); // Kurz warten
  }
}

Hochladen, und den Taster gedrückt -> okay funktioniert, es schreibt sobald ich drücke "rrrr"

Wenn ich jetzt aber den Digispark abstecke und wieder anstecke funktioniert es nicht mehr, ich muss wieder den Sketch neu hochladen.

Weiß jemand an was das liegt?

Weiters weiß ich noch nicht wie ich dann zb in Dirt Rally 2.0 den Taster auf die Handbremse zuweisen soll.

Vielen Dank im Voraus!

Somit habe ich 3,3V am P1 anliegen, sobald ich den Schalter drücke.

Das kann ja schon mal nicht sein!
Wie zauberst du 3,3V aus einer 5V Umgebung, ohne alle Bauteile?

Also anders an gehen.

Schalter zwischen GND und P1
Für P1 den Pullup aktivieren.
Schalter entprellen und invers auswerten.

Hallo,

vielen Dank für deine Antwort.

naja, der Digispark gibt 3,3V aus.

Ich hab den Aufbau jetzt umgedreht, funktioniert auch, das Problem bleibt das gleiche...

naja, der Digispark gibt 3,3V aus.

Nein!
Nein.
Und nochmal: Nein.

Oder anders:
Bevor nicht diese Unmöglichkeit aus der Welt geschafft wird, gehts sowieso nimmer weiter.

Schaltplan
Du siehst: Nix 3,3V. Nirgendwo.

Vielleicht ist Pin 1 keine glückliche Wahl, wenn da auch bei dir eine LED dran hängt.
Versuchs mal mit Pin 0

Der Anschluss eines Tasters an P1 ist möglicherweise nicht so günstig (wie bereits erwähnt wurde). Da hängt die "bordeigene LED" dran, wie im Schaltplan ersichtlich. Falls andere Pins frei sind, vielleicht mit anderem Anschluss versuchen.

Habe zufällig gerade einen Digispark am Schreibtisch liegen.

Bei mir funktioniert es wie gewünscht zum Beispiel so:
taster_an_digispark.png

#include "DigiKeyboard.h"
const byte buttonPin = 2;    // Hier ist der Taster angeschlossen

void setup() {
  pinMode(buttonPin, INPUT_PULLUP);
}

void loop() {
  DigiKeyboard.sendKeyStroke(0);
  if (!digitalRead(buttonPin)) {
    DigiKeyboard.sendKeyStroke(KEY_R);
    DigiKeyboard.delay(50); // Kurz warten
  }
}

Nachtrag:
Meine Erfahrungen mit Digispark (und ähnlichen Boards die auf ATtiny85 basieren)
Habe sie früher oft und gerne eingesetzt, allerdings funktionieren sie mit neuerer Hardware immer weniger zuverlässig als Keyboard, Maus oder Joystick. An (externen) USB-Hubs funktionier(t)en sie ohnehin selten, sondern nur "direkt" am USB-Anschluss. Und wie gesagt: je neuer die Hardware ist, desto unzuverlässiger. Schade.
Typische Meldung des PCs (Windows) beim Anstecken: USB-Gerät wurde nicht erkannt.
Das tritt nicht immer auf, aber immer öfter.
Falls ich Keyboard-Funktion (etc.) brauchen, dann verwende ich jetzt meist nur noch Microcontroller die "wirklich" USB unterstützen (z.B. ATMEGA16U2, "Leonardo"/"Micro", Teensy). Da gibt es selten Probleme.

taster_an_digispark.png

Hey combie,

stimmt tut mir Leid du hast natürlich Recht...

War noch beim Teensy, den hab ich auch noch rumliegen, hab die beiden verwechselt...

@uxomm okay vielen Dank für deinen Erfahrungsbericht, dann werde ich den Teensy austesten, den ich hier noch liegen habe!

taster_an_digispark.png
@uxomm
Wundere mich gerade wie genau du den Grünton der Kabel getroffen hast um diese mit einem Strich weiterzuführen. Respekt.
Grüße Uwe

uwefed:
@uxomm
Wundere mich gerade wie genau du den Grünton der Kabel getroffen hast um diese mit einem Strich weiterzuführen. Respekt.
Grüße Uwe

:slight_smile: :slight_smile: :slight_smile:
Ja, da zeigt sich die jahrzehntelange* Erfahrung mit Photoshop, Gimp etc. in seiner vollen Dimension. :slight_smile: :slight_smile:
Mit dem Pipettenwerkzeug auf das grüne Kabel geklickt und schon ist die richtige Farbe getroffen.
Aber es freut mich sehr, dass es dir aufgefallen ist. :wink:

(* Huch, mir ist gerade bewußt geworden das es sich ja wirklich schon um Jahrzehnte handelt. Photoshop gibt es laut Wikipedia seit 1990 und ich benutze es seit ca. 1997) :o

Die Pipette gab es schon bei paint in Win 3.1.
Ich dachte, mit Photoshop könne man mit 16 Millionen Farben auch die Schattenverläufe darstellen.

Dann kann ich ja beim pixelgenauen Paint bleiben. :slight_smile:

Ja, die Pipette gibt es wirklich schon recht lang.
Das mit den Schattenverläufen kommt vielleicht das nächste Mal :slight_smile:

Paint ist auch super. Und vor allem so langlebig, Erscheinungsjahr laut Wikipedia 1985.
Und bei Windows 10 gibt es jetzt zusätzlich sogar eine "3D-Version" davon.
:slight_smile: