そのボード、僕が積んでおきます。

たくさんの電子工作基板が積みっぱなしになってるので、頑張って工作しようとしていますが、どんどん溜まっていっております。

FRDM-KL25Zでmbed【Lチカ編】

Getting Started with mbed

準備編に引き続き、mbedでLチカしてみることにする。

 

と言っても、mbed公式ページのインストラクションに従うだけ。

FRDM-KL25Z | 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ボタンを押し、ボードのリセットを掛ける。

http://mbed.org/media/uploads/sam_grove/kl25-slide4.jpgすると、LEDが赤く点滅を始める。これでLチカ完成。

 

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のピンアサインについては以下のページ。

frdm kl25z pinnames - | mbed

このページによると、LED1はLED_REDを示している。このボードのLEDはRGB LEDとなっているので内部的にはLED1〜LED3として接続されている。それぞれR、G、BのカラーのLEDとなっている。

http://mbed.org/media/uploads/sam_grove/kl25-slide3.jpg

 

また、図で示されている通り、この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で消灯となる。

 

ということで、次回はこのボードに載っているセンサー類を使ってみたいと思う。

 

Freescale FRDM-KL25Z

Freescale FRDM-KL25Z