Profesor342
Bronz Üye
- Katılım
- 5 Ara 2024
- Mesajlar
- 31
- Beğeniler
- 4
Merhaba Aurduino Leonardo + Usb Host Shield'a sahibim. Mouse olarak logitech superlight g pro2 kullanıyorum. aurduino kodumu çalıştırdığımda mouse sadece sağa ve sola gidiyor. tüm click işlemleri çalışıyor. fakat tüm eksenlere doğru hareket etmiyor. Sorunu çözebilmeme yardımcı olur musunuz?
Kod:
#include <avr/pgmspace.h>
#include <Usb.h>
#include <usbhub.h>
#include <hidboot.h>
#include <hiduniversal.h>
#include <Keyboard.h>
#include <Mouse.h>
USB Usb;
HIDUniversal HidMouse(&Usb);
#define MOUSE_BACK 4
#define MOUSE_FORWARD 5
class MouseRptParser : public MouseReportParser {
protected:
virtual void OnMouseMove(MOUSEINFO* mi) {
Mouse.begin();
// X ve Y değerlerini ters çevirelim
Mouse.move(mi->dY, mi->dX, 0); // X ve Y'yi değiştirdik
Mouse.end();
}
virtual void OnLeftButtonUp(MOUSEINFO* mi) {
Mouse.begin();
Mouse.release(MOUSE_LEFT);
Mouse.end();
}
virtual void OnLeftButtonDown(MOUSEINFO* mi) {
Mouse.begin();
Mouse.press(MOUSE_LEFT);
Mouse.end();
}
virtual void OnRightButtonUp(MOUSEINFO* mi) {
Mouse.begin();
Mouse.release(MOUSE_RIGHT);
Mouse.end();
}
virtual void OnRightButtonDown(MOUSEINFO* mi) {
Mouse.begin();
Mouse.press(MOUSE_RIGHT);
Mouse.end();
}
virtual void OnMiddleButtonUp(MOUSEINFO* mi) {
Mouse.begin();
Mouse.release(MOUSE_MIDDLE);
Mouse.end();
}
virtual void OnMiddleButtonDown(MOUSEINFO* mi) {
Mouse.begin();
Mouse.press(MOUSE_MIDDLE);
Mouse.end();
}
};
MouseRptParser Prs;
void setup() {
Serial.begin(115200);
if (Usb.Init() == -1) {
Serial.println("USB Baslatilamadi.");
}
HidMouse.SetReportParser(0, (HIDReportParser*)&Prs);
}
byte buffer[3];
void loop() {
Usb.Task();
if (Serial.available() >= 3) {
Serial.readBytes(buffer, 3);
Mouse.begin();
// Buffer değerlerini de aynı şekilde ters çevirelim
Mouse.move(buffer[1], buffer[0], 0); // X ve Y'yi değiştirdik
Mouse.end();
if (buffer[2] == 1) {
Mouse.begin();
Mouse.click(MOUSE_LEFT);
Mouse.end();
}
}
}