はじめに
タクトスイッチとPro Microの HID機能を使って文字入力してみた とカーソルの移動をやってみた
そのうちキーボードを作ってみたい
つかったもの

Longruner 押しボタンスイッチ 瞬間的な触覚 10種類 タクトスイッチ 180個入り LP12
- 出版社/メーカー: Longruner
- メディア:
- この商品を含むブログを見る
10kΩ抵抗

uxcell カーボン抵抗 炭素皮膜抵抗器 アキシャルリードタイプ 1/4W 250V 10K Ohm 50 本入
- 出版社/メーカー: uxcell
- メディア:
- この商品を含むブログを見る
ブレッドボード

ELEGOO 830タイーポイントブレッドボード はんだレスブレッドボード Arduino UNO R3 Mega2560 Nano適用 (3)
- 出版社/メーカー: ELEGOO
- メディア:
- この商品を含むブログを見る
キーボードライブラリで文字入力
回路図
回路はこんな感じ


スケッチ
今回はタクトスイッチを押した回数を
カウントして入力するスケッチを書いた
キーボード入力として使うときは
#include <Keyboard.h>
をインクルードする
#include <Keyboard.h>
const int button = 14;
int preState = HIGH;
int counter = 0;
void setup() {
pinMode(button, INPUT);
Keyboard.begin();
}
void loop() {
int state = digitalRead(button);
if((state != preState) && (state == HIGH)) {
counter ++;
Keyboard.print(counter);
Keyboard.println("times");
}
preState = state;
}

改行コードが入って無かったんで
次のように変えてみると
Keyboard.println("times\n");

マウスライブラリでカーソルの移動
カーソルの移動方向は画面の水平方向。
一応動くけど反応速度がすごく遅いのと
動き出したら止まらないw
回路図
回路図は次に感じ。1つタクトスイッチを増やした。

スケッチ
#include <Mouse.h> //ライブラリ
const int left = 14;
const int right = 15;
int range = 5; //移動する距離
int resDelay = 10; //Delay時間
void setup() {
pinMode(left, INPUT);
pinMode(right, INPUT);
Mouse.begin();
}
void loop() {
int rightState = digitalRead(right);
int leftState = digitalRead(left);
int xDistance = (leftState - rightState) * range;
//xDistanceが0じゃないとき
if (xDistance != 0) {
Mouse.move(xDistance,0,0);
}
delay(resDelay);
}
<参考文献>
Arduino Leonardo(Pro Micro)のHID(キーボード)機能を使う(ショートカットキー実行,コマンド実行) - Qiita

Arduinoをはじめよう 第3版 (Make:PROJECTS)
- 作者: Massimo Banzi,Michael Shiloh,船田巧
- 出版社/メーカー: オライリージャパン
- 発売日: 2015/11/28
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (5件) を見る
![HiLetgo® Leonardo Pro Micro ATmega32U4 5V/16MHz ブートローダ マイクロ USB Pro mini Arduinoに対応 [並行輸入品] HiLetgo® Leonardo Pro Micro ATmega32U4 5V/16MHz ブートローダ マイクロ USB Pro mini Arduinoに対応 [並行輸入品]](https://images-fe.ssl-images-amazon.com/images/I/51RtIbqL5HL._SL160_.jpg)