マイコン入門spacer ad
トップページに戻る(マイコン徹底入門:STM32で始めるARM/Cortex-M3組み込み開発)
「マイコン徹底入門」とは? |  「マイコン徹底入門」を読む |  ダウンロード |  掲示板 |  筆者の自己紹介


Previous: 9.4.1. USART

Up: 9.4. ソフトウェアと外付け回路の詳細

Next: 9.4.3. 振動モータ


マイコン徹底入門:RTOS編:フリーのリアルタイムOS活用法: 9. FreeRTOSを利用したマウスロボット: 9.4. ソフトウェアと外付け回路の詳細:

9.4.2. LED

9?8 回路図

 人間の視覚効果上、LEDPWM点灯をさせても、暗くなったと感じにくく、結果消費電力の節約になるそうです。そこでPWM点灯時に輝度を低下させないようにするため、本来の定格電流よりも大きな電流が流れる抵抗値を選定して接続しました。だいたい定格の4倍程度になるように抵抗値を計算してみました。上記の抵抗値だと、そのまま5Vの電源に接続したときには、赤71mA、黄79mA、緑75mAの電流が流れました。その上でデューティー比を4分の1以下にできれば、消費電流の節約になったといえます。このサンプルでは5%~9%にまで落としましたが、室内での状態確認用としては十分な視認性が得られました。全部のLEDを点灯させたときに、各LEDの輝度が同程度になるように調整するとよいでしょう。ちなみに本来はこういった使い方は定格違反ですから、LEDやドライブしているバッファICが壊れない保証はどこにもありません(壊れても誰にも文句は言えません)

 prvTask_StatusLED_Control関数によるタスクは複数のLEDをそれぞれ別々の点灯パターンで点灯させるためのものです。キューprvTask_StatusLED_ControlStatusLEDQueue_Type型変数で指令送ると、指定したLEDが一定のパターンで点滅します。

typedef struct

{

? uint8_t LEDNumber;

? uint8_t LEDStatus;

} StatusLEDQueue_Type;

 点灯パターンは列挙型StatusLEDStatus_Typeで指定できます。

typedef enum {STATUSLED_OFF = 0, STATUSLED_ON = 1, STATUSLED_FAST = 2, STATUSLED_SLOW = 3, STATUSLED_FLASH = 4} StatusLEDStatus_Type;


Previous: 9.4.1. USART

Up: 9.4. ソフトウェアと外付け回路の詳細

Next: 9.4.3. 振動モータ


このページはITと知的財産の法律情報「法務ネット」の管理人が制作・運営しています。