昔のマウスが出てきたのでこれに仕込むことにしました。
開腹して、ケーブル、IC、コンデンサを外して、スイッチの回路を捜してつないでみた図。
開腹して、ケーブル、IC、コンデンサを外して、スイッチの回路を捜してつないでみた図。
動きました。
しかしチャタリングが酷くてワンクリックで二つも三つも進む。
プログラム修正しなくちゃ。
こういうのが面倒なんです。
作ってはみたものの、まだ実戦に投入してなかったデバウンスのためのライブラリを使って、全面的に書き直してみました。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <DebounceFunc.h> | |
#include <Keyboard.h> | |
const int BUTTON_PIN = 12; | |
const int LED_PIN = 13; | |
IsFALLING isFalling(50); | |
IsRISING isRising(50); | |
void setup() { | |
pinMode(BUTTON_PIN, INPUT_PULLUP); | |
pinMode(LED_PIN,OUTPUT); | |
digitalWrite(LED_PIN,LOW); | |
Keyboard.begin(); | |
} | |
void loop(){ | |
const int RAW_DATA = digitalRead(BUTTON_PIN); | |
if( isFalling(RAW_DATA) ) { | |
Keyboard.press(KEY_DOWN_ARROW); | |
digitalWrite(LED_PIN,HIGH); | |
} | |
if( isRising(RAW_DATA) ) { | |
Keyboard.releaseAll(); | |
digitalWrite(LED_PIN,LOW); | |
} | |
delay(1); | |
} |
すっきり。てか最初から使えっていう話。
デフォルトでは怪しかったのでデバウンスタイムを50msまで伸ばしてみました。
ちゃんと一回で止まります。
ダウンロード、使い方は、リンクから。
コメント
コメントを投稿