2016-12-18; LINUX用のシェルスクリプトを作りました:最後の方にあります。
と言うわけでEXCELを使ってチェックサムを日立フォーマットからモトローラーフォーマットに変更するプログラムを作ります。
(61:チェックサムを変更するプログラムを作る からの続き)
出来上がったプログラムを載せますが、その前にEXCELの設定があるので、
まず、開発メニューを表示するようにする。
蛇足:私はマイクロソフトのポリシーについていけません。
1:OFFICEが2007以降メニューからリボンに変更になった。メニューで問題なかったのに何で変更する。私みたいにメニューに慣れた者はこの変更には閉口している。
2:今回の開発メニューがデフォルトで表示されない。あまりメニューが多くなると見難くなるためと思われるが、たった一つ増えただけで、そんなに見難くなるとは思えない。
まあ、愚痴はこの位で早速変更をしていきます。
まず、ファイル → オプションと進み、表示されたウィンドウ(画像1)でリボンのユーザー設定(左ペイン)をクリックし、右ペインの右側、リボンのユーザー設定を メインタブ にし、下に表示されている開発にチェックをいれ、OKをクリック(画像1の赤線を参考)、するとメニューに"開発"(画像2)が表示されるようになります。
これで、開発をクリックすると一番左に Visual Basis が表示されます。
ここからが本題です。まずC38Hで作成した.MOTファイルを開きますが、デフォルトでは.motファイルは表示されないので、開くクリックし、表示されたウィンドウの右下のほうにすべてのEXCELファイル見たいな表示が(前回の種類を記憶しているので違う場合もあり)ある右の▼をクリックすると すべてのファイル(*.*) がありますので、それをクリックすると.MOTファイルも表示されますので、ダブルクリック、するとウィンドウが開き(画像3)ますので、赤線のように Windows(ANSI) を選んで、完了をクリック(次でなくてよい)どうせASCII文字しかないのでデフォルトの 932:日本語シフトJIS でもいいのですが。
ここで保存をしてあった、Visual Basic のプログラムをインポートします。(プログラムは終わりの方にリンクがある)
メニューの開発をクリックすると一番左にVisual Basis がありますので、それをクリック、するとウィンドウが開きますので(画像4)ファイル → ファイルのインポートをクリックし、保存してあったVBのプログラムをダブルクリックし、開きます。すると画像5のように標準モジュールの下にmodule1ができます。これをダブるクリックするとVBのプログラムが表示されます。プログラム部分を見ると判ると思いますが、このマクロは ctrl + a に登録されていますので、エクセルに戻り、ctrl + a を押すと自動的にチェックサムを書き換えますので、上書き保存してください。その際ワーニングが出ますが無視して はい(Y) をクリックしてください。これでチェックサムがモトローラーフォーマットになってものが保存されていますので、この.MOT ファイルをロードすればOKです。
Visual Basicのプログラムはここをクリックして下さい。メイン・メニューのダウンロードからも出来ます。ブラウザによっては直接テキストファイルが表示されますが、全コピーし、Module1.basとして保存して下さい。もっとも何行もないプログラムなので、打ち込んだほうが早いかも!!
マクロが実行できない時:
ファイル → オプションと進み、表示されたウィンドウ(画像6)と進みセキュリティー センターをクリック、右側のセキュリティーセンターの設定をクリックすると画像7が表示されますので、マクロの設定をクリックすると画像7のように右側にマクロの設定が表示されますので、警告を表示してすべてのマクロを有効にするにチェックを入れ、OKとOKとクリックし、EXCELの戻ってください。今後はマクロの入った表を開く時には警告が表示されますので、コンテンツを有効にするをクリックしてください。(2回目からは表示が出なくなり、マクロが有効になります。
もちろん、信頼できる物だけですよ。
2016-12-18; LINUX用のシェルスクリプトを作りました:
LINUXが使える人はこちらの方が便利(EXCEL(有料ソフト)が必要ない)。注意点:
ダウンロードしたシェルスクリプトを適当なディレクトリーに保存し、同じ所に日立フォーマットの .MOT ファイルを置いてください(LINUXは大文字と小文字を区別しますが、.motファイルでもOKです)。そしてダウンロードしたファイルに実行権限を与えます。
$ chmod 700 chgsum.sh
その後
$ ./chgsum.sh 日立フォーマットの.MOTファイル名
とすると、画面に出力を表示しながら、同じディレクトリーに new.MOT というファイルを作成します。この際必ず、同じディレクトリーには new.MOT ファイルが存在しないようにしてください。さもないと現存のファイルに追記する形で作ってしまいます。
LINUX用のシェルスクリプトはここをクリックして下さい。(ダウンロードからも出来ます)
蛇足:Windows、エクセルのビジュアルベイシック(VB)用の説明とLinuxのシェルスクリプトの説明の長さの違いがこんなにある。これはEXCELがデフォルトでマクロ(VB)関係が表示されない(VBを使ったウィルス保護の為?)が原因だが、LINUXではダウンロードしたファイルは基本的に実行出来ない(ディレクトリーの設定によるが)ので万が一変なプログラムが知らない内にダウンロードされても、実行出来ないので比較的安全。ウィンドウでVBを使おうとすると設定が多すぎる(仕方ないか?)LINUXでは実行権限を与えるだけだ。
57:アッセンブラーからMOTを作る で紹介しているが、秋月のH8/3052F開発ソフトに入っているC38H.EXE コンバーターは日立フォーマットでチェックサムを作る。だがモニター・プログラムが要求しているのはモトローラー・フォーマットだ。そのせいでチェックサムエラーが出てロード出来ない。
色々調べると
日立フォーマットはデーターを足し桁上がりを無視し、2の補数を取った物
モトローラーフォーマットはデーターを足し桁上がりを無視し、1の補数を取った物
という事が分かった。
(参考URL: Sレコードフォーマット: http://www.geocities.jp/chako_ratta/micon/s_format.html
補数:http://qiita.com/satellitesat/items/340de8a946ddd2bac24e )
つまり、日立フォーマットからチェックサムを取り出し16進数で1を引いてやればモトローラーフォーマットに変更出来る。
早速プログラムを作るが、私が普段使っているLINUXのスクリプトではWINDOWSの人が使えないので、エクセルのビジュアル・ベイシックで作ることにした。エクセルを持っていない人はどうしようもないが、後日オープンオフィスのマクロを勉強して作ろうかな(これは未定)
プログラムは完成しているが、テスト後近日中に、ここで発表しますので乞うご期待。これで32BITと64bitのWINDOWを行き来しなくても、64bitのwindows 7で完結する。
追伸:やっぱり省エネでは無いのでワンチップマイコン用に7Vを作るのをやめにし、DCDCコンバーターの出力を5Vに調整し、ワンチップマイコンボードにある5Vの3端子ICの出力をカットした。(詳しくは秋月の説明書を参考)
SHARPの太陽電池から出ている線について
皆さんは白と黒の線がある時、どちらがプラスだと思いますか?
私は白だと思うし、弱電関係の殆どの人が同じように考えるのではないか。
コンピューター(弱電の世界)ではアースまたはマイナスは黒である。
大電力モーター(強電の世界)ではアースは緑かな
でも調べると黒は電源、白は接地側とある。100Vでも2本の線のうち片側は接地してるがこれが白線か!
これが問題の元。つまり黒は強電では電源側(つまりプラス側・交流なのでプラスはおかしいが便宜上)白は接地側(つまりマイナス)
なので太陽電池から出ている黒い線はプラス、白い線はマイナスだー
弱電の慣習とは違うので、皆さん気お付けましょう。私は逆に接続した事があった。
とその前に、今まで使用していた電池の電解液の写真をとりました。
見事に濁っている。私は専門家ではないので詳しいことはわからないが、明らかにおかしい。多分、過充電の為にこのように黒濁したと思われる。また、電池ケースの中央部分がわずかに膨れていた。電池上部をグラインダーでカットし構造材が見えるようにしてから、電解液を捨て、圧力をかけた水道水で洗っていたが、いつまでたっても、黒濁した水が流れ出して来た。本来は洗浄して、新たに電解液を作り、再生しようと思ったが、これでは無理(と思われる)と断念した。
それでは本題のワンチップマイコンH8/3052を使った制御回路です。写真は実験をしている所。この右側にLEDのアレイを作って実験している。
この時はまだリレーをつけていない。青いLEDが2つあるが、これがDCDCコンバーター、一つは電池から7Vを作り秋月のマイコン・ボード用の電源とする。直接5Vを作ってもいいがボード側を改造するのがめんどい(パターンをカットするだけだが)ので、このようにしている。もう一つはリレー用の電源。以前は電池から直接供給していたが、場合によっては31V以上になる。リレー自体は持ちこたえるが、触れなくなるほど熱を持つので、DCDCコンバーターで電圧を落とすことにした。ただ電池の最低使用電圧を24Vにしたので、この時DCDCコンバーターからは24Vは出力できない、いろいろ実験して23V位と決めた。もちろんリレー自体の動作は問題無い。オンになるまでの時間が長くなると思うが、ミリセック以下の問題だし、リレーのオン時間用に100mSも取ってあるのでいい筈。もう一つ赤いLEDが点灯しているが、これはマイコンの5Vから点灯している。ということはマイコンに電源が供給されているかのチェック用に付けたが、DCDCコンバーターにLEDがついているのなら、書き込みモードでオンにしたほうがいい。
電源投入直後はワンチップマイコンが初期化されすべてのポートがゼロになる関係で電池関係のLEDがすべて点灯します(東側直列LEDと補助電源用のLEDは1(HIGH)で点灯なので点かない)(醜いときはブラウザの横幅を調整してみて)
写真には写っていないが、3組目の電池は130F51ではなく(経済的な理由)90D26Rを直列にした。電流容量に違いがあるが、別々に制御しているし、いろんな関係で種々の判断電圧が異なる事になれば、プログラムで対応できる。
現時点ではプログラムに色々なバグが潜んでいると思われるので、RAM上で運用しています。ROM化するのはもう少し後に。バグを出し切ったと思われたらプログラムを公開します。
もう一つ大事な問題、実験中はAC100Vを安定化した電源からマイコンに供給し、多回転ボリュームで3組の電池の電圧を作り実験していました。
この時は問題なかったのですが(最初にコンピューター上でTera Term を走らせてからワンチップマイコンの電源を入れると(ROMにはモニタープログラムを入れてある)、Tera Term 上に H8/3052F Advanced Mode Monitor ......と表示が出て、セミコロンが表示されコマンド待ちになりますが
(参照:https://www.kinryokai.net/modules/news/article.php?storyid=309)、電池の運用ではこのようにはなりません。
原因はいまだに不明なのですが(グランドを疑っているのですが、どう考えてもグランドどうしは繋がっています)ただ以下のようにするとコマンドが入力できます。
ワンチップマイコンの電源を入れてから、コンピューター上の Tera Tramを走らす。この時ワンチップ側は電源が入った状態なので以前表示された H8/3052F Advanced Mode Monitor .... は表示されませんが、Tera Term 上でコマンドを打つとエコーバックが出る。(通信できていないときはエコーバックが返ってこないので入力コマンドが表示されないので判別が付く)これで後は同じになります。
電池回路図:ここをクリックしてください
制御部(ワンチップマイコン)回路図2016-10-2サーミスタ・CDS抵抗変更:ここをクリックしてください
1:今までのバージョンでもリレーは4つ、制作中の物は7つ(補充電用は半導体のゼロクロスSWなので入っていない)。これらの電源は電池から直接供給していましたが、満充電近くになると32Vにもなります(制作中の物は31Vにするつもり、どうも過充電が原因で電池の寿命が2年半しかない)リレーのコイル自体は持つようですが、何せ触れないくらい熱を持ちます。なのでここも安定化(と言うより電圧を上げない)します。ただ問題は使用を止める電圧は24Vにしていますので、安定化電源を通すとそのドロップがあるので24Vは出ません。実験すると23.3V位は出ますので(出力は400mA、リレーは最大で4個ONになる、但しショートリレーも入れてだがこのリレーは1秒もONにななら無いが)なのでこの電圧に設定しました(使用のDCDCコンバーターはSeeed StudioというメーカーのPOW00900M/106990003と言う型番)
2:最初はデジタルパネルメーター(3つある電池の電圧表示用)に供給する電源は非絶縁タイプのDCDCコンバーターでしたが、グランドが共通になる為、最小桁が3ー4デジットほどバラつきます。また表示電圧自体も2V位少なく表示するため、絶縁タイプ(コーセルのSUS 1R5 2405)に変更しました。
3:東側の太陽電池を直列にするリレー(太陽電池が30Vまで出力しないため)に、手持ちの24Vリレーを使っていましたが(確か接点容量は5Aだったと思う)が、焼けていて、接点自体がかなり痛んでいました。写真参照。接点自体は写っていませんが銅板の焼け具合から想像出きると思いますし、そもそもリレーソケット側の端子も焼けています。(よく使えてたなー)なので、オムロンのG7J-2A2B-Bの24Vにしました。このリレーは2a2bで切り替えでは無いですがaとbを継ぎ切り替えとして使います。ただb(ブレーク)側の規格は8Aですが?
4:ショートリレーに保護抵抗を直列に入れる。このリレーが働くのは数百ミリ秒ですが、電圧差は数ボルトですが、電池の容量がデカいので(内部抵抗が小さい)のでかなりの電流が流れますので、0.5オームのセメント抵抗を入れます。
モニタープログラムが手に入ったので、アッセンブラーでプログラムを書いていますが(まだ全然未完成、デバッグ中)モトローラーのSフォーマットに変換するプログラムで躓きました。秋月のH8/3052F開発ソフトに入っているプログラムは
A38H.EXE アッセンブラー(.txt .src等から).objと.lisを作成する
L38H.EXE リンカー(.objから.absを作成)
C38H.EXE コンバーター(.absから.motを作成。.motはH8に機械語を書き込む為のSフォーマットと呼ばれるテキストファイル)
ただ、デバッグが終了するまではH8/3052にはモニタープログラムを乗せ、プログラムの作成(.MOT)はRAM上に置くように作り、それをモニタープログラムにロードしますが、
ここでチェックサムエラーが出てしまい、書き込みが出来ません。
色々調べるとチェックサムにはモトローラー・フォーマットと日立フォーマットがある様で、秋月のコンバーターは日立フォーマットでチェックサムを作り、
モニター・プログラムが要求しているのはモトローラー・フォーマットです。
これが問題でチェックサム・エラーが出て、書き込みが出来ないので、モトローラー・フォーマットのチェックサムを作るプログラムを探しました。
http://www.vector.co.jp/download/file/other/h8/fh343170.html
にそのプログラムがあります。(作者の福田さんに感謝)
ただ一つだけ問題があります。それは私が使用しているWindows7は64ビットです。このプログラムはDOS窓にも対応していますが、32ビッットです。
仕方なく、ネットワークからは外してある、古いWindows XP(こちらは32ビット)で作業をし、出来上がった XXXXXXX.MOT をwindows 7に移してデバッグをしています。
このプログラムはアッセンブラー・ソフトが作る .LIS ファイルから直接 .MOT を作ります。ということはリンカーには対応していません。
但し、我々が作る(多分)プログラムの殆どがリンカーを使わなくてもいいと思われますし、私が作るプログラムもリンカーは使用しないので問題ありません。
備考:Window の OSは 7プロフェッショナル
先ずは、モニタープログラムの入手先ですが、googleで”H8/3052 モニター”で検索すると結構なサイトが出てきますが、基本的にどのサイトもCPUの製造元であるルネサスのホームページから3048用をダウンロードして、変更を加えるようになっていますが、どの記事もかなり古いので、クリックしてもリンクが切れていてダウンロード出来ません(場所が変わっただけかも知れないが)、ただ、そのものずばりH8/3052Fのモニタープログムが http://www.ohmsha.co.jp/data/link/4-274-06604-5/index.htmにありました。
このページにある tools.zip をダウンロードし、解凍すると二つのフォルダーとreadme.txtがあります。monitorフォルダーの中にmon3052r25.motがありますので、それが3052用のモニタープログラムです。ちなみにgccフォルダーにあるh8300-binutils-2.13.2.1-gcc-3.2.3-newlib-1.11.0-bin.exeは素のWindows上で動くGCCクロスコンパイラらしいのですが、Windows7プロフェッショナルではインストールできませんでした。多分これはWindows XP用だと思われます。
先ずは秋月で買った H8/3052F 開発ソフトに入っているROMライターソフトをインストールしますが、方法は秋月の説明書を見てインストールしてください。
次にWindows 7で使うターミナルソフトですが、私は Tera Term を使っています。ググれば簡単にダウンロードできるWEBが見つかります。
tera term の設定ですが、プログラムを走らせると左の画面が表示されますので、シリアルを選び、ポートを選んでください。私はElecomのUSB-Serial Converter
使っていますのでそれを選んでいます。
次にボーレート等の設定ですが、メニューの設定→シリアルポートと選ぶと画面が表示されますので、ポートは前の画面で選んだものになっていますが、ボーレートを38,400にし、データを8bit、パリティを none、ストップを1bit、フロー制御を noneにします。送信遅延は一様 ゼロにして様子を見ます。
この時メニューの設定→設定の保存で、tera termと同じフォルダーに teraterm.ini として保存をすると次回からはその設定がデフォルトで反映します。
55:書き込み回路の製作で作ったもののスイッチを書き込み側ににして電源を供給します。
モニタープログラムを書き込みますが、書き込みソフトである H8WriteTurbo を走らせると、左記のようなウィンドウが表示されますので
デバイス、通信ポート、通信スピードを選び、mon3052r25.motをドラッグし、このウィンドウ上で放すと(ドラッグオ-バー)書き込みが始まり、終わるとその旨の表示が出ます。
これで、CPUにモニタープログラムがインストールされた筈です。
確認はまず、Window 7 機で tera term を走らせておいて、一度ワンチップCPUの電源をオフにし、スイッチをモード7側にして電源を供給すれば、ターミナルのウィンドウ上に画像のような表示が出ればOKです。
ここで ? を入力すると簡単なhelpが表示されます。
モニターの使い方はhttp://tokyo-ct.net/usr/kosaka/for_students/H8/akih83048fonemon/akih83048mon5A.htmlや
http://tokyo-ct.net/usr/kosaka/for_students/H8/akih83048fonemon/akih83048mon5B.htmlや
http://tokyo-ct.net/usr/kosaka/for_students/H8/akih83048fonemon/akih83048mon5C.htmlなど
が参考になります。
最後に私が迷った件ですが、
デバッグは変更するためにプログラムをRAMに置きますが、本来作るプログラムはROMに置きます。
ここで、迷ったのは ROMに置くプログラムのまま転送すると、モニターが自動的にRAMに移してくれるのか、それともデバッグするためのプログラムを最初からRAMに置くように書くのか?と言うことです。
これは作成したプログラムはRAMに置くように書かなければならないようです。でもこれはアッセンブラーの.SECTIONのLOCATEで指定を変えるだけなのでそれほど問題はありません。(プログラムは相対アドレッシングで書く事)
早速書き込み回路を作りますがこの時、通常仕様モードであるモード7と兼用出来るようにします。
先ずは、回路図と写真
訂正2016-09-16:又しても大嘘を言っていました。FWE(コネクター4の8番ピン)からつながっているスイッチのオープンになっている部分は間違いです。これは5Vに接続しないといけません。(基盤内部で10KΩでプルダウンしてあるので、オープンのままだと、high(1)になりません)
上部からの画像はワンチップCPUボードに挿した状態です。裏からの画像に見にくいですが10Pのコネクターがあり、それをCPUボードに挿します。これで電源を入れるとスライドスイッチの位置により書く込みモードかモード7になります。回路では電源はコネクターになっていますが、基板上には無く、橙白と灰白の線の先にあります。
回路図ではGRDに接続していない端子はオープンですが、これはCPUボード側でそれぞれの端子がプルアップされているので、この状態でHigh(1)になります。
シリアル接続用のD-Sub9ピンのコネクターは太い灰色の線の先にあり、実際はこれにUSB-シリアル変換機を通し、コンピューターのUSB端子に入っています。
(今時、シリアルコネクターが付いているコンピューターは無いなー)
(見にくい時はブラウザの横幅を調整してください)
後に出てくるモニタープログラムを書き込んで、Window機のターミナルを立ち上げておいて、スライド・スイッチをモード7にし、電源を入れるとプログラムのデバッグなどが出来ます。
私は参考にしたWEBに二つあるシリアルポートのどちらを使うのかはっきりと書いてあるページが無かったのですが、実験したら書き込みもモード7もポートの1番でした。
つまり回路図に接続があるポートです。
1:電池セットを3組にする
2:3組にすると今までの様にディスクリートで組むには大変なので、制御回路は1チップマイコンにする
3:1チップマイコンには秋月電子の H8/3052Fを使用する
と、ここまでは決まったが、この1チップマイコンがどんな規格か調べてプログラムを作らねばならないが、H8/3052Fなど触ったことも無い。
そもそもアッセンブラーも勉強し直さなければならない。前途多難だがやる価値はある。当分これにかかりっきりになりそう。
まずはH8/3052Fの仕様
メモリー、ROM:512Kバイト RAM:8Kバイト
タイマー、ITU(インテグレイテッド・タイマー・ユニット):16ビット 5チャンネル、WDT(ウォッチ・ドッグ・タイマー)
A/D変換、10ビット分解能 8チャンネル
D/A変換、8ビット分解能 2チャンネル
シリアル、SCI(シリアル・コミュニケーション・インターフェース) 2チャンネル
I/Oポート、最大78ポート
このIC、DRAMが使えたり(リフレッシュ・コントローラーを内臓している)、16Mバイトモードがあったりする。また、IC内部のROM(EEPROM)を書き込むのに高い電圧は必要とせず、セレクトピンを設定し、電源を入れるだけで書き込みモードになり、秋月のソフトではそのソフトにデーターをドラッグオーバーするだけで書きが行える優れものだ。
測定したいデーター、A、B、C、3組の電圧。[サーミスタの電圧(温度測定の為)。CDSの電圧(照度の測定):現在は太陽電池の出力電圧を大きくしたので、使用していない]
このうちサーミスタとCDSは東側の電池を直列にする判断の為ですので、最初から十分な電圧出力のある太陽電池なら直列にする必要は無いので要らない。
ということは8チャンネルあるA/Dコンバーターの5チャンネルを使って、これらを測ることにし、表示用LEDとしてABCの電池で使用中(放電中)の電池を知らせるLED,24V以下(過放電防止)になったら点灯するLED,そして満充電に達したら点灯するLEDをそれぞれの電池用に作る。ということは出力ポートとして9ポートいる。
また、電池をセレクトする(充電と放電)リレー、東側太陽電池を直列にするリレーと合計4つのリレーがいる。つまり4つの出力ポート
それと全部の電池が24V以下になったら補充電する為にSW電源をONにするポートが1つ
CPUの仕様書によると、ポート2,4,5はプルアップMOSのオン・オフ制御が出来るので、リレーの制御にポート5の0から3を使います。
出力ポートで直接リレーを駆動は出来ないので、MOS・FETを介して駆動する。
また、ポート1、2、5、BはLED(10mA)を駆動できるので、ポート1の0から5とポート2の0から2にLEDを直接付け表示させる。
私が使うのはモード7と呼ばれるシングルチップ・アドバンスモードで内臓のROM,RAMだけで動作するモードです。
次にデーターを記録しておく領域だが、RAMを使わずCPUが持っている汎用レジスター(16Bitなら16個もあるが、その内2組で32ビットのスタックポインターとして使うので実質14個)にする。これは演算が簡素化する為。
保存しておくべきデーターは3組の各電池の電圧、サーミスターと照度の電圧、定数としての24V、31V(満充電)、26.5V(それぞれ使用中止電圧、充電中止電圧、補助電源終了電圧)の8個なので、充分余裕がある。
と、ここまでは直に決まったがこれからが大変そう。まずは書き込み回路(といってもピンを設定し、シリアル通信線を配線するだけだが)それとモニタープログラムを入手せねば、
モニタープログラムとは一々ROMに書き込まなくてもいいように、試験したいプログラムをWindowのコンピュータから送り、RAM上で走らせる事が出来るもの。これが無いと作ったプログラム(絶対に一発では動かない)を何度も作り直し、そのたびにCPUのROMに書き込んだら、100回の書き換え制限は直に来る。
まずはグラフを見ていただきたい。これは現在(2016-7-26)のロガーのデーターである。グラフから分かるのは、明らかに内部抵抗の上昇により、補充電終了後、あまり時間が立たないのに再度補充電が入っている事である。
これは以前なら十分に充電されてから電圧が上ったが、今は内部抵抗が高くなったので、少しの充電で電圧が上がり、補充電終了電圧に達する為である。又、太陽光で充電時もすぐに電圧が上がり、充電を並列にする電圧に達している。
記録を見ると2013年12月25日に交換しているので、約2年半である。私はこれが寿命だとは思わない。
25年以上前になるがハイエースのディーゼルの新車を買った時、バッテリーを寒冷地使用の(良くスキーに行く為)し、その時につけたバッテリーが今回と同じ130F51でしたが、10年以上も全然問題なく使用出来、交換したのも悪くなったためでは無く、10年も使っていたから交換したのである。
ディーゼル車はエンジンスタートの時にかなりの大電流が(多分100A位)流れるが、今回は常に大体3A位である。
それなのに寿命がかなり短い。多分過充電が問題してるかなー。両電池とも32.1Vに達してもそのままなので、この間に過充電になり、寿命を縮めたのではないかなー。
これではまずいので、電池を交換することにした。電池は変えるが、その前に過充電防止を考えねば。
現在の電池は2013年に12月に交換したものですが(約二年半使用)経年変化で内部抵抗が高くなってきているようです。
というのも、このところ天気が悪く(梅雨だから当たり前、今年は空梅雨で雨はあまり降らない(東京)ので、水不足気味ですが、太陽は出ていない日が多い)ので、補充電がショッチュウ入ります。そこで気がついたのですが前は補充電が入って、数時間して補充電が切れたのですが、今は10分位で補充電をストップしてしまいます。
これは電池の内部抵抗が増えたので、少しの充電で設定電圧に達し、ストップするようです。
電池はまだ使えそうなので、設定電圧を変更し、対処しようと思います。後日、この項にその結果を追記します。
2016-07-13 本日充電終了電圧を変更しました。
電圧が低くなった時に切り替える電圧 24.0V
電圧が高くなった時に切り替える電圧 32.1V (過充電防止の為)
補充電開始電圧 両方の電池が24.0Vを下回った時
補充電終了電圧 27.0V (以前は26.5V)
電池を並列にする電圧 両電池共32.1Vになった時 (並列にすることにより電池電圧が下がり過充電が防止出来る)
電池を並列から単独に戻す電圧 25.5V
近頃常に気になっていることがある。それはこのシステム太陽さえ出れば家庭用の電源を使わないのでいいのだが、経済的にはよろしくない。
というのは家庭用の太陽電池の発電はなるべく売った方が得をするのである。下記は2016年5月の我が家の電気代である。
使用料 175KW 4,979円 1KWあたりのコスト:28.5円
売電料 280KW 13,440円 1KWあたりのコスト:48円
約倍ほども違うのである。ということはコンピューターの電池に供給するのではなく、売った方が得をする。
でも電池がなくなるので、家庭用電源から充電をする。停電になってもいいように、フローティング充電という方法で充電すれば、電池は常にほぼ100%の残がある事になるので2日間位は持つと思う。
どれ位得をするか、あくまで目安だが(補充電を考えていない)我が家のサーバーはルーターやHUB等全部入れて2.5A+である。
25V X 2.5A=50W、50W X 24時間 X 30日 = 36KW
この分を売ったとすると (48円ー28.5円) X 36KW ≒ 700円
つまり、1ヶ月約700円の儲けになるのだ。1年で8,400円 うーん、そこそこの金額だな
追記:この月は特別、普段は売電料より、使用料のほうが多い。ただ毎年5月は効率がよく、だいたいプラスになるが、これほどでは無い
47:でデーターのリストがあるが、新しくページを作ることにした。
2015年9月9日から10月2日までのデーター
2015年10月4日から10月26日までのデーター
上のデーターオフセットがおかしくなっている。真夜中で太陽が無いのに充電している!!!調べねば。
2015年10月28日から11月20日までのデーター
このデーターは天気が悪かったので、補充電が何度も入っている。10月29日までは前回と同じで、夜でも太陽電池の充電電流があるが、その後はなくなっている。これは絶対計測に使用しているオペアンプのオフセットがずれた為だが、その理由は今もって解らない。これほどオフセットがズレる程の温度変化や電圧変化は無い。しかも突然直っている。
2015年11月21日から12月14日までのデーター
2016年1月23日から2月15日までのデーター
近頃太陽が出て照度が充分あるのに東側の太陽電池が直列にならない。
抵抗値が経年変化で変化したのかと思い、半固定の可変抵抗器で調節したが、すぐに再度調整が必要になった。
どおもおかしい、CDSがダメになったのかと思ったが、その時、日中で暑いので屋根には登らず、夕方やろうと思っていたが、寄る年波でそれを忘れ、今日(実は西日本に台風が接近中)雨を合間を見て屋根に登って驚いた。取り付けたあるはずの容器(タッパウェア状のプラスチック容器)が無い。よく見ると太陽電池モジュールの下に転がっていた。だからおかしかった。ここに容器の写真がある
理由:プラスチックが経年変化でボロボロにもろくなり、取り付けビスから外れていた、ケースを触ると、ボロボロと分解する。教訓:屋外の直射日光の当たるところにプラスチック・ケースを設置してはいけない。
という訳でこのケースをアルミと曇りガラスで作ることにした。出来たらここで公開します。昔は家の隅に割れたガラスの破片がよく転がっていたが、今は見ないなー。うちにも無い。小さな曇りがラスを買うのもなー?
参考までに壊れたケースに入っていたCDSの写真。左上が比較の為に置いた新品のCDS。多分熱の為だと思うがセルの状態がかなり悪い