今週末は『久し振り!』がテーマだったかな?と思います。

 

 

 

昨日は嫁子がお出かけだったので、隣町の駅まで車で送りました。

 

 

1.日中私一人だったので、お昼に久し振りのモスバーガーでした。

  子供が出来てマック通いに切り替わったのですが、10年ぶりぐらい?

 

 

 

2.コロナが流行る前にダイエットに勤しんでいたのですが、

  定期健康診断前に週末ウォーキングを再開しました。

  目標:体重 -4kg,ウェスト -3cm

 

 

 

3.ちょうどコロナ禍の頃はESP32マイコンで設備データを収集することを

  考えていたのですけど、またシリアル通信に凝ろうと思います。

 

 

久し振りに引っ張り出した、M5Stack ATOM Liteです。

今回のお相手はPLCです。送受信のデバッグに使いました。

この世代のESP32は、Bluetoothシリアルが使えるのがミソです。

簡単な送受信が、Bluetooth経由でスマホから出来てしまいます。

 

 

 

4.押し入れの最上段から古いPLCを引っ張り出しました。

 

 

今回は既設設備からのデータ収集ではなく、新規設備立ち上げのお手伝いです。

 

装置が間に合わないと困っていた技術部門のスタッフの目の前で、

さくっと手持ちのArduino UNO R3で実現できることを証明してしまったので、

本番機の製作手伝いをする羽目になりました。^^;

 

Arduino UNO R3だと組み込みに苦労しそうなので、R4 Minimaを使う予定です。

電源がDC24Vに対応したのが大きかったですね。

プログラムメモリーも増えたので、少々要件が混み入っても使えるだろうと判断。

 

 

 

5.PLCラダーは久し振りです。すっかり忘れていましたね。

  一度RS232C通信をトライしたのですが、上手く行かず挫けたと思います。

  今度は挫けられないので、

  前述のATOM Liteで簡単な送受信が出来るところまでは出来ました。

 

下記は、途中色々調べていて行き着いたサイトです。なかなか面白かったです。

 

 

 

 

 

さすがにここまで来ると、『趣味で・・・』とは言い切れないです。^^;

 

夏までにはある程度技術的課題をクリアしておきたいと考えています。

本番機用のPLC等々、部品が納品される前に色々机上デバッグを実施するつもりです。

 

やっぱり、繋いでみないと気が付かないことってありますね。

予定していなかったリセット信号が必要そう。。。

 

ちょこちょこArduino側のプログラムを修正しながら構築中です。

 

 

 

 

 

赤色7セグメントLEDシリアルドライバキットを4つ並べて4桁にし、

 

 

7セグの使い方練習がてら、

温度/湿度/気圧/時刻/月日表示をやってみようと思います。

 

 

 

 

いつかは写真上の1inch-7セグLEDで表示させたいのですが、

机が狭くて作業しづらいので、余っていたArduino NANO Everyを利用して、

写真下の0.56-inchの表示器キットを4つ並べたもので開発を進めようと思います。

 

 

 

 

昨日のうちにBME280(5V)センサーとRTC;DS1307は各々単品で繋いで動作確認済みです。

 

 

 

過去に4桁7セグLEDで同様のものをM5StickC Plusで作ったことはあります。

そのときはTM1637を利用したのですが、少しジャンパー線に触れると表示がおかしくなっていたし、ダイナミック点灯だったので少々ちらつきが気になりました。

 

なので今回はスタティック点灯にこだわりたいと思います。

また、Githubで公開されているようなライブラリーは使わずに、

自分で関数なりライブラリーなりを自作してみようと思っています。

 

 

 

秋月の7セグドライバキットの結線方法ですが、

最初に参考にしたyoutubeの動画だと、左から右へ数珠つなぎにされていたのですが、秋月電子通商のサンプルプログラムの前提は右から左へ数珠つなぎされていること前提でした。

先々SPIで表示させるかもしれませんが、信号を見ても良く理解できなかったのでshiftOut()関数を使う方法でやってみようと思っています。

 

 

 

桁が流れる順番は、

数珠つなぎが左から右の時はshiftOut()関数で下位桁から書き込めば良く、

数珠つなぎが右から左の時はshiftOut()関数で上位桁から書き込めば良いことが判りました。

 

 

上記の事例だと、4桁表示に『28.49』と表示されます。

 

 

 

 

 

一番電気を食いそうな表示『88.88』のとき、NANO Everyのmicro-Bコネクタに流れている電流は全体で150mA程度でした。

 

カタログに載ってなかったので流しすぎではないと断言はできませんが、

一番熱くなるのは、触感でLED表示器そのものでした。

 

 

 

 

 

 

 

昨晩、1-inch 7セグLEDを74HC595を数珠つなぎにして表示させるのに上手く行っていませんでしたが、今日原因がわかりました。

 

プログラムのせいでは無く、結線間違いでした。

 

 

 

 

同じ数字が4桁並ぶように表示されていたのですが、

よくよくコピー元のプログラムを読んでみると、作者の意図した動作ではありませんでした。

 

Arduino UNO R4 WiFiに変更しても全く同じ状況だったので、

速度の問題では無さそうだと考え、配線をもう一度見直しました。

 

 

点灯しなかった(a)セグも表示され、プログラムが意図したとおりに数字が右から左へ流れました。

 

 

 

 

 

ところで、秋月電子通商のシフトレジスター付き7セグモジュールの紹介プログラムだと、シフトレジスターの溢れた桁は右から左のLEDへ流れます。

 

しかし、今回用意した大判LED側の結線方法だと左から右のLEDへ流れます。

これまでいろんなモジュールを購入したり、あちこちの掲載記事を見ましたが、

両方有るのですよね。。。

 

果たして私の目的にはどちらが都合が良いのでしょうか?

 

もう一つの疑問は、

採用LEDは、アノードコモンが良いのか?カソードコモンが良いのか?

こちらは掲載記事の事例はカソードコモンのほうが多かったです。

 

 

 

秋月電子通商のモジュールでもすぐ転用できるように、

7セグLEDはカソードコモンを選択し、デイジーチェーンは右から左へ流れるように結線し直そうと思います。

プログラムを進める上で、もし不都合が発生したらまた見直すつもりです。

 

 

 

 

結線手直しついでに、ジャンパー線をハードワイヤータイプに切替えて、

7セグLEDのオーバーハングを解消しました。

 

 

 

 

秋月電子通商のサンプルプログラムをそのまま流し込みました。

今度はちゃんと表示されているようです。

 

 

 

 

ふとUSB電源の電流を確認してみると、割と安定して全体で65mAでした。

昨日はプラプラしていましたが、300mAを越えていました。

これなら別電源にしなくてもArduinoの5V電源でまかなえそうです。

 

秋月電子通商のサンプルコードはSPI接続で7セグ表示を行っています。

見た目にスタティック点灯に見えていたのですが、どうもダイナミック点灯に近い模様です。

 

今回の計画では、SDカード保存を使いたいのでSPIは開けておきたいのですが、

SPIで表示させる方法はひょっとしたら省電力なのでしょうかね?

 

 

 

 

 

1-inchの大判7セグLEDを購入してみたは良いけど、

 

 

いきなり基板にハンダ付は怖いので、

ブレッドボード上で4桁動作を実験することにしました。

 

 

 

私が希望しているスタティック点灯を行っている人のサイトを見ながら、

配線してみました。

 

 

回路図は抵抗の並びが少々入り組んだ形になっていましたが、

恐らくハンダ付の時に有利なように並べられたのだろうと思います。

 

私はそんな余裕はないので・・・74HC595から抵抗は基本真っ直ぐ繋ぎました。

LEDひとつのDPの保護抵抗だけ1kΩで、

その他のLED2つ直列のセグメントは間違ってポチして大量にある330Ωにしました。

 

 

ここまではまずまず綺麗に並んでいますが・・・

 

 

 

 

オーバーハングするジャンパー線をものともせず光っています。

 

でも左から2桁目以降の(a)セグメントが光らない・・・

 

 

しかし、よくよく見ているとたまに点灯します。

 

 

 

ハード結線は大丈夫そうですが、どうやらソフトを煮詰める必要がありそうです。

いつも点灯しないのは(a)セグなので、転送が間に合っていないとかそんな気がします。

 

 

 

 

問題は消費電力ですね。

 

今はUSB(5V)から、74HC595群とArduinoに分配していますが、

時々1.2Wを越えることがありました。

 

Arduinoの5V電源でまかなうのは予想通り少々危険そうです。

 

 

 

 

 

購入した7セグLEDをDMM(ダイオードチェック)で点灯させてみたのですが、

めちゃくちゃ暗かったので、仮にブレッドボードに挿して点検してみました。

ESP32ご用達、片側6列のブレッドボードならギリギリ刺さります。

 

 

 

 

 

保護抵抗として330[Ω]を使い、5V掛けてみました。

DPはそこそこ明るいですが、セグメント(C)の位置は暗いです。

 

セグメントが暗くなる原因はわかっています。

 

 

1-inchサイズともなると、ひとセグメント当たりLEDが2個入っています。

DPは1個なので通常のLEDと同じ抵抗でばっちりですが、

その他のセグメントの保護抵抗は幾つがふさわしいでしょうかね?

 

 

 

普段はこんな点検なんてしないのですが、、、

 

 

何をやってもDPが暗い個体が1台有りました。

外れだったのか、私が3.3V掛けちゃって壊しちゃったのか?

 

 

 

 

私の見た目(肉眼)には、DPが330[Ω]なら、

各セグメントには100[Ω]を選択すると同じ程度に見えました。

計算面はもっと低い抵抗が必要ですが、手近に無かったので試していません。

 

今写真を見てみると未だ若干くらいですね。

スマホカメラが自動調整しているからこう見えますが、

肉眼で見ると、ちょっと目に痛いレベルで明るいです。

 

 

 

 

 

全当たりでチェックしましたが、DPが暗いのは1台だけでした。

 

モジュール化するときに一番右の桁(1の桁)に配置して、

DPを点灯させる事が無いようにしたいと思っています。

 

 

 

当初は基板両面に素子を配置しようと思っていました。

しかし、実際基板に並べてみてどうハンダ付しようか考えていたのですが、

うまくレイアウト,ハンダ付できそうも無くて、早くも心が折れそうです。