やっと、本編に突入です。
1-1.ArduinoでLEDを光らせよう
ArduinoでLEDを光らせるためには、
出力をON/OFFする必要があります。
Arduinoでは、デジタルPIN (D0~D13)をON/OFF制御することによりLEDを光らせられます。
デジタルPIN (D0~D13)のうち、D13は基板上にあるLEDと接続されています。
簡単な動作を確認するには、D13を制御するのが手っ取り早いですね。
Arduinoのデジタルピンを扱うには、以下の2ステップ(+1ステップ)を実施することで
制御が出来ちゃいます。
① 対象PINの設定を出力に設定する
以下のAPIで、PinModeを出力に設定します。
pinMode(13, OUTPUT)
② 対象PINの端子をON/OFF制御する
出力ON時 digitalWrite(13, HIGH)
出力OFF時 digitalWrite(13, LOW)
+③時間制御する
delay(500); ←500msです。
※各APIは、後述するAPIリファレンスを参照してみてください。
◆ArduinoのAPIリファレンス
以下、APIリファレンスを日本語で書いてくれています。
ブクマお勧めしますよ!
これを元に、昨日書き込んだ点滅のプログラムを見てみましょう
-------------------------
// setup (起動時に一回だけ呼び出される。初期処理を記載するところ)
void setup() {
// ①PinModeSetting //
pinMode(LED_BUILTIN, OUTPUT);
}
// loop (起動後ぐるぐる呼び出される)
void loop() {
// ②出力設定 LEDをON //
digitalWrite(LED_BUILTIN, HIGH); // led on
// ③500ms待つ //
delay(500);
// ②出力設定 LEDをOFF //
digitalWrite(LED_BUILTIN, LOW); // led off
// ③500ms待つ //
delay(500);
}
-------------------------
これで、
起動時にPin13を出力に設定し、
その後ぐるぐる呼び出される処理で、500msON、500msOFFのチカチカを実装しています。
マイコンを制御したことがある方は判ると思いますが、
H8やPICのように、マイコンに依存する対象のPINのアドレスを意識する必要はありませんし
いきなり構造体を理解する必要もありません。
楽ですね。
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
雑談
マイコンでLEDを光らせるには、
特定の端子をON/OFF制御することになります。
Arduino UNOだとジャンパーピンをつけやすいようになっています。
Arduino Nanoだと、そもそもブレッドボードに直接させますね。
ブレッドボードに刺し込むだけなら、PICでも刺すことができるのですが、
PICの場合、プログラムの書き込みに専用ライターが必要ですので、
結局指し変えが必要でした。
ArduinoはUSBのみでプログラムかけるので、差し替え不要ですね。
また、回路を作成する際には、PINの情報をマニュアルを出して
PINの役割を調べた上で、2列のPINを数えるという手間が必要でした。
Arduinoは、Pinの根元にはデジタルPINかアナログPINかの情報が記載されていて、
さらに順番に並んでいるので、
マイコンを学習するには、やりやすい環境かなと思います。
また、PINの設定もとても楽ですね。
H8シリーズでは、マイコンPINをI/O制御するだけで、
PDR(DDR)の設定、PCRの設定、
それも、レジスタを制御しなければなりませんので、
アセンブリでアドレス割り当てするか、pragmaで割り当てる
Cプログラム初心者にはとてもハードルが高かったと思います。
学生時代、SAIは後輩が使いやすいように関数群をまとめようとしていました。
ビルドも、基本的な動作ならバッチファイルで済ませられるようにしていましたが、
Arduinoは開発環境までセットで行われているのがすごいですね。
開発者には脱帽です。
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
今日はここまで。
SAIでした。
















