kuroの覚え書き

96の個人的覚え書き

Arduino Pro micro その2 ワンボタンキーボード

Arduino Pro microはArduino Leonardoの互換基板で、今回入手したのは更にそのコピー商品である。

このArduinoクローンの特徴としていわゆるArduino UNOなどスタンダードなシリーズがATMegaシリーズのAVRを使っているのと異なり、32U4というUSBインターフェイスを内蔵したチップを使っている。このチップのおかげでLeonardoシリーズはUSBデバイスとPCから認識されるため、自作キーボードクラスターでは自キー用コントローラとして重宝がられているのだ。

今回の目的もまさにそれなのだ。

ということでキーボード入力をまずはテストしてみる。

単純にデジタルピンにタクトスイッチの片足をつなげ、反対の足をGNDにつなぐだけの簡単回路でまずは試す。
デジタルピンをHIGHにしておいてGNDに落ちたらキー入力されたことになる。普通HIGHにするのにプルアップしておくのだが、内蔵抵抗でプルアップしておく便利機能もあるらしい。


f:id:k-kuro:20200829190505j:plain

#include "Keyboard.h"

const int buttonPin = 9;          // input pin for pushbutton
int previousButtonState = HIGH;   // for checking the state of a pushButton
int counter = 0;                  // button push counter

void setup() {
  // make the pushButton pin an input:
  pinMode(buttonPin, INPUT_PULLUP);
  // initialize control over the keyboard:
  Keyboard.begin();
}

void loop() {
  // read the pushbutton:
  int buttonState = digitalRead(buttonPin);
  // if the button state has changed,
  if ((buttonState != previousButtonState)
      // and it's currently pressed:
      && (buttonState == HIGH)) {
    // increment the button counter
    counter++;
    // type out a message
    Keyboard.print("You pressed the button ");
    Keyboard.print(counter);
    Keyboard.println(" times.");
  }
  // save the current button state for comparison next time:
  previousButtonState = buttonState;
}

サクッとサンプルを流用。今回ピンをd9にしたので変えたのはそこだけ。
タクトスイッチを押すたび、文字列とカウンターが入力されるという仕組み。
f:id:k-kuro:20200829190304p:plain