INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Maus über Joystick emulieren
10.01.2020, 16:32
Beitrag #17
RE: Maus über Joystick emulieren
Ok, dann probier mal das:
Code:
#include <Mouse.h>
int horzPin = A1;  // Analog output of horizontal joystick pin
int vertPin = A0;  // Analog output of vertical joystick pin
#include <Keyboard.h>
int buttonPin = 9;  // select button pin of joystick

int vertZero, horzZero;  // Stores the initial value of each axis, usually around 512
int vertValue, horzValue;  // Stores current analog output of each axis
const int sensitivity = 200;  // Higher sensitivity value = slower mouse, should be <= about 500

bool altTaster = HIGH;  // Der Taster ist LOW-Aktiv

void setup()
{
  pinMode(horzPin, INPUT);  // Set both analog pins as inputs
  pinMode(vertPin, INPUT);
  pinMode(buttonPin, INPUT_PULLUP);  // set button select pin as input mit PullUp-Widerstand
  digitalWrite(buttonPin, HIGH);  // Pull button select pin high
  delay(1000);  // short delay to let outputs settle
  vertZero = analogRead(vertPin);  // get the initial values
  horzZero = analogRead(horzPin);  // Joystick should be in neutral position when reading these

}


void loop()
{
  vertValue = analogRead(vertPin) - vertZero;  // read vertical offset
  horzValue = analogRead(horzPin) - horzZero;  // read horizontal offset

  if (vertValue != 0)
    Mouse.move(0, vertValue/sensitivity, 0);  // move mouse on y axis
  if (horzValue != 0)
    Mouse.move(horzValue/sensitivity, 0, 0);  // move mouse on x axis

  bool taster = digitalRead(buttonPin);
  if (altTaster != taster)  {  // Taster ist geändert
    altTaster = taster;
    if (taster = LOW) {  // Gedrückt
      Keyboard.write('1');  // send a '1' to the computer via Keyboard HID
    }
  }
}

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.01.2020, 16:41
Beitrag #18
RE: Maus über Joystick emulieren
Vielen Dank aber leider drückt er keine Taste ;( Ich glaube da ist echt der Wurm drin Wink
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.01.2020, 16:48 (Dieser Beitrag wurde zuletzt bearbeitet: 10.01.2020 16:52 von Tommy56.)
Beitrag #19
RE: Maus über Joystick emulieren
Edit: Sorry, im anderen Sketch war ein Fehler drin:
Code:
if (taster == LOW) {  // Gedrückt

Das muss natürlich == und nicht = heißen.

Dann kann der Rest wohl entfallen.

Probiere mal diesen Testsketch aus dem Netz aus:
Code:
#define joystickX A0 //X Achse des Joysticks am analogen PIN A0.
    #define joystickY A1 //Y Achse des Joysticks am analogen PIN A1.
    int button =  2; //Taster am digitalen PIN 2
    const int PAUSE = 250; //Wert für die Pause
    long lastAction = -1; //Variable zum speichern des Zeitstempels der letzten Ausführung.
    void setup() {
      Serial.begin(9600); //Begin der seriellen Kommunikation mit 9600baud
      //Setzen des Tasters als Eingang mit dem PullUp Widerstand.
      //Das Signal wird hier umgekehrt d.h. LOW == HIGH und HIGH == LOW
      pinMode(button, INPUT_PULLUP);
    }
    void loop() {
      //Abfragen der Millisekunden seit dem der Arduino gestartet / resetet wurde.
      long currentTimestamp = millis();
      //Alle x Millisekunden die Were der X & Y Achse Ausgeben.
      if(lastAction < (currentTimestamp-PAUSE)){
        lastAction = currentTimestamp;
        //Auslesen der X & Y Achse des Joysticks.
        int x = analogRead(joystickX);
        int y = analogRead(joystickY);
        Serial.print("aktuelle Koordinaten des Joysticks (x,y): ");
        Serial.print(x);
        Serial.print(", ");
        Serial.println(y);
      }
      
      //Auslesen des Zustandes des Taster.
      if(digitalRead(button)==LOW){
        Serial.println("Der Taster ist gedrück!");
      }
    }

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.01.2020, 17:46
Beitrag #20
RE: Maus über Joystick emulieren
PERFEKT!!!

Ganz Ganz lieben Dank. Wink
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.01.2020, 17:55
Beitrag #21
RE: Maus über Joystick emulieren
Schön, dass es funktioniert und danke für die Rückmeldung.

Nicht alles was bei YouTube veröffentlicht wird, muss auf Tatsachen beruhen.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Waage über RS 232 / Serial auswerten 425t 9 198 Heute 06:44
Letzter Beitrag: 425t
  einen zweiten joystick einbauen ardutobias 1 185 15.03.2020 00:47
Letzter Beitrag: Bitklopfer
  sketch mit 2 anstatt einem joystick ardutobias 0 167 14.03.2020 23:54
Letzter Beitrag: ardutobias
  Vorlage für Char Array über Serielle Schnittstelle Luis90 2 230 08.03.2020 18:05
Letzter Beitrag: hotsystems
Photo Servo Steuerung PCA9685 und Joystick Timon 16 507 03.03.2020 21:06
Letzter Beitrag: MicroBahner
  Spannungssensor über Tm1637 Display Boreallus 5 356 10.02.2020 17:17
Letzter Beitrag: hotsystems
  Statusabfrage über SoftwareSerial Scouter 6 372 07.02.2020 15:04
Letzter Beitrag: Scouter
  Mittelwert über 30sek. ermitteln Gerdchen03 7 408 01.02.2020 18:38
Letzter Beitrag: Gerdchen03
  Steuerprogramm aus Matlab und Daten von Joystick miteinander verbinden Vithushan 2 553 27.09.2019 16:28
Letzter Beitrag: ardu_arne
  Float array über NRF24L01 senden und empfangen Flo3107 6 773 04.09.2019 21:55
Letzter Beitrag: Tommy56

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste