Mouse.move()

Beschreibung

Bewegt den Mauszeiger auf einem verbundenen Computer. Die Bewegung ist dabei immer relativ zu der aktuellen Position des Mauszeigers. Bevor Mouse.move() benutzt werden kann, muss Mouse.begin() aufgerufen werden.

Syntax

Mouse.move(xVal, yVal, wheel)

Parameter

  • xVal: Wie weit der Mauszeiger auf der X-Achse bewegt werden soll. Erlaubte Datentypen: signed char.
  • yVal: Wie weit der Mauszeiger auf der Y-Achse bewegt werden soll. Erlaubte Datentypen: signed char.
  • wheel: Wie weit das Mausrad gedreht werden soll. Erlaubte Datentypen: signed char.

Rückgabewert

Nichts.

Beispielcode

Bewegt den Mauszeiger anhand der analogen Eingänge.

#include <Mouse.h> const int xAxis = A1; // Analoger sensor für die X-Achse const int yAxis = A2; // Analoger sensor für die Y-Achse int range = 12; // Ausgabebreite der X- und Y-Bewegung int responseDelay = 2; // Antwortverzögerung der Maus in ms int threshold = range / 4; // Wartethreshold int center = range/2; // Warteposition int minima[] = {1023, 1023}; // Aktuelle analogRead Minima für {x, y} int maxima[] = {0, 0}; // Aktuelle analogRead Maxima für {x, y} int axis[] = {xAxis, yAxis}; // Pinnummern für {x, y} int mouseReading[2]; // Finale Position von {x, y} void setup() { Mouse.begin(); } void loop() { // Lies uns skaliere beide Achsen: int xReading = readAxis(0); int yReading = readAxis(1); // Bewege die Maus: Mouse.move(xReading, yReading, 0); delay(responseDelay); } /* Liest eine Achse (0 oder 1 für x oder y) und skaliert die analoge Eingabebreite auf eine Breite von 0 bis <range> */ int readAxis(int axisNumber) { int distance = 0; // Distanz von der Bildschirmmitte zum Rand // Lies den analogen Inputpin int reading = analogRead(axis[axisNumber]); // Wenn der aktuelle Wert das Maximum oder Minimum über-/ untersteigt, // setze das Maximum oder Minimum neu: if (reading < minima[axisNumber]) { minima[axisNumber] = reading; } if (reading > maxima[axisNumber]) { maxima[axisNumber] = reading; } // Mappe den gelesenen Wert von der Eingabebreite auf die Ausgabebreite: reading = map(reading, minima[axisNumber], maxima[axisNumber], 0, range); // Wenn die Ausgabe außerhalbe des Wartethresholds liegt, // nutze sie als Distanz: if (abs(reading - center) > threshold) { distance = (reading - center); } // Die Y-Achse muss invertiert werden, um die Bewegung richtig anzuzeigen. if (axisNumber == 1) { distance = -distance; } // Gibt die Distanz für die Achse zurück return distance; }

※ Anmerkungen und Warnungen:

Wenn das Mouse.move()-Kommando benutzt wird, übernimmt der Arduino die Tastatur! Stelle sicher, dass du Kontrolle über die Tastatur hast, bevor du das Kommando verwendest. Ein Button, um die Funktion notfalls zu sperren, ist sinnvoll.

Siehe Auch

Please note: These are affiliate links. If you buy the components through these links, We may get a commission at no extra cost to you. We appreciate it.