ゆかりメモ

いろんなことのメモです。

オリジナルキーボードを作ってみる その4「Arduino入門編」

Arduinoを購入しても、何からしたらいいのかわかりません。 まずはベタにLチカしてみましょう。

前の記事はこちら。

eucalyn.hatenadiary.jp

Lチカしてみる

Arduino初心者がまず動かしてみるには、LEDをチカチカさせる通称Lチカプログラムがよさそうです。 なのでとりあえず動かしてみましょう。

ArduinoIDEを使えば、簡単にプログラム(スケッチ)のコンパイルとアップロードができます。

Arduino Micro等、LEDが載ってるマイコンボードの場合は以下のスケッチをアップロードすると自動的に基板のLEDがチカチカし始めると思います。

void setup() {
  pinMode(13, OUTPUT);
}

void loop() {
  digitalWrite(13, HIGH);
  delay(1000);
  digitalWrite(13, LOW);
  delay(1000);
}

これがLチカです。

LEDが載ってるArduinoのほとんどは13番ピンにオンボードLEDがアサインされてるため、 ここでは13番ピンを使用しています。

ちなみにProMicroの場合普通の13番オンボードLEDはありませんが、代わりにRXLEDとTXLEDがあり、 実はRXLEDは17番ピンにアサインされているため、13を17に書き換えればRXLEDでLチカが可能です。

プログラムでやってることは単純です。

2行目でピンを出力モードに設定して
6行目でHIGHを出力(5Vになる)するとLEDが光り、
7行目で1000ms待ってから
8行目でLOWを出力(0Vになる)するとLEDが消えます。

それを繰り返しているので1秒ごとにチカチカしてるわけです。

スイッチを繋いでみる

次はこれにスイッチを付けてみたくなりますね。 スイッチを押すとLEDが光って、離すとLEDが消えるイメージです。

どこかのピンにスイッチを繋いで、押したらON、離したらOFF!という感覚だと思います。

なのでスイッチを押したらVCC(5V)と繋がるようにしてみましょう。

スイッチを繋いでみるとこんな感じでしょうか。

スイッチを5Vから3番ピンに繋いでいます。 押すと5Vとつながってくれそうです。 しかし考えてみてください。 これではスイッチが押されていない時にどうなるやらわかりません。

何もつながってなければ0Vじゃないのか!と思いますが、そうじゃないのがめんどくさいところです。

なので、スイッチを押してない時は都合よくGNDと繋がってくれるように、3番ピンを更に抵抗を使ってGNDとつなぎます。 (この抵抗をプルダウン抵抗といいます。)

今回は10kΩの抵抗を使いました。 大体1kΩから10kΩくらいを使うことが多いようです。 するとこうなります。

これで、スイッチを押してない時は0V、押した時は5Vが3番ピンにインプットされることになりますね。

ではこれに従ってプログラムを書き換えてみましょう。

void setup() {
  pinMode(3,INPUT);
  pinMode(13, OUTPUT);
}

void loop() {
  if ( digitalRead(3) == HIGH ){
    digitalWrite(13, HIGH);
  } else {
    digitalWrite(13, LOW);
  }
}

これでスイッチを押せば光り、離せば消えるようになったと思います。

ところで何度も13とか3とか書くのはそろそろだるいですね。 定数にしておきましょう。

const int inputPin = 3;
const int ledPin =13;

void setup() {
  pinMode(inputPin,INPUT);
  pinMode(ledPin, OUTPUT);
}

void loop() {
  if ( digitalRead( inputPin ) == HIGH ){
    digitalWrite(ledPin, HIGH);
  } else {
    digitalWrite(ledPin, LOW);
  }
}

これで大体キーボードを作る際のArduinoの初歩はできたも同然なので、そろそろキーボードを作りたくなってきましたね。

次回はこれをキーボードにします。

eucalyn.hatenadiary.jp


まとめ記事はこちら。

eucalyn.hatenadiary.jp