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.
We care about the privacy and personal data of our users.
To continue, please give us your consent:
Please confirm that you have read the privacy policy
Thank you for subscribing!
Curious to learn more?
Are you also a teacher, student, or professional that loves using Arduino in your day-to-day activities?
Then keep up-to-date with either our STEM or Professional monthly newsletters.
Arduino weekly newsletter (already subscribed)
Educators can benefit from the ever growing tech that shapes our environment through fun cool projects.
Why not awe your boss with highly innovative ways to help keep your enterprise connected at no extra cost?
Arduino Survey
We'd like to get to know you little better.
Please help us improve by answering this super short optional survey.