マイコン電子工作あれこれ - 78K0 横丁

NECエレクトロニクス製マイコン78K0を使った工作情報サイトです。
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
最近の記事
ブログ 最近の投稿
フォーラムでの最近の投稿
スレッド 返信 最終投稿
はじめまして 0 2010-1-9 14:04 s0813
はじめまして 0 2010-1-4 9:15 abe00mkto
初めまして 0 2009-11-11 22:03 apollo21
歯科 0 2009-5-7 10:02 ddddyyyyy
赤外線発光ダイオードの利用について 0 2009-4-6 1:24 OGN
オンライン状況
2 人のユーザが現在オンラインです。

登録ユーザ: 0
ゲスト: 2

もっと...
ようこそ 78K0横丁へ
どーして 78K0 なのか。
一言で言えば 「78K0 のサイトが少ないから」 です。多くの人に 78K0 を使ってもらうために、このウェブサイトを公開しました。まだ、78K0を知らない人は、是非「78K0入門」へ!もし、あなたも78K0ファンなら、是非、声をかけてください。ちょっと興味がある...でもOKです!
最新の記事エントリ

ブログ 2009-4-10 ( ブログ 2009-4-10 )


カテゴリー: 工作- ome @ 11時54分51秒

78K0で電力料金計

予告どおり、今回は78K0を使ってコンセントに挿した家電製品の電気代を算出する
「電力料金計」の製作記事です!
計測を開始してからの時間と、現在の消費電力(1400Wまで)と、計測開始から現在までの
電気料金が1秒ごとに更新されて表示されます。

512電力料金計外観.jpg

この電力料金計では、電圧は100V一定であるとみなし、電流のみを測定しているので、
回路自体の誤差に加え、電圧の変動や電圧と電流の位相差によって誤差が生じます。
力率を常に1として計算してしまうので、消費電力というよりは皮相電力になります。
なので表示される電力は大まかですが、これよりあれのほうが電力を大きく消費する、
とか、1時間使い続けると電気代が大体何円になるかとか、そういうことがわかります。
パソコンのように、はっきりと消費電力が表示されていない機器の大まかな消費電力を
知るのに便利です。



■電力料金計の仕様!■

CPU:uPD78F0503DA
AC100V専用
最大計測電力:1400W
最大計測時間:約18時間
最大積算料金:4294円96銭まで
電力計測分解能:2W
電力算出方式:テーブルタップを通過する電流実効値×100
誤差:力率を算出しないことによる誤差を除いて約3%
コンセント差込口:3口
表示:USB接続したパソコン上のターミナルソフト

さらに今回は昨秋リリースされた新マイコン統合開発プラットフォーム
「CubeSuite」を使ってソフトを書いています!!!
CubeSuiteのすごいところは、このソフト一つでコンパイル・アセンブル・シミュレーション・
オンチップデバッグ・書き込みができることです。これまでの開発環境のように
別々にダウンロード・インストールする必要がなく、一つですんでしまうのです!



★重要★ 安易にまねしないように! ★重要★

今回の工作はAC100Vラインの被覆をむいてしまいます。なのできちんと絶縁をしないと、
ギャー!大惨事!!!ということになりかねません。工作経験の少ない人は
まねしないでください。この記事の執筆者(ome)は、記事の内容についてなんら
責任を負いません。まねするときは、むき出しになったAC100Vラインとそのほかの
導体部分の距離を十分に保つか、絶縁体をはさんできちんと絶縁してください!



■■■まずは「CubeSuite」をインストール!■■■

1.マイコン登録ユーザ になる!
NECエレクトロニクス マイコン登録ユーザ になっている人は、ここを飛ばして
.NET Framework・Visual C++ ランタイムライブラリ ダウンロードに進んでください。
マイコン登録ユーザ になっていない人はここ↓で
https://www5.necel.com/micro/tool_reg/McTechNoteEntrance.do
新規登録の方はこちら をクリックして新規登録します。
登録をして翌日か翌々日ぐらいに「このページにアクセスしてオンラインユーザ登録
手続きを続行してください」という旨と、その手続きのためのURLが載った
メールが届くので、URLをクリックして手続きを完了させます。すると、ログインすれば
NECエレクトロニクスのサイトからフリーツールをダウンロードできるようになります。

2..NET Framework・Visual C++ ランタイムライブラリ ダウンロード!!
http://msdn.microsoft.com/ja-jp/netframework/default.aspx

http://www.microsoft.com/downloads/details.aspx?familyid=200B2FD9-AE1A-4A14-984D-389C36F85647&displaylang=ja
にアクセスして、「.NET Framework」と「Visual C++ ランタイムライブラリ」を
ダウンロード&インストールしてください。
すでにインストールしている人は3.CubeSuite をダウンロードに進んでください。

3.CubeSuite をダウンロード!!!
http://www.necel.com/micro/ja/freesoft/cubesuite/index.html
にアクセスして、下のほうにスクロールするとダウンロードのためのボタンがあります。
それをクリックして、同意したり、ログインしたりしてダウンロードします。
ななんと450MBもあります。でっかいソフトなんですね。最初だけ時間かかりますが、
これまでのように、コンパイラ・アセンブラ・シュミレータなどをいくつも別々に
ダウンロードしなくてすみます。便利です。
ただ書き込みは、書き込み機能付インサーキットエミュレータ「MINICUBE」を
接続しないとできないので、「MINICUBE」を持っていない人は書き込みソフト
「PG-FPL3」をダウンロードしてください。ここ↓でダウンロードできます。
http://www.necel.com/micro/ja/freesoft/78k0/kx2/index.html

4.CubeSuite をインストール!!!!!
ダウンロードしたEXEファイルを起動すると次のようなウィンドウが出ます。

451インストール開始.jpg


次へをクリックしてすすみます。ここでは開発ツールはみんなインストールして
しまいましょう!

452開発ツール選択.jpg


ライセンスは購入していないので、この画面ではただ次へをクリックすれば大丈夫です。

453ライセンス登録.jpg


インストールが始まりました。450MBもあるだけに時間がかかります。
omeの使用しているマシン(Pen4 2.6GHz 1GB)で約20分ぐらいかかりました。
しばしの間待ちます。

454インストール中.jpg


終わりました!さっそくこれでソフトを書いてみます!!

455インストール完了.jpg


起動中です。起動中の画面がかっこよい。

501起動中.jpg


起動直後の画面です。新しいプロジェクトを作成GOをクリックして
電力料金計のプロジェクト作成!!!

502起動直後.jpg



※ターミナルソフトも必要なので、TeraTermをダウンロードしてインストール
しておいてください。



■■■ハードウェアの説明!■■■

回路図はコレ↓。

514電力料金計回路図_01.jpg

■回路の大まかな説明■
左上らへんが電源部分で、ここでスイッチングACアダプタの+15Vから、
OPアンプに必要な±12Vとマイコンの電源の+5Vを作っています。
OPアンプはオフセット電圧の小ささと、ノイズの小ささからOP07CPにしました。
下半分は左から電圧−電流変換のための抵抗、絶縁のためのトランス、
入力された電圧を20倍するアンプ、全波整流回路です。
ダイオードはなんでか2素子入りのものを使っていますが、べつにスイッチングダイオード
2本でも大丈夫です。

■78K0に入る前■
1.抵抗に1Aの電流が流れると、オームの法則でV=RI=0.01×1=0.01[V]の
交流電圧が抵抗の両端に生じます。これが20倍されて交流0.2[V]になります。
2.さらにこれが全波整流回路に入り、実効値0.2[V]の脈流になります。
3.これを78K0のA/D変換の入力端子に入れ、RMS-DC変換を78K0のソフトウェアで行います。

■78K0に入った後■
78K0のAVREF端子にはアナログ電圧のリファレンスとして、約4.096Vを抵抗の分圧で
作って加えています。なので正しくA/D変換できるのは0〜4.096Vになります。
4Vをアンプの電圧利得の20倍で割ると0.2Vとなり、オームの法則からI=V/R=0.2/0.01=20[A]、
これが 瞬間で 検出できる電流の限界になります。これはあくまで瞬間の最大の
数字なので、仮に電流波形がゆがみのない正弦波であり、このときの電流のピークが
20[A]であるとすると、このときの電流の実効値はこれをルート2で割った値、
つまり14.14[A]になります。これに電圧の100Vをかけると、
P=VI=100×14.14=約1400[W]が今回計れる最大の電力であることがわかります。

※実効値の算出方法
 実効値=瞬間値の2乗の平均の平方根
 標準のライブラリmath.h内の平方根を算出する関数sqrt()は、計算に数秒かかって
 しまうので、計測周期の1秒に間に合いません。そこで 平方根 算出 でググると
 あゆしゃ法(世界最速の平方根算出アルゴリズム)というのを見つけました。
 http://ayusya.hp.infoseek.co.jp/ProgramAlgorithm.html#Sqrt
 この↑ページを下にスクロールしていくとあります。
 世界最速だけあって、なんと約4ms@10MHzで平方根を出せました!すごい!!!



■■■ハードウェアの製作!■■■

まずは電力料金計の電源になるACアダプタの加工です。秋月の15V0.8A出力の小さい
やつです。電力料金計は必ずコンセントにつないで使うのに、使うたびに電力料金計の
ACアダプタをコンセントに挿していたのではめんどくさいので、電力料金計を
テーブルタップと一体化させ、その途中からAC100Vをとることにします。

ACアダプタを開けると内部はこんなんです。

503アダプタ内部.jpg


で、プラグは使わないのではずしてしまいます。

504アダプタプラグはずし.jpg


AC100Vの入力とDC15Vの出力の線を引き出して、それが通るようにケースに穴を開けて、
プラグがあったところがむき出しにならないようプラ板を入れてケースを閉めたら
こんな風になります。

505アダプタ加工後.jpg


今回使うテーブルタップです。普通の3口のやつです。

506テーブルタップ.jpg


加工したACアダプタから出した線を通す穴、テーブルタップのコードを通す穴、
USBケーブルを通す穴を電力料金計のケースに開けます。写真は加工後のケースです。

507ケース加工後.jpg


テーブルタップのコードの被覆をカッターでコの字の形に向きます。片側は芯線を
むき出しにするだけ(写真の右側)にし、もう片側は線をむき出しにして、抵抗を
取り付けられるだけの間隔をあけて芯線を切り(写真の左側)ます。

508テーブルタップ加工後.jpg


今回は小さなケースを選んでしまったので、基板の上はとてもきゅうくつです。
三端子レギュレータが三つ並んだ奥に、負電圧生成ICのLTC1144があります。
三つ並んでいる8PのICが0P07CPです。

509基板外観.jpg


ケースに入れるとき、基板の上にAC100Vの線がむき出しになっているので、絶縁の
ためにL字に曲げたプラ板を三端子レギュレータに取り付けています。

510プラ板取り付け後.jpg


ケースに入れた写真です。トランスもあるので中は結構ぎっしりです。

511電力料金計内部.jpg


ケースのふた部分がこれまたアルミ板なので、絶縁のためにプラ板を切ってのせてから
ふたをして完成です。



●●●ソフトウェア●●●

78K0のいいところは、コードサイズが32KまでCコンパイラが無料で使えるところです!
コーディングが楽!!!
ソースコードが結構大きくなってしまったので、ソースコードの公開はしません。
すみません。ですが、文章でソフトウェアの概略のみ説明します。


1.UART6をUSBシリアル変換ICにつなぎます。

2.ターミナルソフトから"S"か"s"を受信したら計測と1秒ごとの送信を開始します。

3.もう一度"S"か"s"を受信すると計測と送信を停止します。

4.計測していないときに"R"か"r"を受信したら、それまでの時間・電気料金をゼロクリアします。

5.計測中は1秒ごとに計測時間の変数をインクリメントします。

6.計測中は1秒ごとの10msの間に128回、A/D変換とその結果の2乗の算出、合計を出します。

7.128回の計測と2乗の算出、合計ができたら、その合計値を128で割って、2乗の平均値を出し、
さらにそれの平方根を求めます。つまりA/D変換結果の実効値を求めるということです。

8.A/D変換結果の実効値を電流の実効値に変換します。この電力料金計の分解能は
最大20Aの入力、A/D変換のビット数を10とすると、20/1000=0.02A、これに100Vを
かけるとP=VI=100×0.02=2Wであることがわかります。つまり、A/D変換結果の実効値に
2をかけた数字が電力になります。

9.お世話になっている電力会社のホームページから1KWhあたりの電力料金を見つけて、
それを3600で割ると単位が[KWs]、それをさらに1000で割ると単位が[Ws]となって、8.で
求めた電力[Ws]と単位がそろいます。この数字を求めた電力にかけると、1秒あたりの
電力料金になります。これを1秒ごとに積算していきます。

10.5.で求めた計測時間、8.で求めた電力、9.で求めた積算電力料金を1秒ごとに
パソコンに送信します。計測中は5.〜10.が繰り返されることになります。



■■■実際に計測!■■■

計測中の画面はこんな感じ。
右から計測時間:分:秒、そのときの電力、積算電力料金。

513画面.JPG

パソコンは消費電力が表示されていないので、いったいどれぐらいのものなのか
いつも疑問でした。そこで、omeが使用しているパソコンの電力を測ってみた!

パソコンのスペック:Pen4 2.6GHz 1GB、19インチ液晶モニタ×2
起動したあと何も作業していないとき(本体+画面)120W、1時間で2.7円
画面の電源が切れているとき(本体のみ)67W、1時間で1.5円
スタンバイ時:24W、1時間で0.5円

うーん、意外と少ない!
パソコンはアメリカ主導で作られてきたし、DOS/Vパソコンのパーツ屋に行っても
売っている電源は300Wとか400Wだからもっと大きいと思っていました。
CPU使用率が100%になると180Wぐらいを示していました。それでも意外と少ない!



■オマケ■

消費電力が一定で変動しない場合は、電化製品の消費電力と、1KWhあたりの電力料金が
わかっていれば、一時間あたりの電力料金は簡単に計算できます。

電力料金[円]=表示されている消費電力[W]÷1000×1KWhあたりの電力料金[円]

例)20Wの蛍光灯、東京電力,従量電灯B,第1段階料金,燃料調整費なし の場合
  20÷1000×17.87=1時間当たり0.3574円
メインメニュー
Google Search
SiteSearch Google
Google

WWW サイト
78K0 最新ヘッドライン