Digitales signal auf ProMicro bringen (für handbremse AN/AUS)

Hallo alle zusammen, (hoffe ich bin hier richtig)

Da ich der HomeRacing Leidenschaft verfallen bin habe ich mir eine Analoge Handbremse gebaut und mit einem Arduino micro erfolgreich mit einem “Analogen” signal zum laufen gebracht :slight_smile:

Jetzt zu meinem Anliegen bei dem ich scheitere , :frowning:
ich habe das vorhandene analog File dazu nutzen wollen (was ein Potentiometer nutzt)
und einen anderen Arduino micro mit einem digitalen Signal (klickschalter) demendsprechend umzuprogrammieren das er damit funktioniert

#include <Joystick.h>

void setup()

{pinMode(A0, INPUT); 
   Joystick.begin();}

const int pinToButtonMap = A0;

void loop()

{int pot = analogRead(A0);
int mapped = map(pot,0,1023,0,255);
{Joystick.setThrottle(mapped);}}

das ist der Original code …
ich bin mir sicher das es am {Joystick.setThrottle(mapped);}} liegt
habe schon einiges ausprobiert jedoch ohne kompilierungs Erfolg

ich hoffe mir kann jemand helfen :open_mouth:

Hallo,

ohne ordentliche Formatierung übersieht man Klammerfehler.

#include <Joystick.h>

const byte pinToButtonMap = A0;

void setup()
{
  Joystick.begin();
  pinMode(A0, INPUT);    
}

void loop()
{
  int pot = analogRead(A0);
  int mapped = map(pot, 0, 1023, 0, 255);
  Joystick.setThrottle(mapped);
}

ohne kompilierungs Erfolg

Dann solltest du die Fehlermeldungen posten. Und deinen Versuch, der den Fehler produziert, natürlich.

Das eigentliche Thema “analoges signal als digitales umprogrammieren” erklärt sich dann vielleicht auch.
Vermutlich hilft auch erzählen, was <Joystick.h> genau ist. (Ein klickbarer Link wäre nett)

Schön, dass du Code-Tags benutzt hast. :wink:
Wie du formatierst, dass die geschweiften Klammern nicht so versteckt sind, hat Doc schon gezeigt…

Hallo,

den initialisierten Pin-Namen kann er noch selbst einsetzen oder lässt ihn ganz weg.
Bevor ich eine auf die Mütze bekommen. :slight_smile:

Also als erstes danke an eure schnelle antworten :wink:

möchte noch kurz dazu sagen ich bin neu im ardunio sector und kenne mich höchstens im html und php etwas aus , das hier ist was völlig neues habe durch meinen ersten trial&error versuch auch den ersten micro chip geschrottet :confused: und der code stammt nicht von mir siehe unten

aber egal , hier die links über die ich aufmerksam auf den micro geworden bin
Das war das Video HOW TO MAKE A USB ANALOG HANDBRAKE | SIM RACING DIY EBRAKE - YouTube
und das die Software GitHub - AM-STUDIO/Analog-E-Brake: Analog E Brake Handbrake for Sim Racing

Für gefundene Software ist der Finder verantwortlich. :wink:

Und was ist jetzt dein Problem genau?

michael_x:
Und was ist jetzt dein Problem genau?

Hä dachte ich habe das genau genug beschrieben ...

in dem gefundenen habe ich erfolgreich eine analoges signal mit einem Potentiometer verarbeitet
jetzt möchte ich mit dem neuen micro ein digitales (an/aus) signal verarbeiten

jetzt möchte ich mit dem neuen micro ein digitales (an/aus) signal verarbeiten

Und was ist jetzt dein Problem genau? > Ein oder mehrere Compilerfehler.
Dann solltest du die Fehlermeldungen posten. Und deinen Versuch, der den Fehler produziert, natürlich.

Und nein, dein Problem ist mir noch unklar.

Also mir auch noch nicht.
Und Links bitte klickbar, nicht nur die url hinschreiben. Tablet Nutzer werden es dir danken

ok links sind umgeändert
und zu dem anderen ich machs mal kurz
ich habe keine Ahnung wie ich das angehen soll

dachte das ich vielleicht das "int pot = analogRead" in "int pot = digitalRead" umändern kann und das "Joystick.setThrottle(mapped)" noch dementsprechend anpassen kann

dem war aber nicht so (wie gesagt mein level ist auf 0 was das angeht)


deswegen meinte ich das es hier vielleicht jemand gibt der mir zeigt das man den obigen code entsprechend umändern kann ... ich denke auch nicht das es ein arg viel anderer code ist den ich für meine zwecke benötige aber wenn man das rad neu erfinden muss lasse ich es


wenn möglich wäre auch ok das ich zb die Taste SPACE (leertste) per dem klick-schalter auf A0 zuweisen könnte würde auch schon reichen wenn es über den Joystick.set nicht geht

Ich glaube, so wird das nichts.

Erzähle doch mal ausführlich und in ganzen Sätzen, was Du eigentlich machen willst. Dann wird bestimmt auch ein Lösungsweg gefunden.

Gruß Tommy

Da wir nicht wissen, wofür du im digital (Taster) Modus die Methode
Joystick.setThrottle(mapped);
überhaupt brauchst oder ob das sinnvoller ganz anders gemacht würde, nur ein theoretischer Tip:

 byte throttle;
  if (digitalRead(ThrottlePin) == HIGH) throttle = 200;  // Fast Vollgas
  else                                  throttle = 10;   // Fast Stop                 
  Joystick.setThrottle(throttle);

Arduino wird übrigens in C++ programmiert: Das solltest du dir soweit aneignen, dass du zumindest die 4 Zeilen oben, und den "Original" - Sketch verstehst. Und die 4 Zeilen in deinem Sketch richtig einbauen kannst.

Hallo nach etwas Pause :slight_smile: (ich habe auch den ersten Post angepasst mit der Überschrift)

Also aneignen brauche ich es nicht weiter denke ich
verstehe den geschriebenen Code schon soweit
jedoch zeigt dieser ja nicht von wo zB er die Signale bekommt (A0 oder so)
aber ich habe mal ein paar Bilder gemacht um es Verständlicher auszudrücken :wink:

Die angehängten Bildern zeigen die ANALOGE Handbremse die auch super funktioniert

jetzt möchte ich mit einem klick-schalter (2 Drähte) ein digitales Signal
zB die Keyboard Space Taste mit diesem Simuliert wird (demnach klick-schalter unten ,Handbremse gezogen )

PS habe auch zu dem Klick-schalter der die Space Taste (oder auch eine joystick digital taste) übernehmen soll auch ein Bild angehängt…

wie gesagt auch mit einem Pro Micro (denn den hätte ich auch noch zur hand)


Nochmal weiterfürend hierzu , ich habe auch wieder auf einer anderen seite Teensy gefunden der angeblich eine erweiterung für den Arduino hat wollte diesen mal ausprobieren aber hatte nicht so ganz funktioniert in den Kommentaren wurde daruf hingewiesen The Button – RasterWeb!
Der code sieht dazu wie folgt aus

/*
 * Button.pde
 */

void setup() {
  Serial.begin(9600);
  pinMode(10, INPUT_PULLUP);
  delay(500);
}

void loop() {
  if (digitalRead(10) == HIGH) {
    delay(10);
  } else {
    Keyboard.print(" "); // we print a space
    delay(1000);
  }
  delay(10);
}

niwes:
Nochmal weiterfürend hierzu , ich habe auch wieder auf einer anderen seite Teensy gefunden der angeblich eine erweiterung für den Arduino hat wollte diesen mal ausprobieren aber hatte nicht so ganz funktioniert in den Kommentaren wurde daruf hingewiesen The Button – RasterWeb!

Die Kommentare sind schon ein paar Jährchen alt. Ich verwende mit IDE 1.6.5 einen Teensy 3.2 für LED-Animation (APA102), das geht problemlos. Allerdings muß man beachten, daß ein UNO enen 8-Bit, ein Teensy einen 32-Bit Prozessor inne hat. Da muß man bei der Länge der Variablen aufpassen. Desweiteren muß man schauen, ob es die notwendigen Programmbibliotheken, die man nutzen möchte, gibt. Das gilt es aber eigentlich immer zu beachten.

Ob ein Teensy für Dein Projekt von Vorteil sein könnte, vermag ich aber nicht zu beurteilen.

agmue:
Die Kommentare sind schon ein paar Jährchen alt. Ich verwende mit IDE 1.6.5 einen Teensy 3.2 für LED-Animation (APA102), das geht problemlos. Allerdings muß man beachten, daß ein UNO enen 8-Bit, ein Teensy einen 32-Bit Prozessor inne hat. Da muß man bei der Länge der Variablen aufpassen. Desweiteren muß man schauen, ob es die notwendigen Programmbibliotheken, die man nutzen möchte, gibt. Das gilt es aber eigentlich immer zu beachten.

Ob ein Teensy für Dein Projekt von Vorteil sein könnte, vermag ich aber nicht zu beurteilen.

Ok danke , habe jetzt direkt über Arduino etwas gefunden und darauf nun aufgebaut
kann auch alles erfolgreich überprüfen und aufspielen aber unter Kontroller wird nichts angezeigt
der Code den ich jetzt benutze lauted:

#include <Keyboard.h>
int buttonPin = 9;  

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

void loop()
{
  if (digitalRead(buttonPin) == 0) 
  {
    Keyboard.write('c'); 
  }
}

EDIT: Sichtbar ist er unter Maus,Tastatur & Stift aber gibt auch den write befehl aus (c)
werde es nun mal in einem spiel testen und feedback geben


EDIT²:
Also der obige code hatte bedingt funktioniert
Allerdings habe ich es nun geschafft einen
#include <Joystick.h> Code auszuknobeln und das beste er funktioniert 1A somit habe ich nun bei den ganzen unterschiedlichen Autorennen die Wahl ob ich mit einer Digitalen oder Analogen Handbremse Fahren möchte bzw muss weil es das spiel nicht unterstützt.
Ich habe jedem MicroPro einen einzelne Aufgabe zugeteilt , das nächste Projekt wird wohl sein alles auf einen zu verlegen …
Danke euch trotzdem :wink: