トドお父さん通信 -15ページ目

トドお父さん通信

北部九州在住 高BMI中高年のオタク趣味の活動記録

おもちゃ病院で、トランジスタ回路セミナーを開催しようと計画したのが今年の1月。

今月に、ようやく開催することができました。

 

場所は筑紫野市のカミーリヤ、月一でおもちゃ病院を開院している会場を使わせてもらいました。
5人のおもちゃ病院ドクターが参加されました。

 


まずは、オームの法則をブレッドボードを使って確認というところから始めます。
ブレッドボードというものを触ったことが無い方が多数で、そこから説明します。

ブレッドボードの使い方
 

プロジェクタを使って、PCでいろんな情報をググって説明できるので助かりました。
自分はいつも使っているので、参加された方がどこがわからないかが分からないですからね。

3Vの電池に、10Ω、22Ω。47Ω、100Ωを使って電流値を測定します。
テスターを使って電流を測定したことがない方がいるので、その方法も説明します。

 

セミナー資料に貼った、frizingを使ったブレッドボードの実態配線図です。

 

frizingの使い方については、こちらに詳しいので参照ください。
 
 

 

10Ωの抵抗に3V電源をつなぐと計算上は300mA流れるはずですが、実際は250mAくらいしか
流れませんね。 それは、電池に内部抵抗があるためです… とか、もったいぶって説明します。
 
電池の両端は、無負荷では1.6Vくらいあるのですが、300mAも流すと1.2Vくらいに低下するん
ですね。これが内部抵抗のせいですね。
 
充電式のLiPO電池なんかは内部抵抗が小さいので、この電圧低下も小さいです。
ラジコンなんかに使われるのも、そのためですよね。


10Ωで250mA、22Ωで130mA、47Ωで60mA、100Ωで30mA とか、実際に測ってグラフにします。

EXCELでまとめるとオシャレですw。

 

10Ω抵抗では、0.9Wも消費するので抵抗があっちっちになります。
1/4W定格の抵抗ですから、あたりまえですよね。

 

この辺も、実際に触ってみると体感して経験値が増えますよね。
さて、次はLEDを点灯させてみます。


まずLEDを直接3Vの安定化電源につないで、LEDを壊してみました。
一瞬ピカッと光って、それから消えました。

 

電流制限抵抗を付けないと、こうなりますよ、という例です。

部品を壊してみるのも、大事な体験ですよね?

いよいよ、ブレッドボードでLEDを点灯させてみます。
下の図のように、ブレッドボードに部品とジャンパ線を付けてもらいました。

抵抗はまず一般的な値、330Ωにします。

 

配線がなかなかできない方もいらっしゃって、やはり人にモノを教えることは大変だと実感します。
昔だったら、ユニバーサル基板に半田付けして、準備しないといけませんでしたからね。
それに比べるとダンチにやりやすいかとは思います。

さて、いろいろあって、ようやくみなさんLEDが光りました。

これからLEDの両端の電圧と、抵抗の両端の電圧を測定して、LEDのVfと抵抗 (LED)に流れる電流を
計算します。
 
赤LEDでのVfは約1.8V、抵抗の両端は1.2V程度ですから、I=R/E=330/1.2 ≒ 4mA になりました。
 
次にLEDを赤から、Vfの高い白LEDに変えてみます。
今度はVfは約2.6V、抵抗の両端は0.4V、LEDに流れる電流は、I=R/E=330/0.4≒1mAに減ります。
 

しかし、さすが最近のLEDは効率がいい、1mAでも十分光ります。
そこで、電池から定電圧電源に変えて、電圧をすこしずつ下げてみました。
おっ、2.4V付近で不点灯になりました。

おもちゃに白LEDがなかなか使われないのは、コストの点もあると思いますが、この辺もありそうです。
2Vくらいまでは動作してもらいたいですからね。
 
ハンズオンのセミナーの中で抵抗もいろいろ変えてもらう予定でしたが、残念ながら時間切
本日の講義はこれで終わりということになりました。
肝心のトランジスタ回路の説明は、来週に持ち越しです。
 
また、第2回目のセミナー用のテキストを書き直さないといけないですね。
今回のテキストはセミナーを実施した内容に合わせて書き直しました。
 
コメント等でアドバイスを頂けますとさらに助かります。
 
それでは、おやすみなさい
先週末は地元の自治体のおもちゃ病院の開院日でした。
 
担当したのはドラえもん目覚まし時計、アンパンマンのメリー(ゴーランド)の2点。
ドラえもん時計は、時計が動かないが音が出るという症状です。
メリーのほうは、電池液漏れによる腐食が酷く、2点ともお持ち帰りになりました。
 
今回はドラえもん時計の修理について、記録しておこうと思います。
タケコプター羽根の欠落、裏のスピーカグリルの割れ、電池フタがない件の修理もお願いされました。
 
  
分解して、基板をはずすと時計が出てきます。
 
電池BOXには単三電池が3本入ってますが、そのうち1本が時計用、残りの2本はロジック制御用でした。
下図のような接続になってます。
 
一方、時計に接続する時計の回路はこちらになります。
 
オレンジ線と黒線で1.5Vの時計電源を供給し、タイマーの接点は通常はオープン、時間が来ると+1.5V
を出力するようになります。
ロジック電源3Vには、+1.5Vがグランドとして動作していますので、オープンとグランドになります。
 
 
 配線を外して時計本体に電池
 
電池電源1.5Vはきちんと来ていますが、時計のカチ、カチという音がしません。
配線を外して時計本体に電池を入れてみても同じです。
 
仕方がないので、時計をばらしてみました。
 
中央右下にソレノイドのようなコイルがあります。
その上のCOB ICで毎秒のパルスを出しています。
そして、コイル左上のコマのような磁石をカチ、カチと駆動して、秒針を動かす仕組みです。
オシロで見るとパルスは出ているようですし、コイルも100Ω前後で断線していません。
 
試しにコマを動かすと、時々カチッ、カチッと動くのですが、すぐに止まってしまします。
これを修理するのは、私には荷が重そうです。
ダイソーなどの100円ショップで買った時計のムーブメントを移植するアイデアもあるのですが、
そうすると時間合わせ、タイマー合わせのダイヤルをドラえもんの後ろに持って来る長い軸をどう
繋ぐかが問題になってきます。

『う~ん、同じようなもので故障したジャンクで時計が動くものはないかな?』とネットで調査します。
メルカリのオークションにありました。動作品は3000円以上しますが、これは時計は動くが音声がで
ないジャンクということで現在1400円です! これを部品取りのドナーにしましょう!
 
出品者に確認すると、タケコプターも電池フタも付属とのこと、お客様も喜んでくれそうです。
お客様に費用の確認後、無事1400円で落札できました。(送料込みです。安いですね)
 
 
宮城県から福岡の片田舎に2~3日で届いたので、早速分解して部品の移植に取り掛かります。
電池入れると時計がきちんと動いているので、一安心です。
 
音声はやはりできませんでした。電池ボックスのサビが酷いのでおそらく液漏れでしょう。
 
もとの時計を外します。
外す前に、透明プラスチックのふたを細いマイナスドライバー等で引き上げて外し、針を取って
おきましょう。
両面テープでかなり強力についているので、こわさないように慎重に、かつ大胆に外してください。
 
  
基板の色と配線が違いますね。外装の樹脂もかなり日焼けしているので、ひとつ前の世代でしょう。
時計に互換性があるといいのですが。
 
つぎは、ドナーの方から時計を外します。
同じ手順で、慎重に外します。 同じように3本の線が出ていますので同じタイプのようですね。
 
再度、強力両面テープを張って修理品に取り付けます。
3本の線を間違えないように、半田付けしてくださいね。
 
 
 
針をセットしたときにずれないように、外す前、後にタイマー12時ちょうどにセットしました。
動作確認後に、透明プラスチックのふたをしましょう!
 
 
タケコプターの移植
 
 
電池ボックスの移植
 
 
スピーカグリルの割れは、これ以上広がらないようにヒビを瞬間接着剤で補修しました。
ドナーの本体裏ケースは日焼けが酷いので移植はあきらめました。
 
  
 
これで修理が完了したので、早速試運転をします。(まだネジは締めていません)
 
 
無事動くようになりましたね。
タケコプターがついた頭をポンと叩くと『セット完了~!』と大山のぶ代の懐かしいダミ声がして、
この状態でタイマーの針が時刻になると『朝だよ!起きて!…』と大音量の目覚ましが鳴ります。
また頭をポンと叩くと、『やっと起きたね!』といって止まります。
 
これで、ミッション・コンプリート!
 
お客さんに連絡して引き取ってもらいます。
喜んで貰えそうで良かったです!
 
注意点として、時計のタイマー針と時針を合わせるときに、きちんと合わせないと時計の
なかにある接触片が動かず、どの位置でもタイマーがかかりっぱなしになります。
 
タイマー時刻になったら、接触片がカチッとなって接点が有効になります。
この辺は、Toy Dr.わたなべさんのホームページを参考にさせて頂きました。
 

みなさんこんにちは。 トドお父さんです。

いろいろと苦労しましたが、SDカードとRTC対応のPZEM-004T電力計ロガーの改良版を作ってます。

今回ようやくソフトが完成して、回路変更とケースへの組み込みが完了したので報告しますね。

  組み込み完了(SD書き込み中)です

【前振り】

このPZEM-004Tを使った電力計ロガーは1月にBluePill STM32F103Cに移植が完了しました。
【Part2】STM32F103BluePillでPZEM-004Tを使った電力計を作りました!
 

このときは、内蔵のRTCを動かして、SD Card基板を追加し、FatFsでSDカードに記録する件が宿題と

して残っていました。ケースが小さくてRTC用のバックアップ電池とマイクロSDカードモジュールを

組み込むのがムリゲーそうだったからです。

 

あれから色々と検討して、BluePillのRTCとSDカードの対応ソフトについてはArduino STM32core

いわゆるSTM32dunoのプログラムを調査して、ブレッドボード上で動作を確認しました。

前回のポストにある通りです。

【Part1】BluePillを使ったPZEM-004T電力計ロガーにRTCとSDカード組込み

 

ハードについては、小型のAdafruit SD Cardモジュール4682と小型のCR2032電池BOXをマルツから

入手できたので、ムリゲーからなんとか小型のケースに組み込めるメドが出てきました。

そんなわけで、前回はブレッドボードでBluePillのRTCとSDカード書き込みソフトを作成したところ

まで報告しました。
【Part1】BluePillを使ったPZEM-004T電力計ロガーにRTCとSDカード組込み

 

今回はハードの部分、前の電力計ロガーからの回路図の修正内容と、ケース加工組み込み

それと最終のソフト修正の動作確認までを説明しますね。

 

【ハード設計】

下記が、今回のSDカード基板とRTC用のバックアップ電池を追加した回路図になります。

 

前の回路図に対して、修正した部分はAdafruit 4682 SDカード基板の追加とRTC用のバックアップ電池

 CR2032ソケットの追加だけです(が、プログラム修正とケース内に納めるのは結構苦労しました)

 

ネットで調べると一般にバックアップ電池には、逆流防止用のダイオードとか色々ついているんですが、

STM32F103のデータシートを読むと、BAT端子には低電圧になると内部のVccからVBATに切り替える

スイッチがついているので、バッテリを直接つないでも問題ないようです。

内部に切替えスイッチがついているので、通常時はバッテリへVccから逆流する心配はないからです。

 

リファレンス基板のバッテリCR1220も直接つないでいますね。

 

海外の記事にCR2032は3.6Vあるのでそのまま接続すると危険、とありましたがCR2032の公称電圧

は3Vですし、VBATの最大電圧は0~3.6Vになっていますので問題ないでしょう。

 

前に悦明しましたように、今回は小型のmicroSDカード基板Adafruit 4682を使います。

前のレベルシフターIC付きのAdafruit 254と比べるとその大きさが分かると思います。

 

  電池BOX

CR2032電池ホルダも前回 ATTINY202/402導通チェッカで使ったSMDタイプのものを使いました。
CH7410-2032LF/TRAY というタイプです。これも小型で高さが低いのでいいですね。

 

【ケース組み込み】

回路図ができて部品も選定したので、いよいよケースの追加加工に入ります。
ここまでのケース加工については、前の記事に詳しく書いています。
【Part2】STM32F103BluePillでPZEM-004Tを使った電力計を作りました!

 

まずはSDカード基板の取り付けです。
事前にケースのフタから、LCDやスイッチ基板を外しておきます。

SDカード基板の取り付け穴に合わせて、2mmビスの取り付け穴を開けて取り付けます。

 

 

そうしたら、現物合わせでSDカードが入る穴をフタの前面に開けていきます。

まずは、デザインカッターのホビーのこ歯でケースの縦を切ります。

 

そうしたらプラカッターで横を切ります。 曲尺とかを当てて曲がらないようにしてください。

 

ちょっと不格好ですが切れました! 写真ではSDカード基板が上下逆についてますね。

これは基板の部品面が上になるように、あとで修正しました。

 

BluePillを固定しているユニバーサル基板にボタン電池ホルダを半田付けしたら、VBATとGNDに

接続します。GNDは基板の裏側に配線しています。

 

 

SDメモリ基板へも順に配線しました。

1P 3V

2P GND

3P CLK

4P SO/D0

5P SI/CMD

6P CS/D3

7P D1

8P DAT2

9P DET

 

 
電線をタイラップで束ねて、PZME-004T基板上に絶縁のためキャプトンテープを張りました。
これで、完成です!
 
さっそく試運転をします。
 
【動作の説明】
 
起動時には前回と同じ画面が出ますが、まずSDカードが入っているかと読めるかの確認をします。
SDカードが入ってなくても、いままで通り普通にシリアル経由でログを取れますからね。
 
 
それから、現在のログ設定の内容がでます。
測定間隔とスリープに入るまでの時間、それとスリープ解除する電力変動値x%の設定です。
左のSELキー、右のENTキーを押すことでもスリープ解除ができます。
スリープ以外でSELキーを押すと、SDカードへのログ記録開始と停止をトグルで実行します。
またENTキーを3秒以上押すと、PZME-004Tの積算電力値をリセットします。
 
 
その後、測定画面が出て電力のログを開始します。
右上の4という数字は、いまの設定では5秒毎にログを吐き出しますので、そのタイマーです。

 

SELキーを押すとSDカードへの記録が始まり、画面の右上にRECと表示します。

同時にBluePillのPC13 緑LEDが1秒毎に短くブリンクするようになります。

(通常時は1秒点灯、1秒消灯でゆっくりブリンク (点滅) します)

 

もう一度SELキーを押すとSDカードへのログ記録を停止します。

 

前回Part1で説明したように、SDに記録されるファイル名は LO030201.csv等の月/日が入った

ファイル名になります。(下2桁は01から記録のたびに新しいファイルで順次増えていきます)

 

 

【初期設定】

ENTキーを押して起動(本体にUSBを刺して電源供給)すると設定モードに入ります。

 

変更したいときは左のSELキーでパラメータを選んでENTキーを押します。

 

変更が終わったら、起動画面の表示で設定値を確認できます。

 

SELキーを押して起動(本体にUSBを刺して電源供給)するとRTC設定モードに入ります。

ENTキーを押すと、YYYY(年)、MM(月)、DD (日)、HH(時)、MM(分)、SS(秒)の順に
設定画面がでますので、変更時はSELキーを押して修正後にENTキーを押してください。

     

 

 

  

 

RTCの設定が終わると通常の起動画面に戻ります。

なお、現在のRTCの設定値を知りたい場合は、PCの測定ログ画面で確認することができます。

 

 

このノートPCのスリープ中の消費電力測定結果を、EXCELでグラフにしたデータを下記に張りますね。

薄い緑の線が積算消費電力で、右側の軸が単位(kWh )です。

11時から1時まで2時間程度使用して、1時から7時半までスリープ(0.93W)

2時間程度の動作と合わせても、0.048kWhですから、大したことはないですね。

 

 

【まとめ・最終仕様】

今回のSD対応PZEM-004Tロガーの仕様について、下記に簡単にまとめます。

① 起動時にENTキーを押していたら、パラメータ設定モードに入る

 

② 起動時にSELキーを押していたら、RTC設定モードに入る

 

③ PZEM004T測定データ表示中にSELキーを押すと、SDカードにログデータ記録を開始する
 (画面右上に小さくRECと表示)

 

④  PZEM004T測定データ表示中に再度SELキーを押すと、ログデータ記録を停止する

   ファイル名は、setting.txtにファイル名を入れていればその名前をBaseとして後ろに
  月、日と、01から始まる番号を追加する。ファイル名がなければLO030201.csvになる

   一旦記録を停止して、新たに記録を開始した場合、番号を+1したLO030202.csvを作り

  そのファイルにログを記録する。(8.3形式ファイル命名規則から、ファイル名は8文字とする)

 

⓹ ENTキーを3秒以上長押しすると積算電力の値がが0クリアされる

 

⓺ sleep時間経過後に、焼き付き防止でsleep画面になる機能がある。

  sleep中は画面にランダムにドットが表示されて、動作していることを示す。

  SELキーまたはENTキーを押すとSleepが解除され通常表示モードに戻る

 (キーによる記録開始/停止、積算電力リセットは通常表示中でしか有効にならない)

 

といったところです。
大分使い勝手が改善したのではないでしょうか?
記録前にSDカードが抜かれて書き込めない場合も、記録をスキップするようにしました。
他のエラー、記録中に電源断とか、SDカードを抜くとかはエラー処理が不十分なので注意ください。
今回作成した最終のプログラムはこちらのGoogleドライブに置きますね。
 
今回は measure() のテストモードを外し、実際にPZEM004Tに接続したデータを表示します。
これから、ポットや冷蔵庫、テレビなんかの消費電力を測ってみますね。

それでは、皆さん次回をお楽しみに!

関連記事