This is a sample program, "SevenSegmentLed" library this is. I re-create the sample program anew.
Dependencies: SevenSegLed mbed
7セグメントLED出力Libraryのサンプルプログラムの説明
<概要>
8桁までの7セグメントLEDの表示制御を行うLibraryと、Libraryを使用したサンプルプログラムについて説明します。
Libraryとサンプルプログラムは次のアドレスからダウンロードできます。
Library:
http://mbed.org/users/suupen/code/SevenSegLed/
サンプルプログラム:
http://mbed.org/users/suupen/code/SevenSegmentLedSample/
サンプルプログラムの動作
<Libraryについて>
7セグメントLED(正確には“ドット”を含めて8セグメントになります)をダイナミック駆動します。
8桁までの表示に対応しています。LPC1768なら、最初の端子設定で、1~8桁のいずれかを選択できます。
(LPC1114FN28では、未使用になるCOM端子があると動作しませんでした。この場合はLibrary自体を修正して、COMの未使用端子部分のコードを削除する必要があります)
LEDは設定変更で、アノードコモン、カソードコモンどちらでも使用できます。また、表示変化方法も、1秒かけてスムーズに変化するものと、遅れ無しに変化するモードを選択することが出来ます。
COM端子の切り替え周期は1[ms]ですので、8桁表示(8本のCOM端子)の場合は8[ms]で全桁の表示を行います。
スムース表示は、10[ms]毎に表示輝度を変化させています。
このLibraryで使用するmbed機能
- チッカータイマー(Ticker) 1[us]単位、1[ms]周期
使用可能な端子(LPC1768)
DigitalOut 設定が出来る端子。SEG端子、COM端子に割付の条件はありません。
使用可能な端子(LPC1114FN28)
DigitalOut 設定が出来る端子。
ただし、dp5,27 はopen drainなので、端子に電流を流し込む(アノードコモンのSEG端子、カソードコモンのCOM端子)の設定しかできません。
LPC1114FN28用の表示桁数変更
LPC1114FN28では、未使用のCOM端子があると動作しません。このため、4桁表示専用の定義を用意しました。
LPC1114FN28で4桁表示をする場合は、ヘッダファイルにある”USECOM4”の定義を有効にしてください。
(LPC1114FN28では、4,8桁以外では使えないことになります。これ以外の桁数の場合は、Libraryを改造してCOM端子の数を増減してください)
LPC1768では、上記の制限はありません。設定無しで、1~8桁表示のいずれかを選択できます。
SevenSegLed.hの設定箇所
Libraryの使い方
サンプルプログラムより
- 7セグメントLED出力する端子の指定:SevenSegLed
*7セグメントLEDへのデータ出力関数:sevenSegLed_main(数字部配列変数ポインタ、ドット部配列変数ポインタ)
表示データ格納用配列バッファは数字部、ドット部それぞれ用意してください。
サンプルプログラムでは、4桁表示なので、
- 数字部用 uint8_t D_7seg[4]
- ドット部用 uint8_t D_dot[4]
としています。
<サンプルプログラムについて>
mbed(LPC1768)を使用しています。
7セグメントLEDは、秋月通商(http://akizukidenshi.com/catalog/g/gI-03673/)のOSL40562-LRを使用しています。
電流制限抵抗は、100[Ω]を8本(SEG端子数分)使用しています。
電源はUSBから供給します。
回路図
ブレットボードでの配線\
プログラムの動作内容
USBから電源を供給すると、カウントアップ表示をします。
左側2桁が16進数表示、右側2桁が10進数表示です。左から2、4桁目のドットが1秒毎に交互に点滅します。
サンプルプログラムの設定は、スムース表示モードですが、端子設定か、設定変更用関数で、スムース表示と、ハード表示を変更できます。
表示変更方法
以上
History
This is a sample program, "SevenSegmentLed" library this is.; I re-create the sample program anew.
2013-12-27, by suupen [Fri, 27 Dec 2013 23:30:28 +0000] rev 0
This is a sample program, "SevenSegmentLed" library this is.; I re-create the sample program anew.