FRDM-KL25Zでmbed【Lチカ編】
Getting Started with mbed
準備編に引き続き、mbedでLチカしてみることにする。
と言っても、mbed公式ページのインストラクションに従うだけ。
このページの「Downloading A program」から「HelloWorld_KL25Z.bin」をクリック、以下のファイルをダウンロードする。
http://mbed.org/media/uploads/sam_grove/mbed_blinky2_kl25z.bin
ダウンロードされたファイル「mbed_blinky2_kl25z.bin」を「MBED」ドライブにコピーする。すると、オンザフライで書き込みが開始され、自動的にMBEDドライブがアンマウント、リマウントされる。リマウントされれば書き込みは完了しているので、USBポートの間のRESETボタンを押し、ボードのリセットを掛ける。
Lチカの中身を探る
Lチカのプログラムを見てみる。mbedのオンラインコンパイラで新規プログラムを作成する際、テンプレートとして「Blinky LED Hello World」を選択すると出てくるのが以下のプログラム。
#include "mbed.h"
DigitalOut myled(LED1);
int main() {
while(1) {
myled = 1;
wait(0.2);
myled = 0;
wait(0.2);
}
}
LED1をデジタル出力とし、0.2秒でH(1)とL(0)を繰り返すというプログラムとなっている。
FRDM_KL25Zのmbedのピンアサインについては以下のページ。
このページによると、LED1はLED_REDを示している。このボードのLEDはRGB LEDとなっているので内部的にはLED1〜LED3として接続されている。それぞれR、G、BのカラーのLEDとなっている。
また、図で示されている通り、このLEDがアサインされているピンはPWM出力が可能なので、RGBの組み合わせとPWM出力で自由な色で光らせることができる。
#include "mbed.h"
PwmOut myled(LED1);
int main() {
while(1) {
myled = myled + 0.01;
wait(0.2);if (myled == 1.0) {
myled = 0;}
}
}
このように、DigitalOutクラスではなく PwmOutクラスを用い、値にLとHの2値ではなく、小数値を用いる。
このプログラムを動かすとわかるが、数値を大きくしていくと、明るさが増すのではなく明るさが減っていく。
http://cache.freescale.com/files/soft_dev_tools/hardware_tools/schematics/FRDM-KL25Z_SCH.pdf
ボードの回路図を見てみると、このRGB LEDはアノードコモンのLEDで、マイコン側がカソードに接続しているので、Lで点灯、Hで消灯となる。
ということで、次回はこのボードに載っているセンサー類を使ってみたいと思う。