ROBOZAK(ROBONOVA-I)用低電圧検知回路を作りました。 しかし・・・
1/26追記:また新しい事実が判明しました。次の記事を参照して下さい。※一旦公開したものの色々怪しい現象が発生し、検証に3日もかかってしまいました。これによって衝撃の事実が判明しました。(・・・は、少し大げさか。) 以下、前半はほぼ前回のまま、後半は検証結果を踏まえて書き直したものです。 キーパッド作成で、手作りラダー抵抗を何セットか組みましたが、袋買いして200本もあるので、まだまだ死ぬほど余ってます。(笑) これを使って何か有効な回路を作ろうと思いいろいろ考えました。
・・・かなりイヤな性格です。(笑) | |||||
|
■プログラムを思い出してみましょう。 robot_voltage: ' [ 10 x Value / 256 = Voltage] DIM v AS BYTE A = AD(6) IF A < 148 THEN ' 5.8v : | |||||
| |||||
|
このプログラムは、5.8V以下になるのを検知してます。つまり、サーボ用に出力されている電圧(6V)の検知をして5.8Vまで電圧低下することが見えればいいのです。 このルーチンのコメント「10 x Value / 256 = Voltage」は、実は間違っていて、5VのときADポートの入力値は最大値(=255)を示すので、正しくは、5 × (Value + 1) / 256 = Voltage のハズで す。*1 では何故、5ではなく、10なのかというと、5V以上の電圧は検知できないので(壊れる)ので、電圧を1/2にしているからです。・・・力強く言い切っちゃいましたが推定です。(笑) ちなみに、5V側の電源はレギュレータによって電圧を生成しているので計測する前に停止します。(※自分自身は測れません。・・・この意味は後半でわかると思います。) *1 : 実はこれも正しくないです。(笑) 何が違うかは最後に。 | |||||
そうすると、今回作るべき回路が見えてきます。6Vの電圧が1/2になる回路を作ればいいのです。電圧を1/2にするには、抵抗を2本使えばできます。(昔中学だかどこかで習ったような気がします。) ※面倒なので段ボールに手書きしました(笑) | |||||
使う抵抗は、大き過ぎるとノイズが乗ったり正確に測れなかったりしますし、小さ過ぎると消費電力が多くなります。ここでは余っているものの利用なので10KΩとその倍数くらいしか選択肢がないので10KΩを使いました。 ちなみにこの回路に流れる電流をオームの法則に従って計算すれば、6V / (10KΩ×2)なので0.3mAです。実際に作ったのが左の写真手前です。入力がサーボ用の電源(6VとGND)、抵抗を直列に繋いで、真ん中の電圧をADポート(ここではAD(6))の入力にして計測します。 | |||||
もう少しわかりやすく接続部を写すと左の写真のようになります。接続は、入力側をサーボの空いているポートに、出力をAD(6)ポートに接続します。 実際はどこでもいいんですが、プログラムがAD(6)なので。 ちなみに出力のGNDのケーブルは、同じ基板内なので省略しました。入力2本、出力1本です。(入力1本、出力2本でも同じことができます。) | |||||
実際に値を読んだところです。この回路の出力が3.22V。半分にしているので実際は、6.4Vです。 それに対し、AD(6)の値が、167なので約3.28Vです。 ほぼ同じです。 電圧が降下するまでサーボを繋がない状態だと恐ろしく時間がかかります。 丸2日間はこれに時間を費やしました。(不在のときは電源を切っていたので余計に) | |||||
AD(6)が159、実測値が3.08Vです。 | |||||
AD(6)が156、実測値が3.01Vです。 | |||||
AD(6)が154、実測値が2.99Vです。既にサーボへ給電する電圧は6Vをきってます。 | |||||
途中写真を省略します。AD(6)が152、実測値が2.93V AD(6)が150、実測値が2.89V : AD(6)が149、実測値が2.88Vです。 実はあと1つで148、これより小さいとき(IF A < 148)というのが条件式なので147にならなければなりませんが、これ以上は小さくなりません。 これの検証に時間がかかってしまいました。理由は何でしょうか? | |||||
サーボへの給電電圧を測ってみると、既に5.66Vになっていて、5.8Vは下回っています。 | |||||
理由はこれです。ADポートの電圧を測ってみると4.8Vになっています。つまり分母が小さくなってしまったために、数字が大きくなってしまったのです。(数字は逆に149から150に増えていることがわかると思います。) ADポートの電圧→Va , サーボの電圧→Vsとすると・・・ Va × (Value + 1) / 256 = Vs Value = Vs / Va × 256 - 1だからです。 | |||||
| ■結論 回路が正しいという前提で結論付けるなら、今の低電圧検知のプログラムでは検知できないということです。実測値を参考にするなら、「151より小さい(IF A < 151)」くらいで見ておかないとダメですし、動きを完全に止めないとROBOZAKがゾンビみたいに復活する恐れもでてきます。 ※MR-C3024のバージョンが変わっているようですし、個体差もあると思うので安易に間違っているとは言えませんが・・・。 | |||||
| ■追記 (1/25 8:40) | |||||
さっき見つけちゃいました。無断で画像を使う訳にはいかないのでGoogleで「Robonova-I用 電圧センサーハーネス」を検索してみて頂きたいのですが、検索するとこれに相当する製品の画像が出てきます。同じ様に配置すると多分左の写真のような感じだと思います。(わかりやすいように並べただけで配線はしてません。) この「ハーネス」を見てみると、コネクタ×2個+ケーブル1本に見えます。サーボ側のコネクタにここで作った抵抗を収容してしまうとADポート側に延ばすケーブルは1本で足ります。(少しもっこりしている方がサーボ用でコンパクトな方がADポート用ですね。) | |||||
| |||||
| ■以下余談です。 | |||||
| (その1) | |||||
こんなモノを作ってみました。近々これについても書きます。 | |||||
| (その2) MR-C3024は正確な時間計測ができないので時計を組み込もうと思ってます。 なるべく安く仕上げたいので、電波時計を分解してみました。 | |||||
| |||||
| ん・・・ちょっとでかすぎ。 | |||||
| |||||
| 電波時計はあきらめて、MR-C3024は、I2Cバスを持ってるのでリアルタイムクロック「RTC-8564NB」を使ってみようかと思ってます。 (既に入手済みです。) | |||||
| 上の写真はカシオのではないですが、カシオの目覚まし電波時計が安いので、2個買いました。980円です。 (昔、秋月電子通商で同じようなのが安く売ってましたね。アレも持ってます。) ROBOZAK RZ-1 ROBONOVA-I RN-1 電圧チェックセンサーハーネス | |
■最後にお願いです。 最近ハード寄りの記事ばかり書いてますが、私はハードウェア技術者ではないので(実務経験は全くないド素人です)、実際に組まれる方は、その辺も踏まえて自己責任でお願いします。高価なボードを壊す可能性も十分ありますから。 | |
| + ROBOZAK関連(過去記事)のダイジェストを表示する場合はこの行をクリックして下さい。 |
| 固定リンク
★ お探しの情報が見つからなかったとき、サイト内検索をしてみて下さい。
サイト内検索
トラックバック
この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/213795/17792813
この記事へのトラックバック一覧です: ROBOZAK(ROBONOVA-I)用低電圧検知回路を作りました。 しかし・・・:















































コメント