パーツ解説

PICで7セグドライバTM1630を使ってみた

投稿日:2020-08-21 更新日:

今回は秋月電子で販売されている7セグメントLEDドライバ TM1630 を使用してみました。TM16301つで7セグ5桁または8セグ4桁をダイナミック点灯で制御することができます。※カソードコモンじゃないとダメなので注意

普通にPICで7セグを制御することも可能ですが、ダイナミック点灯させるのは少々面倒な上にピンも多く必要となるのに対して、TM1630を使用すると表示データを送信すればよく、ピンも3つで済むのでとても手軽です。

ちなみにTM1630にはキースキャン機能もあるみたいですが、そちらは使いません。というか何故2つの機能をまとめたのだろうか。

 

 

データシートが中国語なので読みづらいですが、Google翻訳の手を借りて読み進めていきました。

まずは通信方式を確認してみます。

CommunicationProtocol

CommunicationProtocol

SPIのようなシリアル通信ですね。データは送受信可能のようですが、今回は送信だけ使っていきます。

1バイトを送信する関数を作りました。

複数バイト送信する場合を想定して1usの遅延(Twait)を入れていて、STBは関数の外で個別に制御することにします。

 

続いて、データ形式を確認してみます。

DataRegister DataExample

ここで、よく分からない点がいくつかあるんですよね。

まず上の表のSEG1ってなんだよ。ピンアサイン見てもどこにもないんだよ。→

あと上位ビットを右側に書くのは見づらいからやめてほしい。

そして下の表ではSEG14がB7に来てSEG8 ~ SEG2がB6 ~ B0になってて上の表と違うじゃんか。14の意味する所も気になるがそれは置いといたとしてどっちが正しいのか。

 

結論から言うと、上の表を信用すればいいようです。

下の図の文中に、”0”を表示させる場合「00Hのアドレスユニットにデータ3FHを書き込むだけでよいことを理解するのは難しくありません。」って書いてあるけど、難しいです。0x3Fじゃなくて1つずらして0x7Eを書き込まなくちゃいけませんでした。

…思わず愚痴だらけになってしまいましたがとりあえず動作するのでいいでしょう。

 

続いて初期化の流れを確認してみます。

なお、データの送信方式は固定アドレスモードとアドレス自動インクリメントモードの2つあるようですが、後者の場合の図です。

CommunicationProtocol

Command1:表示モード設定Command2:データ設定コマンドCommand3:表示アドレス設定Command4:表示制御コマンド

それぞれのコマンドの詳細はデータシートに書いてありますが、翻訳しなくてもなんとなく雰囲気で分かる所も多いので省略します。

後のサンプルプログラムと比較すれば容易に理解できるかと思います。

 

というわけで、動作確認してみました。

今回使用したPICはPIC16F18857です。7セグLEDはこちらの4桁のものを使用しました。

接続について、K2ピンはキースキャン用のピンなので未接続です。

また、データシートの接続図にはLEDの電流制限抵抗は描かれていませんでしたが、過去に何度か抵抗忘れでLEDを破壊していて不安なので100Ω の抵抗を入れておきました。

追記:

輝度の設定を一番低くした状態ですが、電流制限抵抗なしでも壊れずに点灯しました。

通信用の3線にはプルアップ抵抗がついていますが、送信だけの場合なくても大丈夫でした。

 

100ms毎にカウントアップするサンプルプログラムです。

7セグを簡単に制御できてなかなかいい感じです。

-パーツ解説

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

PICでジェスチャーセンサーを使ってみる[APDS-9960]

今回は以前から気になっていた秋月電子で販売されているこちらのジェスチャーセンサーAPDS-9960を使ってみました。ネットの情報も少なく、Arduinoのライブラリを使うだけしか書いてなかったりしたの …

aitendoのI2CキャラクタLCDが安くて便利

ブレッドボード上で情報を表示したり簡易的なデバッグをしたりするのに便利なのがキャラクタLCDです。 今回はaitendoで販売されているこちらのLCDを使ってみました。 ちなみに以前秋月電子のLCDを …

【PIC】aitendo の 122x32 グラフィックLCDを使ってみた

今回はaitendoで122×32のグラフィックLCDが299円(税抜)とかなり安かったので買ってみました。商品ページはこちらです。 グラフィックLCDについては以前に記事を書きましたが、それとは制御 …

リアルタイムクロック DS1307 の使い方

今回は秋月電子で販売されているこちらのリアルタイムクロック(以下RTC)のDS1307について紹介します。 目次1 RTCとは2 DS1307の特徴3 レジスタ4 プログラム RTCとは まずはRTC …

【Pico W】QR Clock ver.2を作ってみた【ソフト編】

前回の記事でQR Clock ver.2のハードウェアを紹介しました。今回はソフトウェアについて紹介していきます。 マイコンにはRaspberry Pi Pico Wを使用しています。ピン数が多いこと …