一か月ぐらい前にamazonで入門キットを購入したのだけど、忙しくてなんとなく放置してた。
キットに入ってたのは「Arduino Duemilanove 328」。

準備:

  • Arduinoの公式サイトからIDEをダウンロード。バージョンは0018。
    • JRE6が同梱されてる。
  • B端子のあるUSBケーブルを用意してPCとボードを接続
  • Windows 7の場合、ドライバは自動インストールをじっと待てばOK。そのまま使えるようになる。
    →公式サイトのGetting Startedで「Really, it works!」って書いてあるのがウケる。
    • ここの環境は64ビットだけど普通に使えた。
  • ここの環境では、USB Serial PortにCOM3が割り当てられた。

実装

実装、というほどのことはしていないけど、なにかしら入力と出力があるものしたいなと考え、
 スイッチをONにするとLEDが光る (^^;;
を目指してがんばる。。

12番ピンを出力としてLEDの点灯制御に。
11番ピンを入力としてスイッチの入力に。

タクトスイッチのどの足がどのように繋がるかも知らなかったので、テスタ片手にポチポチと試したり。

ネットで調べると、デジタルの入力にはプルアップ/プルダウン抵抗というのを付けるのだとか。
スイッチON→真でコードが書けないと気持ち悪いという理由でプルダウン抵抗にしてみる。
※Arduino(というかAVRマイコン?)は内部プルアップを持ってるので、回路的にはプルアップの方がシンプルに。

Arduino IDEを起動して、ボードの種類とCOMポートを設定。

コードはこんな感じに。


void setup() {
pinMode(12, OUTPUT);
pinMode(11, INPUT);
}

void loop() {
int sw = digitalRead(11);

if (sw) {
digitalWrite(12, HIGH);
}
else {
digitalWrite(12, LOW);
}

delay(100);
}

SN3E0065.JPG

コンパイルしてUpload。

タクトスイッチを押したらLEDが点灯した。わぁ。

入力にプルアップ/プルダウン抵抗を付けないと、スイッチOFF時の入力値が定まらないというか不安定になる、ということが、ソフトウェア屋からするとなんとも不思議な感じ。

digitalRead()の後で入力値を、
 Serial.println(sw);
でシリアルに出力してみると、確かに1だったり0だったりする。

ソフトウェアってのは多くの抽象化レイヤの上に成り立ってるのだな~と実感する。


環境:
  Windows 7 Ultimate x64
    Arduino 0018 (IDE)
  Arduino Duemilanove 328

Arduinoをはじめようキット
スイッチサイエンス
売り上げランキング: 1553
おすすめ度の平均: 4.5
5 これではじめました
4 USBはB端子です
5 ここから大ジャンプは無理だけど