arduinoをさわってみる

2010/04/25

Categories: arduino

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

準備:


実装

実装、というほどのことはしていないけど、なにかしら入力と出力があるものしたいなと考え、
 スイッチを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 ここから大ジャンプは無理だけど

>> Home