R2/12/3:新規
テスト動作中の4桁7セグPicでI2c_7segをテスト
![]()
<使用部品について:>
- ◎PIC : 12F683:今回も手持ちのものを使いました。(I2c_LCDのセットを流用)
- 表示装置は、『4桁 7セグメント 0.56インチ LEDディスプレイモジュール I2C Arduino用 HT16K33 高性能』と記載のものです。(amazonで購入:含送料\712)
- 裏面にVK16K33と記されたICが着いています。HT16K33の仲間だと思われます。
![]()
<テスト回路について>
- ブレッドボード上に仮組みしました。
- 動作テスト用ですから、7segLEDにはカウントダウンの時間が表示されるだけです。
- 表面の上側端子接続部分に、左側から+-DCの表示が見えます。
- +に3.3v、-はア-ス、DにはSDA(GP5)、CにはSCL(GP4)を繋ぎました。
- GP2につながるLEDは、main()のwhile_loopの動作確認のためです。
- HT16K33のデータシートでの供給電圧は4.5~5.5vになっていますが、電圧3.3vでも動作し視認性は充分です。その時の消費電流は10mA程度です。
![]()
<arduinoのライブラリについて>
- HT16K33のarduinoライブラリがあちこちにあって、いろいろ参考にさせてもらおうとしたのですが、難しいのです。
- arduinoは通信手続きを簡単にするためなのか、具体的なコマンドの方法やパラメータを知ることはができませんでした。
- 仕方なく47頁もあるHT16K33のデータシート(英文)を印刷して、拾い訳し読みです。
- HT16K33は複数個の7segLEDやLEDドットマトリクス用のICで、4桁7セグを1個取り付けた時の接続はどう・・なんて詳しくはわかりません。
- I2cですから、○スタートコンディション→○スレーブアドレス送信→○データ(またはコマンド)送信→○ストップコンディション の原則(順序)は変わらないはずです。
- 新調したPickit3の互換機でいろいろ試しているうちに、左端の桁に「0」が点灯しました。
- 点灯という反応が現れればあとは楽です。いくつか判明したことを挙げます。
- 初期化のパラメータ送信は、各項目ごとに、start/address送信/パラメータ(項目)/stop が必要だった。
- 明るさは中くらいで十分。値を大きくしても消費電流が増えるだけ。
- 4桁と言いながらコロンは1桁分?メモリを使っている。
- コロンの表示は、下から2番目ビットを'1'(02h)にすれば点灯する。
- 4(5)桁に使われているメモリは、00h,02h,04h,06h,08h のように偶数番のようです。
<プログラムについて>==>ソース(Hi_tech_c)
- 開発環境は、MPLAB IDE v8.84 です。(HI-TECH C V9.83)
- プログラムの内容は2分のカウントダウン表示です。
- 基本はI2c通信ですので、I2c_LCDのプログラムをベースにしています。
- GP4,GP5ともに内部プルアップを使用しています。
- 1秒の計測はタイマー0を利用しました。(TM1637と同じ)
- 難しい処理は一切ありません。左端の'0'も処理していませんし、コロンも点灯したままです。
- とりあえず「I2cの7segがやっと点いた」程度です。