PSoC 4 BLE で、Lチカしてみる(4)
「PSoC 4 BLE で、Lチカしてみる」の4本目。
LEDの明るさを制御してみます。
今回は、PWMを使います。PWMは、PRoC BLE / EZ-BLE でも使えます。特に EZ-BLEは小さいので、プラモデルなんかに組み込んで、BLE で LEDをコントールとかも出来そうです!
1. プロジェクトの作成
プロジェクト「LED04」を作成します。
2. コンポーネントを配置する
2-1. コンポーネントの配置
Component Catalog から、
・Clock
・PWM
・Digital Output Pin
・Logic Low '0'
を持ってきて、TopDesign.cysch に配置する。
2-2. Clockコンポーネントの設定
2-3. PWMコンポーネントの設定
2-4. Digital Output Pinコンポーネントの設定
2-5. コンポーネントの接続
各コンポーネントの設定後、このように接続します。
2-6. 配線
LED04.cydwr を開き、LEDを P2[6] につなぐ。
「Generate Application」ボタンを押す
3. コードを書く
Workspace Explorer から main.c を、開く。
コードはこんな感じ。
#include <project.h> int main() { CyGlobalIntEnable; /* Enable global interrupts. */ int led_output = 0; PWM_Start(); for(;;) { PWM_WriteCompare(led_output); led_output++; if(led_output > 255) led_output = 0; CyDelay(5); } }
4. 動作の説明(ざっくり)
PWM_WriteCompare( led_output ) で、LED の点灯時間を設定します。点灯時間は、led_output / 255 となります。led_output が255の時は、ずっとついていて、0なら消灯します。
このプログラムでは、led_output を1ずつ大きくしていって、255 になったら、0 に戻しています。
これで、LEDは、だんだんと明るくなり、明るくなったら、消灯に戻り、また明るくなるというのを繰り返します。
5. 実行
Programボタンを押して、実行。