はじめに
タクトスイッチと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件) を見る