image

こんにちはコハペペです。mbedマイコンのプログラムができるようになるよう、これから何回かにわたって、プログラムの作り方の紹介をしていきたいと思います。簡単なことから徐々にステップアップしながら、思い通りのプログラムが作れるように紹介していきます。

今日はデジタルアウト(DigitalOut)を紹介します。
デジタルアウトは、マイコンのピンを出力ピンに設定して、プログラムでピンの電圧をON(だいたい3V)、OFF(だいたい0V)と自由に変更できるようになります。


プログラムは新規作成の時に作られる物で説明していきます。
newclick
コンパイラの画面の左上の「新規」をクリックしてください。

newclickokdialog
新しいプログラムを作るかどうかの確認画面が出るので、そのまま「OK」をクリックしてください。

「main.cpp」がプログラムを作る場所になります。左側の「main.cpp」をクリックするとプログラムが表示されます。
newprogram

新規で自動的に作られるプログラムは、LED1という名前のピンを0.2秒ごとにONとOFFを繰り返すというプログラムになっています。ここでデジタルアウトが使われているので、このプログラムで説明していきます。


プログラムを書く流れとして、最初にプログラム全体で使う機能を書いておいて(宣言とか定義とかといいます)、その後、main(){ の後から最後の}までの間にプログラムを書いていきます。
pregramsengenmain

それでは全体で使う機能の所に何が書いてあるか見てみましょう。
1行目の #include "mbed.h" は、「このプログラムでmbedの様々な機能を使いますよ」という意味の命令です。必ず書いておきます。
3行目の DigitalOut myled(LED1); が、今回利用する「デジタルアウトを使いますよ」という意味の命令になります。
この命令は大きく DigitalOut myled(LED1); の3つに分けられます。この命令の意味は、「LED1という場所のピンを、 myledという名前で、デジタルアウトとして使います」となります。
ピンの場所は、下の図のようになっています。デジタルアウトが使えるピンはdp1からdp28までの dp~が書いてある19個のピンです。LED1はdp14と同じ意味で使えます。

mbedpinasigne

なので、「14番ピンmyledという名前で、デジタルアウトとして使います」ということになります。

例えば、別のピンdp1に変更したかったら
DigitalOut myled(dp1);
となります。

さて、次はプログラムの中を見てみましょう。
mbedはC++というC言語を基本とした言語で書いています。C言語では{から}までがプログラムのかたまりになります。
while(1)とはこの後に続く{から}の中のプログラムを無限ループしなさいという命令です。
無限ループの内容を見てみましょう。
myled1 = 1; とは、myledを1にしなさいという意味で、結果として14番ピンがONになります。
wait(0.2); とは、そのまま0.2秒待っててくださいという命令です。
次に myled1 = 0; とあるので、14番ピンがOFFになります。
次に wait(0.2); なので、また0.2秒待ちます。

なので、このプログラムは0.2秒ごとに14番ピンがONとOFFを繰り返すプログラムとなります。

コンパイルしてねこちゃんを使ってマイコンに書き込んでみましょう。
programcompileclick
「コンパイル」というボタンをクリックすると、マイコン用の命令に変換されファイルがダウンロードできます。
ねこちゃんとマイコンとのつなぎ方はこちらを参考にしてください。

次にLEDをマイコンにつなぎます。
14番ピンにLEDの長い足を、LEDの短い足をグランドの電源ラインに挿します。
image
LEDには青色を使います。赤や黄色、緑はONの時の電圧に耐えられないので、220Ωくらいの抵抗が必要です。今回は簡単のために、3Vに耐えられる青色を使います。

ねこちゃんをUSBでつないだ時に開いたドライブに、先ほどコンパイルでダウンロードしたファイルをコピーします。これでマイコンの書き込み完了です。赤いお目目を押してみましょう。


0.2秒くらいでLEDがチカチカしましたか?

今回のプログラムは「マイコンで発明しよう実験セット」で実験することができます。
nekochanset

次回は、LEDを増やしてみましょう。



スポンサードリンク