見出し画像

【GASでIoT】スプレッドシートの情報をラズベリーパイPico Wを使って7セグLEDに表示させる(3)8桁の7セグ用ICで2桁・4桁の7セグを使う

WEBベースのアプリであるGoogleスプレッドシートや、マクロ言語Google Apps Script(GAS)のメリットの一つに、ネットにつながるデバイスと連携しやすいことが挙げられます。

このメリットを活かして、ネットに繋がるデバイスの中でも安価な「ラズベリーパイPicoW」を使った、7セグメントLED表示にチャレンジしたのが以下の記事になります。

7セグメントLEDはデバイスが安価であり数を増やしてもコスト的な負担が少ないのが長所です。そのため、スプレッドシートなどの情報を7セグメントLEDに表示できると、カレンダや掲示板などさまざまな用途に利用できそうです。

さて、7セグメントLEDは、配線数を抑制するため、MAX7219などのドライブICを介して点灯させますが、ここで困ったことがありました。

ラズベリーパイPico Wを使ってGoogleアプリにアクセスする際は、よく使われるMicroPythonではなく、(HTTPSで始まるURLにアクセスできるプログラムが見つかった)C言語でプログラム作成を行っていました。開発環境はArduinoIDEです。

7セグメントLEDのドライブICには、MAX7219を使いますが、「C言語でラズベリーパイPico Wをプログラムする為のライブラリ」が、探しても見つからないのです。

そこで、ライブラリを使わないで、C言語の標準関数だけを用いて、MAX7219に信号を送るプログラムを作成することにしました。この顛末は先回の記事にご紹介しました。

さて、7セグのドライブICとしてMAX7219を使う時には、もうひとつ課題があります。

このICは8桁の7セグメントLEDをドライブしますが、実際の用途で8桁を使うケースはそれほど無く、むしろ8桁を分割して、2桁や4桁の表示を複数できた方が役に立つはずです。

しかし、市販されている実装基板はほぼ8桁に限定されています。

そこで、市販品を改造して、何とか、2桁や4桁の7セグLEDを扱える様にしようと考えました。

また、発光色も赤色が大半です。これは赤色が安価だからですが、発光色は自由に選びたいものです。せっかくなら他の発光色も選べた方が良いので、これにもトライしました。

本記事はそのトライの内容になります。

MAX7219と7セグLEDの実装基板


以下が、MAX7219に8桁の7セグLEDを実装した部品の一例です。手頃な価格で販売されており、市販品の多くはこの類型のものです。

以下が文字の表示例です。「d0100010」と点灯しているのが見て取れます。

以下が、この部品の背面の様子です。

基板の左側にはドライブICのMAX7219が見えます。

まずは基板上の7セグLEDを取り外し、ジャンパー線に置き換える

基盤上には、8桁表示のために、4桁の7セグLEDが2つ並べて固定されていますが、これを取り外して、ジャンパー線を挿し、この先に2桁や4桁の7セグLEDを接続してみることにしました。

基板上に半田づけされていると、取り外しが大変なので、ピンで挿しているだけのタイプのものを購入して、利用することにしました。

上記の部品から、もとの7セグLEDを外し、代わりにジャンパー線を挿したところが以下です。

ピンの数が片側12ヵ所あり、どう配線したら良いか、あれこれ試しながら最後にボンドで固めたものです。(半田づけすると抜き差ししにくいので、今回はこの様な仕様にしています。元の7セグLEDを抜いた穴に、ジャンパー線のオス端子を挿しています)

この先に、4桁や2桁の7セグLEDを取り付けようという訳です。

MAX7219で扱う7セグLEDは、「カソードコモン」と呼ばれるタイプ

ジャンパー線の先に4桁の7セグLEDを取り付ける

まず、独立した4桁の7セグLEDにつないでみました。以下がその写真です。

配線は単なる延長配線で、基板上に配置されていた時と同じ向きになる様にだけ注意して、12本のジャンパー線をストレートに配線します。(ジャンパー線のメス端子を、7セグLEDのピンに挿して、ボンドで固定しています)

前から見たところです。

ジャンパー線にクセがついて傾いているため、お見苦しい形ですが、独立した4桁の表示器として働いているのが確認できました!

これを応用すれば、自由に4桁の表示器に改造できそうです。

さらに、ジャンパー線の先に2桁の7セグLED(緑色)を2ケ取り付ける

次に、残りの12本のジャンパー線を使って、2桁の7セグLEDの表示を試みました。4桁ドライブできるはずなので、7セグを2つ接続できるはずです。

せっかくなので、発光色もここでは、赤から緑色に変えてみました。

配線は少々面倒・・・分岐が必要

こちらは、ストレート配線とはいかず、基板側は4桁、ジャンパー線の先は2桁ということを考慮して、きちんと対応する端子に合わせる必要があります。

また、本来は1本で共有されている信号線を分岐させる必要があり、ジャンパー線の途中に導線を分岐させました。(被覆を剥いて、より線を合わせただけです。外れない様にボンド固定しています)

2桁と4桁の7セグLEDの端子のピン・アサインを確認

対応する端子に正確に配線するには、各端子がどのLEDの発光に対応しているか(ピン・アサイン)を、2桁と4桁で確認する必要があります。

7セグメントLEDの発光部には、以下の様な記号が付いています。

4桁の7セグでは、上記のピン・アサインは以下の様になっています。

12本のピンがありますが、A~GおよびDPは8の字とピリオドの発光部、D1~D4は、各桁のアース線です。A~GおよびDPに電圧を加えた時に、アースD1~D4が接地している桁だけが光るという仕掛けになっています。

それにしても、並びに全く規則性がないですね。

これが、2桁の場合は、以下の様になります。

こちらは、アースの2端子がなくなるので10本のピンですが、規則性が無い上、4桁の場合と全く対応していません。

(いったいどうやってピン位置を決めているのでしょうか)

基板上のピン穴と、2桁7セグLEDのピンを配線する

全くピンアサインが異なるので、基板上のピン穴と2桁7セグLEDのピンの配線は慎重に行います。

基板上のA~GとDPは、分岐させて、7セグLEDの同じ記号のピンとそれぞれ結線します。

一方、基板上のアース端子D1~D4は、分岐させずに、2つづに振り分けます。
以下がその配線の様子を示した図になります。


図の上側は7セグLEDを、下側は、MAX7219の基板側を示しています。

①~⑫は、1本または分岐させた、電気的にひとつながりのジャンパー線を示しています。

個人での確認であまり確証はありませんので、試す場合は自己責任でお願いします。

8桁表示の基板1つで、緑色で2桁x2、および赤色で4桁x1の文字を表示する


さて、これらを配線し終えて、点灯させました。

見事、2桁が2つと、4桁が1つ、文字表示できました。

表示文字は、独特のフォントですが、「qr」「st」「UvWX」です。


配線が非常に汚いのは目をつぶっていただくとして、この様にすることで、システムを変えず、安価なMAX7219を使って、自由な桁数表示ができそうです。

2つのMAX7219のカスケード接続


ドライブICのMAX7219には、マイコン側の配線はそのままに、MAX7219どうしをカスケード接続(直列つなぎして桁数を増やす)できるという長所があります。

以下が、8桁の部品をカスケード接続して点灯させたところです。

制御マイコンであるラズベリーパイPico Wは、1ケであり、この方法を使うと、文字数を好きなだけ増やすことができます。

カレンダーなど、多数の文字を配置した掲示ボードを作りたい場合も、システムは殆ど同じで済むので、スケールアップが容易です。

以上、安価な市販品の7セグメントLED用基板を使って、8桁、4桁、2桁の文字表示デバイスを試作したご紹介記事となります。

なお、ここでご紹介した簡単な文字表示器は、スプレッドシートから引用した文字を表示させていますので、ごく原始的なIoTデバイスでもあります。

次の記事では、上記のトライで用いたラズベリーパイPico Wのプログラム・コードをご紹介します。(言語はC言語で、開発環境はArduinoIDEです)


この記事が気に入ったらサポートをしてみませんか?