Arduino Buton İle Fare Kontrolü (Push Button)

0
577
Okunma

Arduino Buton İle Fare Kontrolü

Arduino Buton İle Fare Kontrolü

Arduino Buton İle Fare Kontrolü. Fare kütüphanesini kullanarak, bir bilgisayarın ekran imlecini Arduino Leonardo, Micro veya Due ile kontrol edebilirsiniz. Bu özel örnek, ekrandaki imleci hareket ettirmek için beş düğme kullanır. Düğmelerin dördü yönelimli (yukarı, aşağı, sol, sağ) ve bir sol fare tıklaması içindir

Arduino’dan gelen imleç hareketi her zaman akrabadır. Bir giriş okunduğunda, imlecin pozisyonu güncel pozisyonuna göre güncellenir.

Yön düğmelerinden birine basıldığında, Arduino, HIGH girişini uygun yönde 5 aralığına eşleyerek fareyi hareket ettirecektir.

Beşinci düğme, fareden sol tıklamayı kontrol etmek içindir. Basıldığında, tahta bilgisayara basar. Düğme bırakıldığında, bilgisayar olayı tanıyacaktır.

Not: Mouse.move() komutunu kullandığınızda, Arduino bilgisayarınızın imlecini devralır! Bu işlevle bir çizim çalıştırırken bilgisayarınızın denetimini kaybetmemenizi sağlamak için, Mouse.move () öğesini çağırmadan önce bir denetleyici ayarladığınızdan emin olun. Bu çizim sadece bir tuşa basıldığında imleç konumunu günceller.

Arduino Buton İle Fare Kontrolü

Donanım

Devre

Kartınızı bilgisayarınıza bir mikro USB kablosuyla bağlayın. Düğmeler 2’den 6’ya kadar dijital girişlere bağlanır. 10k ohm pulldown dirençleri kullandığınızdan emin olun.

Kod

/*
ButtonMouseControl

Sadece Leonardo ve Due kurulları için.

Bir Arduino Leonardo, Micro veya Due üzerinde beş butondan fareyi kontrol eder.

Donanım:
- D2, D3, D4, D5, D6'ya takılı beş düğme

Fare hareketi her zaman görelidir. Bu taslak dört butonu okur,
ve farenin hareketini ayarlamak için bunları kullanır.

UYARI: Mouse.move () komutunu kullandığınızda, Arduino sizin
fare! Fare komutlarını kullanmadan önce kontrolünüz olduğundan emin olun.

oluşturuldu 15 Mar 2012
modifiye 27 Mar 2012
Tom Igoe tarafından

Bu örnek kod kamu malıdır.
http://www.arduino.cc/en/Tutorial/ButtonMouseControl
*/

#include "Mouse.h"

// beş düğme için pin sayılarını ayarlayın:
const int upButton = 2;
const int downButton = 3;
const int leftButton = 4;
const int rightButton = 5;
const int mouseButton = 6;

int range = 5;              // X veya Y hareketinin çıkış aralığı; hareket hızını etkiler
int responseDelay = 10;      // ms cinsinden farenin yanıt gecikmesi


void setup() {
  // düğmelerin girişlerini başlatır:
  pinMode(upButton, INPUT);
  pinMode(downButton, INPUT);
  pinMode(leftButton, INPUT);
  pinMode(rightButton, INPUT);
  pinMode(mouseButton, INPUT);
  // fare kontrolünü başlat:
  Mouse.begin();
}

void loop() {
  // düğmeleri oku:
  int upState = digitalRead(upButton);
  int downState = digitalRead(downButton);
  int rightState = digitalRead(rightButton);
  int leftState = digitalRead(leftButton);
  int clickState = digitalRead(mouseButton);

  // Düğme durumlarına göre hareket mesafesini hesaplayın:
  int  xDistance = (leftState - rightState) * range;
  int  yDistance = (upState - downState) * range;

  // X veya Y sıfırdan farklıysa, taşı:
  if ((xDistance != 0) || (yDistance != 0)) {
    Mouse.move(xDistance, yDistance, 0);
  }

 // Fare düğmesine basıldığında:
  if (clickState == HIGH) {
    // Fare basılmadıysa, basın:
    if (!Mouse.isPressed(MOUSE_LEFT)) {
      Mouse.press(MOUSE_LEFT);
    }
  }
  // eğer fare tuşuna basılmamış:
  else {
    // Fareye basıldığında, bırakın:
    if (Mouse.isPressed(MOUSE_LEFT)) {
      Mouse.release(MOUSE_LEFT);
    }
  }

  // bir gecikme dolayısıyla fare çok hızlı hareket etmiyor:
  delay(responseDelay);
}

Hata Ayıklama:

Tüm işlemleri doğru yaptığınızdan emin olun. Elektronik kısımda tüm kabloları ve komponentleri tekrar gözden geçirin. Arduino’unuzun düzgün çalıştığından emin olun. Arduino IDE’de doğru kartı seçtiğinizden ve yükleme sırasında herhangi bir hata olup olmadığını gözlemleyin.

Kartın düzgün çalışıp çalışmadığını anlamak için, hazır örnek skeçler içinde “blink” örneğini karta yükleyerek test edin.

Kart düzgün çalışıyorsa muhtemel sorun elektronik kısımdadır.

Kaynak:arduino.cc

CEVAP VER

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.