Vezérelje a kurzor mozgását 5 nyomógombbal.
Utolsó felülvizsgálat: 2022.02.04 16:50
A Mouse könyvtár segítségével vezérelheti a számítógép képernyőn megjelenő kurzorát egy Arduino Leonardo, Micro vagy Due segítségével. Ez a konkrét példa öt nyomógombot használ a képernyőn megjelenő kurzor mozgatására. A gombok közül négy irányító (fel, le, balra, jobbra), egy pedig a bal egérgombbal azonos.
A kurzor mozgása az Arduino-nál mindig relatív. Minden alkalommal, amikor egy bemenetet olvas, a kurzor pozíciója frissül az aktuális pozícióhoz képest.
Amikor valamelyik iránygombot megnyomják, az Arduino mozgatja az egeret, és a HIGH bemenetet 5-ös tartományra képezi le a megfelelő irányba.
Az ötödik gomb a bal egérgombbal történő kattintás vezérlésére szolgál. Ha megnyomja, a kártya gombnyomást küld a számítógépnek. A gomb elengedésekor a számítógép felismeri az eseményt.
Megjegyzés: Amikor a Mouse.move()
parancsot használja, az Arduino átveszi a számítógép kurzorát! Annak érdekében, hogy ne veszítse el az uralmat a számítógépe felett, miközben vázlatot futtat ezzel a funkcióval, feltétlenül állítson be egy vezérlőt, mielőtt meghívná a Mouse.move()-t. Ez a vázlat csak egy gomb megnyomásakor frissíti a kurzor pozícióját.
Hardver szükséglet
Arduino Leonardo, Micro vagy Due kártya
5x pillanat-nyomógomb
5x 10k ohmos ellenállás
összekötő vezetékek
dugdosós próbapanel (breadboard)
Az áramkör
Csatlakoztassa a kártyát a számítógéphez mikro-USB-kábellel. A gombok 2 - 6 digitális bemenetekhez csatlakoznak. Győződjön meg róla, hogy 10 kohmos lehúzó ellenállást használ.

Vázlat

A kód
/*
ButtonMouseControl
Csak Leonardo és Due kártyákhoz.
Az Arduino Leonardo, Micro vagy Due öt nyomógombbal vezérli az egeret.
Hardware:
- öt nyomógomb a D2, D3, D4, D5, D6-hoz csatlakoztatva
Az egér mozgása mindig relatív. Ez a vázlat négy nyomógombot olvas,
és ezek segítségével állítja be az egér mozgását.
FIGYELEM: Amikor a Mouse.move() parancsot használja, az Arduino átveszi az egeret!
Az egérparancsok használata előtt győződjön meg arról, hogy rendelkezik a vezérléssel.
created 15 Mar 2012
modified 27 Mar 2012
by Tom Igoe
Ez a kód nyilvános.
https://docs.arduino.cc/built-in-examples/usb/ButtonMouseControl
*/
#include "Mouse.h"
// állítsa be a kivezetésszámokat az öt gombhoz:
const int upButton = 2;
const int downButton = 3;
const int leftButton = 4;
const int rightButton = 5;
const int mouseButton = 6;
int range = 5; // X vagy Y mozgás kimeneti tartománya; befolyásolja a mozgás sebességét
int responseDelay = 10; // az egér válaszkésleltetése, ms-ban
void setup() {
// inicializálja a gombok bemeneteit:
pinMode(upButton, INPUT);
pinMode(downButton, INPUT);
pinMode(leftButton, INPUT);
pinMode(rightButton, INPUT);
pinMode(mouseButton, INPUT);
// inicializálja az egérvezérlést:
Mouse.begin();
}
void loop() {
// olvasd le a gombokat:
int upState = digitalRead(upButton);
int downState = digitalRead(downButton);
int rightState = digitalRead(rightButton);
int leftState = digitalRead(leftButton);
int clickState = digitalRead(mouseButton);
// Számítsa ki a mozgási távolságot a gomb állapotai alapján:
int xDistance = (leftState - rightState) * range;
int yDistance = (upState - downState) * range;
// ha X vagy Y nem nulla, mozgassa:
if ((xDistance != 0) || (yDistance != 0)) {
Mouse.move(xDistance, yDistance, 0);
}
// ha megnyomja az egérgombot:
if (clickState == HIGH) {
// ha az egér nincs lenyomva, nyomja meg:
if (!Mouse.isPressed(MOUSE_LEFT)) {
Mouse.press(MOUSE_LEFT);
}
}
// else nincs megnyomva az egérgomb:
else {
// ha meg van nyomva az egér, engedje el:
if (Mouse.isPressed(MOUSE_LEFT)) {
Mouse.release(MOUSE_LEFT);
}
}
// késleltetés, hogy az egér ne mozogjon túl gyorsan:
delay(responseDelay);
}
Tudj meg többet
További alapvető oktatóanyagokat a beépített példák részben talál.
Felfedezheti a nyelvi referenciát is, az Arduino programozási nyelv részletes gyűjteményét.