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.














