2011年9月28日水曜日

Arduinoの基本

Arduinoのセッティング
Arduinoサイトの「Getting Started」ページに、MacOSX、Windows、Linuxごとのセッティングの説明があるので、それに従ってセッティングします。
OSがWindowsの場合やArduinoボードが旧型のDuemilanoveやDiecimilaなどの場合は、付属のドライバソフトをインストールする必要があります。

ArduinoボードをUSBケーブルを通してパソコンに接続します。
Tool>Boardから使用しているArduinoボードのタイプを選択。
Tool>Serial Portから一番上のポートを選択。
動作確認のため次のプログラムをArduinoボードに書き込みます。
File>Examples>1.Basics>Blink
以下がBlink(LED点滅)のプログラムです。
Arduinoボード上端にデジタルピン0〜13番があり、13番ピンの下方にある内蔵LEDが点滅します。あるいは普通のLEDを13ピンとGNDピンに差し込んでも構いません(LEDの足の長い方を13番ピン、短い方をGNDピン)。GNDピンは13番ピンの左側にあります。

void setup() {
pinMode(13, OUTPUT); //13番ピンを出力用に設定
}

void loop() {
digitalWrite(13, HIGH); //13番ピンを5Vで出力:LEDオン
delay(1000); //1秒間待機
digitalWrite(13, LOW); //13番ピンを0Vで出力:LEDオフ
delay(1000); //1秒間待機
}



プログラムをArduinoボードにアップロードするには:
ソフト上のVerifyボタンを押してコンパイルします。

問題なければ「Done Compiling.」が画面下部に表示されます。
そして、「Upload」ボタンを押してAruinoボードにプログラムを書き込みます。

アップロード中にはArduinoボードのLED(TXとRX)が高速で数秒間点滅します。
問題なければ「Done uploading.」が画面下部に表示されます。
以上でプログラムの書き込みは終了です。
上記プログラムは13番端子のLEDが1秒ごとに点滅する内容です。
プログラム内のdelay(1000);の括弧内の数字を変えれば点滅する速度を変えることができます。単位はミリ秒なので1秒は1000になります。
digitalWrite(13, HIGH)の括弧内のHIGHはそのピンを5Vで出力することを意味しています。
LOWなら0Vの出力となりLEDは消灯します。
またpinMode()とdigitalWrite()の括弧内のピン番号を変えれば、違う箇所に接続したLEDを点灯させることができます。

プログラムする手順としては:
・どのピンを出力用にするか:pinMode(ピン番号)
・どのピンをHIGHまたはLOWで出力するか:digitalWrite(ピン番号,出力値)
・点灯や消灯の継続時間:delay(ミリ秒)
となります。1000ミリ秒=1秒です。


アナログ出力
上記はLEDの点滅でしたが、analogWrite()を使えばLEDの明暗を調節して点灯させることができます。ただし、ボード上にPWMと書かれた3,5,6,9,10,11の6本のピンのどれかに接続する必要があります。つまりこの6本のピンは設定によってdigitalWrite()とanalogWrite()を使い分けできるということになります。
analogWrite(ピン番号,出力値)という感じで、ピン番号と出力値を入れることで設定できます。
出力値は0〜255までの値を設定できます。0の時0V、255の時5Vになり、その間の値であれば数値に応じた出力量になります。
尚、analogWrite()はsetup(){...}内にpinMode()設定する必要はありません。

以下は変数valを用意して、徐々に明るくなって最大値に達したら0に戻るという内容です。
delay()で明るくなっていくスピードを設定しています。
LEDは11番ピンに接続してあります(LEDの足の長い方を11番ピン、短い方をGNDピンに接続)

int val=0;
void setup(){
//pinMode()設定は不要
}

void loop(){
analogWrite(11,val);//11番ピンを変数valの値で出力
val++; //+1ずつ出力値を増大させる
if(val>255){ //出力値が255を越えたら
val=0; //出力値を0に戻す
}
delay(20); //1ループ20ミリ秒にする
}

0 件のコメント:

コメントを投稿