arduinoで4桁7セグメントLEDの表示
arduinoでの4桁7セグメントLEDの表示を行うメモです。
7セグメントLEDの基礎については、下記の記事が参考になると思います(2015/01/28追記)
武蔵野電波のブレッドボーダーズ 「7セグメントLEDを使ってみよう」
武蔵野電波のブレッドボーダーズ 「LEDは楽しい電子部品」
まともに動かすのに意外と時間がかかります。
4桁7セグメントLED表示機能の詳細
LEDを表示します。
利用した部品
・赤色7セグメントLED表示器(カソードコモン) OSL40562-LR x 1 ・・・ 秋月電子にて購入
・12ビットシリアル-パラレル変換IC NJU3714D x 1 ・・・ 秋月電子にて購入
・トランジスタアレイ(7ch)TD62003AP x 1 ・・・ 秋月電子にて購入
・1/4W 330Ω カーボン抵抗 x 8 ・・・ 秋月電子にて購入
NJU3714Dはポピュラーなシフトレジスタ74HC595と同じように使えます。
12ビットあるので、表示パターン用の8ビットと桁切り替え用の4ビットを1つで制御できます。
LEDに使う抵抗値の計算
秋月電子のHPに計算方法が紹介されていたので計算しました。
OSL40562-LR の商品説明およびデータシートからVF=2.0V、IF10mAとすると
抵抗 = (5V -2.0V) / 10mA = 300Ω となります。
手持ちの330Ωを利用することにします。
この時にカーソドードコモン流れる最大電流は1桁当たり8個のLEDが点灯するので
10mA x 8 = 80mA
となり80mA必要です。
arduino UNOでは1ピン当たり40mAしか流せないのでこのままではLEDが
点灯出来ません。そこでトランジスタを使ってもっと多く流すようにします。
今回はトランジスタアレイTD62003APを使いました。
このICは7つ分のNPNダイリストントランジスタが入っていて抵抗やらも内蔵されているので、
直接ロジックピンに接続して利用できます。
このあたりは、『昼夜逆転』工作室(J.Sugitaさん) のホームページの
「8桁対応 7セグテストボード」の記事が大変参考になりました。
取りあえず、回路もどきを書いてみました。
うーん、PowerPointで書いたのでちょっと汚いです。
フリーのツールいろいろと試したのですが、データシートの図を流用できる
ようなのが無いので自分的にはPowerPointが一番楽でした。
赤線がarduinoに接続する配線です。
プログラムソース
LEDへ4桁表示するには、led_print("1234")のように文字列で指定します。
led_print("12.34")、led_print("-12.3")等の小数点やマイナス記号も指定できます。
表示処理はタイマー割り込みで20msecの間隔で行っています。
タイマー割り込みライブラリはMsTimer2を使っています。入手方法及び使い方は、
「Arduino 日本語リファレンス MsTimer2(ミリ秒単位で指定するタイマ)」を参照。
プログラム作成にあたっては、
くらんべりーさんのブログ 「特に縛りなく」の「arduinoで4桁7セグメントLEDを使ってみる」を
参考にさせて頂きました。大変勉強になりました。
取りあえず試作が出来たので、プログラムはライブラリ化し、電子回路は基板に
はんだ付けしてモジュール化しようと思います。
今回の回路はICを2つ使ったのですが、MAX7219というICを使うともっと回路の簡略化、
プログラムの簡略化が出来るようです。
続き :「arduinoで4桁7セグメントLEDの表示 の続き」
« 膝の上の湯たんぽ | トップページ | 無線LANルータ TP-Link TL-WR703NでWebカメラを利用する »
「arduino」カテゴリの記事
- Freenove Mecanum ホイール カー キットを購入しました(2025.05.28)
- Arduino IDE+Arduino STM32環境で指定と異なるgccが使われてしまう(2025.01.23)
- Zorin OSでArduino Uno互換機(CH340)が認識しない(2025.01.19)
- Arduino IDE 2.3.4でArduino STM32を利用する(2025.01.12)
- Arduino用 SKK日本語変換ライブラリの開発 その1(2024.12.28)
「AVR」カテゴリの記事
- NeoPixel(WS2812B)の制御 その5(2024.09.15)
- Arduino用SJIS漢字フォントライブラリ SDカード版を作成しました(2018.10.30)
- ATtiny13AでI2C接続キャラクタLCDを利用する(4)(2018.04.16)
- ATtiny13Aで赤外線リモコン受信センサーを使う(2)(2018.04.15)
- ATtiny13AでHC-SR04を使った距離計測(2018.04.14)
「表示器制御関連」カテゴリの記事
- NeoPixel(WS2812B)の制御 その5(2024.09.15)
- Arduino用 美咲フォントライブラリを更新しました(2024.03.21)
- Raspberry Pi Pico(MicroPython)でLEDドットマトリックスを使ってみる(2024.03.14)
- Raspberry Pi Pico MicroPython用のマルチフォントライブラリ(2023.02.09)
- MicroPython(Raspberry Pi pico)で8x8ドットNeoPixcel文字表示(2023.02.08)
コメント
« 膝の上の湯たんぽ | トップページ | 無線LANルータ TP-Link TL-WR703NでWebカメラを利用する »
SPI使えれば足し算でスマートにできるかも(ICを調べる気はない)
投稿: | 2015年8月 5日 (水) 20時06分