はじめに
Lチカとは
Lチカとは、LEDをチカチカと点滅させる処理のことです。マイコンを動かしてみるときに皆さんが最初に試してみるプログラムですね。
単純なのでバカにされがちですが、LEDをトランジスタのスイッチに変えたり、ブザーにかえたりなど、すべての動作の基本になる物ではないでしょうか。
このページについて
このページでは、様々なLチカを想定してリスト化し、マイコンボードのAruduinoをつかって、一つ一つ動作させていこうと考えています。
これは自分の勉強の為のページであり、マイコンプログラミングを不退転の気持ちで勉強するために作りました。
Lチカのバリエーション
とりあえず現在の思いついたバリエーションを下記に記載します。
詳しい人なら見ただけでプログラムが想像できるのでしょうが、私は素人ですので、レベルは実際にやってみて難しければ変更する可能性があります。
別ページで個別に詳細説明したいと思います。
レベル0 基本
0-1:一定間隔でLチカ
標準的なサンプルプログラムを使った動作です。
0-2:2個交互にLチカ
上を少し応用(const intをつかってみる)
0-3:4個並べて1個づつLチカ
さらに応用(for文をつかってみる)
レベル1 ボタン入力を追加など
1-1:ボタンを押している間Lチカ
スイッチ入力、if文、内蔵プルアップを試す。
1-2:ボタンを押す度にLチカの状態が反転
ソフトとハードでのチャタリング対策を試す。
1-3:ボタンを押してから一定時間Lチカ
millis()関数を試す。
1-4:ふわっとLチカ
analogWrite関数でPWM出力を試す。
1-5:ふわっとLチカをスイッチでオンオフ
MsTimer2ライブラリで割り込みを試す。
1-6:ボタンを押している長さに応じてふわっとLチカ
MsTimer2の割り込みをさらに試す。
1-7:ロウソクのようにゆらゆらとLチカ
random関数、randomSeed関数を試す。
1-8:RGB三色交互にLチカ
switch case文を試す。
1-9:RGB三色ランダムな色でLチカ
random関数を使用、PWMの数値をLCDキャラクタディスプレイに表示させてみる。
1-10:パワーLEDをLチカ
Pch MOSFETを使ってスイッチングさせてみる。
レベル2 明るさ、周期のコントロール
2-1:可変抵抗でLチカの明るさをコントロール
analogRead関数によるAD変換、map関数による範囲変換を試す。
2-2:可変抵抗でLチカの周期をコントロール
2-3:ロータリーエンコーダでLチカの明るさをコントロール
ロータリーエンコーダ用のライブラリ「Encoder.h」を使ってみる。
2-4:ロータリーエンコーダでLチカの周期をコントロール
2-5:ボタンでRGBを選択し、3色ごとにロータリーエンコーダでLチカの明るさをコントロール
レベル3 外部センサを使ってみる
3-1:手を叩くと一定時間Lチカ
3-2:音の強さに応じてLチカさせる数量を変える
3-3:暗くなるとLチカ
明るさセンサのCdSセルを使ってみる。
3-4:手をかざすとLチカ
3-5:一定以上の温度・湿度になるとLチカ
3-6:傾けるとLチカ
3-7:土が乾燥しているとLチカ
レベル4(おまけ)LCDモニタで表示させてみる
4-1:2-1~2-4のLチカの明るさ・周期をLCDに表示させてみる
4-2:2-5の状態をLCDに表示させてわかりやすくしてみる
4-3:3-5の温度・湿度をLCDに表示させてみる
おわりに
上記の内容が出来れば、LEDの代わりに何かを繋げて、やりたいことが何となく実現できるような気がしてきますね。
ただ、ここまで書いてLチカの限界にも気付いてしまいました。
それは、Lチカの結果から何かを作用させた結果をフィードバックすることが出来ないということです、、、例えば、LEDの代わりにヒーターをONさせて、その結果温度がある程度上昇すればヒーターOFFなど。
これは、Lチカから進んで、更にフィードバック制御の勉強が必要ですね。