1.1 とりあえず使ってみる。(LED編)
.
mbedをとりあえず使ってみる。
以下のアドレスに最初の詳しい説明がある。
<Text1> http://mbed.org/users/nxpfan/notebook/lets_get_started_jp/
日本語化の説明も以下のページにあるが自分のIE7ではできなかった。
<Text2> http://mbed.org/users/weed/notebook/how_to_use_mbed_site_in_Japanese/
英語のままでも、通常使う分にはさほど難しくないと思います。
通常1つのmbedでは1つしかアカウント登録ができない様になっているらしいので、教育用で1台を複数人のGroupで使用するにはEducationのページをみて申請の必要がある。
環境
mbed LPC1768
☆Board Oreange
内蔵のLEDを使って勉強
1つのLEDの点滅はText1に載っていました。
LEDはLED1からLED4があるので、これを順次点灯するプログラムを作成します。
Basic編
シフトレジスタを使って行うシンプルな例
#include "mbed.h" //LED1からLED4をled1からled4に割り当てる。 DigitalOut led1(LED1); DigitalOut led2(LED2); DigitalOut led3(LED3); DigitalOut led4(LED4); int main() { int k=1; //初期化 while(1) { if(k>0x10)k=1; //kが0b00010000になったら0b00000001にする led1 = k & 0x01; led2 = k & 0x02; led3 = k & 0x04; led4 = k & 0x08; k=k<<1; //kの中を左に1つ移動 wait(0.1); //0.1秒待つ } }
配列を使用した方法
if文でkとlが同じ場合が点灯し、それ以外は消灯にしています。
#include "mbed.h" //led[0]をLED1,led[1]をLED2という風に定義 DigitalOut led[]={LED1,LED2,LED3,LED4}; int main() { int k,l; while(1) { for(k=0;k<4;k++){ //kを0から3まで変化させる for(l=0;l<4;l++){ //lを0から3まで変化させる if(k==l)led[l]=1; //kとlが同じならLEDを点灯(1を代入) else led[l]=0; //異なるなら消灯(0を代入) } wait(0.1); //0.1秒待ち } } }
BusOutを使用した方法
BusOutをLEDを束ねて使用できます。より単純になる。(これはHandbookのBusOutにある例とほぼ一緒)
#include "mbed.h" //Busの定義 BusOut leds(LED1, LED2, LED3, LED4); int main() { while(1) { for(int i=0; i<4; i++) { //iを0から3まで変化させる leds = 1 << i; //0b0001をiビット分左にシフトする。それに対応したLEDが点灯する。 wait(0.1); //0.1秒待ち } } }
ライブラリの作成方法も覚えましょう
ライブラリは新しいプログラムを中にできます。ライブラリをPublishすることで、あとで同じものを使うときに簡単に扱えたりします。
プログラムの作成
新しいプログラムを作成します。Newボタンを押します。
ファイル名を適当につけます。
ファイル名の上でマウスを右クリックしてNew Library...を選択
ライブラリの名前を登録します(この名前は重要?)
ソースとヘッダーを作成
ライブラリのフォルダの上で右クリックしてNew File ...を選択
そのあとソース(toggle.cpp)を作成する。
toggle.cpp
#include "mbed.h" void toggle(DigitalOut x) { x=!x; }
同様にヘッダーを作成する。
- ifndefを使用するのは二重定義を無くすためで、includeと関数定義だけでも今の時点では問題ありません。
toggle.h
#ifndef yueee_led_toggle_h #define yueee_led_toggle_h #include "mbed.h" void toggle(DigitalOut x); #endif
これで使用できます。
main.cppをライブラリをする様に変更してみましょう。
main.cpp
#include "mbed.h" #include "toggle.h" DigitalOut myled(LED1); int main() { myled=1; while(1) { toggle(myled); wait(0.2); } }
コンパイル&ダウンロードして正しく機能するか確認してみましょう。
次回から使用できるように
ライブラリのフォルダの上で右クリックしてPublish Libraryをクリック
説明等を書きます。チェックボックスのAdd to my public mbed profieにチェックが入っていると全世界の人のTopページに載ります。
こんな感じで!
新しいプログラムで使用してみましょう
新しいプログラムを作成するのでNewボタンを押します。
適当なプログラム名で登録します。(ここではLED_TEST2とします。)
My HomeのページでAll Libraryをクリック
登録したライブラリを選択
Import this library into a Programをクリックする。(2か所あるがどちらでも可)
mbed Compilerのページに移りImportの画面になるのでTarget Pathを変更する。(ここではLED_TEST2)
そのあとでImport!ボタンを押す
あとはソースの変更でOK!!
ちなみにProgramをPublishすると下記のような感じで見れます。忘記録に良いかも。使ったライブラリとかも表示されます。
PWMによるBlink
LEDどうもPWMに接続されているらしいので、確認する。
HandbookのPWMにSampleが用意されているので、コピー&ペーストで動かしてみよう!
!とても簡単!
少し修正し、消える方も追加する
PWM_LED2.cpp
#include "mbed.h" PwmOut led(LED1); int main() { while(1) { for(float p = 0.0f; p < 1.0f; p += 0.01f) { led = p; wait(0.01); } for(float p = 1.0f; p > 0.0f; p -= 0.01f) { led = p; wait(0.01); } } }
Please log in to post comments.