PWM出力とアナログパネルメータについて

このQ&Aのポイント
  • H8からのPWM出力によりアナログDCパネルメータを振りたいと考えています。
  • アナログメータは0-5VDC入力で、表示が-2.5~+2.5VDC表示となっているメータを利用することで、Duty50%のPWM出力でメータに入力した時にメータのセンター(0V目盛)に針が表示されるようにしたいと考えています。(PWM周期は2kHz)
  • 整流回路を介して±入力のDCメータを使うのが好ましいのかもしれませんが、直接振ることが可能ならばかなり作業が楽になりますので検討しています。
回答を見る
  • 締切済み

PWM出力とアナログパネルメータについて

H8からのPWM出力によりアナログDCパネルメータを振りたいと考えてい ます。 アナログメータは0-5VDC入力で、表示が-2.5~+2.5VDC表示となっている メータを利用する事で、Duty50%のPWM出力でメータに入力した時にメー タのセンター(0V目盛)に針が表示される様にしたいと考えています。 (PWM周期は2kHz) 整流回路を介して±入力のDCメータを使うのが好ましいのかも・・・ とは思っているのですが、直接振る事が可能ならばかなり作業が楽にな りますので検討しています。 問題点や注意点等有れば教えて頂けないでしょうか?

noname#230358
noname#230358

みんなの回答

noname#230359
noname#230359
回答No.2

アナログパネルメーターはインピーダンスが数百~数キロΩなので ポートから直接駆動したい場合は高駆動力のポートでないと誤差が大きくなります。 (ポートのソースとシンクのインピーダンスも同じではないですし) またH8マイコンとメータが離れてケーブルで接続する場合や挿抜可能な場合には H8マイコンの静電破壊にも注意する必要があります。(使用環境依存) 当然、電源電圧が5Vからずれると表示もずれます。   PWM周期が2kHzあれば針の揺れは無視できますが、電源が揺れるのはモロに見えますのでUSB等を電源としては使えないと思います。

noname#230358
質問者

お礼

今考えている環境では、H8/2633で2つのアナログパネルメータを動作させ たいと考えています。 H8基板への電源は専用DC電源を用意して、メータとH8基板はケースの中に 入れてしまえば静電破壊等については大丈夫かな・・・となんとなく思っ ていたのですが、やはり検討が必要かもしれませんね。 メータも今考えているメータを確認したところ、1kΩ/Vの5VDCとなってい ました。 このメータを2つ動作させるとなると確かに電力的?な事も考えなければ いけない様ですが、容量さえ仕様を満足出来れば、PWM出力とD/Aによるア ナログ出力というのは、アナログメータを動作させるための出力ソースと してほとんど同じと考えて良いものなのでしょうか? 回答有難うございました。 もう少し考えてみたいと思います。

noname#230359
noname#230359
回答No.1

見た目の値が変わる 数値がめまぐるしく変わり やかましい 金があれば 周波数分析器 のほうがいい 電気街に逝けば中古が転がってると思う ↑ 10数年ぐらい前 1万で売っていうたが 車ももってなかったころなので 邪魔だし 重いし やめた ↑ といいつつ 25インチのブラウン管 CTRを500円で 買って タクシーで 1万払ったのは 良い思いで ネット上だと高いな http://sokuteiki.takeoff-ltd.com/

noname#230358
質問者

お礼

回答有難うございます。 出力については有る程度ソフトにフィルタをかければ振れは気にしなくて 済むようにならないかな?と考えていました・・・ タクシーで秋葉に買い物ですか・・・すごいですね・・・(*^_^*) 実は私も、昔パソコンがもっと高かった頃、安く揃えるために一日かけて 秋葉をさまよって無事購入は出来たんだけど、高い秋葉の駐車場代を払っ たら結局高い買い物になってしまった・・・・ という経験が有ります。 私も良い思い出です・・・

関連するQ&A

  • 電圧DC 0-10VをPWMに変換する回路について

    電圧DC 0-10VをPWMに変換する回路を作りたいと思っています。 入力 DC 0V-10V 出力 DC 10V 1kHz PWM 0-10Vを分圧で0-5Vに変えてPICにアナログ入力し、PICで1kHz PWMを作りトランジスタで10Vに変える回路は出来ました。 しかし、もう少しシンプルな物が作れないかと考えています。 タイマーIC555でPWMを作る回路のボリューム部分を0-10V入力に変えればいいのか等思っていますが、具体的な回路がわかりません。 出来れば、DC0-10Vを1kHz PWMに変えるIC等あればいいのですが。 アドバイスをお願いします。

  • PWM出力を アナログ電圧に変換したい

    さっそくですが困っています 標準的な機械をカスタマイズして 3相交流モータの回転制御をしてほしいとの要求があります コントローラのアナログ出力としては24V 80hz 10ビットのPWM出力が ありますが 対してモータ制御用のインバータの入力は 0~10Vアナログ電圧入力となっています コントローラはパッケージング化されており変更不可です またモータも変更不可です  PWM-電圧変換をさせてやりたいと考えていますが方法がわかりません 逆にPWM出力で回転制御させられるインバータがあればそれでもOKです ご教示お願いします

  • アナログテスターとデジタルマルチメーター

    ファンクションジェネレーターで、正弦波を発生させ、50Ωの抵抗をつなぎ(ACマルチメーター出力1V、DC0V)、周波数を10Hzから上げていき、抵抗にかかる交流電圧をデジタルマルチメーターとアナログテスターで測定すると、マルチメーターは5kHzくらいからどんどん電圧が下がりしまいには約0Vになってしまい、テスターは10Hzで針が振るえてしまい、500kHzから上はどんどん電圧が下がってしまいました。何故なのでしょうか?わかるかたがいたらお願いします。。。

  • パルス幅変調(PWM)用ICを教えてください

    PWM発生用ICを探しています。 ネットで数社ほどみてみましたが見つかりませんでした。 PWMを作る方法としてはNE555の出力端子から三角波を取り出し アナログ信号のレベルとコンパレータで比較すればよいわけ ですが、発振周波数の精度を上げるため水晶を使いたいので NE555は使えません。 水晶で方形波を発振させて三角波を作れるICで、アナログ信号 を入力すればPWM出力が得られるような単電源のICはないでしょうか。 発振周波数は上限が200KHz程度が希望です。 ご存じの方、よろしくおねがいします。

  • タイマICを使ったPWM信号の作り方

    周波数:約100Hz(精度悪くても良いです) デューティ比:10%~90%ぐらい タイマIC入力:5V PWM信号:5V・20mA以下 以上の仕様でPWM信号を出力する回路を自作したいのですが、 どのようなタイマICを使うのが良いでしょうか? タイマIC555を検討したのですが、デューティ比50%以上しか作れないようでした。 よろしくお願いします。

  • PWM信号の切り替わり時間について

    今、PWM制御回路をアナログ回路で考えています。 コンパレータを使い、三角波発振回路と基準電圧で比較してPWM波形を出力して、デューティを可変抵抗で調整できるようなものを考えています。 そこで、PWM信号をHigh→Low、Low→Highへ切り替わる時間を3nsほどにしたいのですが、アナログ回路でこの値で切り替わるようにするには、どのような設計をすればいいのでしょうか? 今調べているのですが、まだわかっておりません。 もしよろしければアドバイスを頂けたら幸いです。

  • PWM制御のデューティ変更時におけるトラブル

    SH7211マイコンのPWM(モード1)を使用して、定電流制御をしています。 PWMの周期を10KHzとし、その割り込みの周期で電流値を増設のADコンバータで取得、PID演算の後にPWMのデューティを変更して電流を制御するフィードバック機構です。 この時、10KHzで割り込みをして電流を一定に保つようデューティを常に変更しているのですが、過度に電流を流さないようデューティの値を変更する時はデューティが50%以上にならないようにしています。 ですが、PWM出力をオシロで見ていると、例えば電流値を5Aから1Aへ変更しようとした時、変更するタイミングで何故かデューティが100%以上になってしまい、本来電流値が下がるべき所で一瞬だけ5A以上となる現象に悩まされています。 CPUのマニュアルに、「周期レジスタとデューティレジスタのコンペアマッチが同時に発生すると出力は変化しない」とあり、その時デューティが100%以上になってしまう動作例が載っているのですが、プログラム上でデューティは50%以上にならないようにしていますので、この箇所は問題ないかと思います。 今現在わかっている事ですが 1) 割り込みで常にデューティは書き換えているのですが、電流値を変化させた時、つまりデューティレジスタの値を急激に変化させた時に発生しているように見えます。2A→1A程度の変化では発生しません。 2) 5A→1Aと減らした時と、1A→5Aと増やした時両方で発生します。 3) デューティを変更する直前でブレークをかけて、適当なタイミングでブレーク解除した時、この現象が発生する時と発生しない時があります(デューティを変更するタイミングが問題?)。 4) デューティレジスタの値を0とした場合、上記に書きました「周期レジスタとデューティレジスタのコンペアマッチが同時に発生すると出力は変化しない」事に該当するかもしれないと考え、デューティレジスタの値が0の時は強制的に値を10としましたが、この現象が発生しました。 また、プログラムの中身ですが 1) 周期レジスタの値は3999、デューティレジスタの値は0~1999の値で変化。 2) 出力は初期出力がHi、コンペアマッチでLowというHi→Low出力。 3) 割り込み関数の中でADコンバータから値を取得→PID演算→デューティレジスタの値を変更という処理をしています。 4) 割り込みレベルを他の割り込みと比べて一番高くしているため、割り込み関数処理中に他の割り込みは発生しません。 長文申し訳ございませんが、何か同じような現象が起きた方、または何かしらの解決策をご存知の方、アドバイスを宜しくお願いします。

  • 直流のメーターについて

    直流のメーターの較正試験を実施するときに、メーターが8000/8なので、試験電流 をDC8A入力すれば、確かに較正できますが、実際にはDCCT(直流計器用変流器) で、電流を検出し、変換器(整流器?)を通して、メーターを振らせています。 DCCTはAC200Vを使った極性の逆につないだコイルを用いる方式のものを 利用しています。  DCCTの出力は交流であると聞いたことかあるし、 DCCTには、5000/5とかいてあるので、変換器一次にAC1A 入れれば、理屈はメーターは1000Aを指すと思いますが、実際にはなりません。 変換器を通してのメーター較正はできないのでしょうか? できるとすれば、入力は何を入れてその計算はどうなるのか教えていただきたい です。 ちょっと、質問するには情報が少なすぎるかもしれませんが、 よろしくお願いします!

  • PICのPWMの使い方を教えてください

    PIC12F1822のPWMのテストをしていますが、正しい設定方法が判らず、以下の現象が出ています。 プログラム全体と、MPLIB のシミュレータによるLogic Analyzerの画像を添付しましたので、PICにお詳しい方のアドバイスをよろしくお願いいたします。 ◆ テスト内容: 周波数一定でデューティー比を変化させていく  今回の設定は、PR2=127 なので、パルス幅を0 ~ 最大パルス幅の 511 ((PR2+1)*4)で変化させる ●問題点1: デューティー比100%近く(508/512)でPWM出力が突然 50%に変わる。 ●問題点2: デューティー比100%以上(512/512以上)を設定するとPWMは100%('H'のまま)となる。 その後デューティ比を下げてもPWMの出力は'H'のままで、PWMの出力が出ない。 ● 問題点3: パルス幅の設定で、CCP1CON<5:4>に'00'以外をセットすると、PWMの動作がおかしくなる(出力が'H'のまま) ・・・ これはシミュレータのバグでしょうか? プログラム全体は、一番下にありますが、メインロジックは以下のように簡単なものです。 while (1) { for (i = 500; i <= 512; i = i + 1) { pulse_width = i ; CCPR1L = pulse_width >> 2; // パルス幅上位8bit CCP1CON = ((pulse_width & 0x0003) << 4) | 0x0C; // パルス幅下位2bit         // ここで、CCP1CON<5:4>に'00'以外をセットすると、PWMの動作がおかしくなる __delay_ms(1); } } どうぞよろしくお願いいたします。                           K.A. --------------------------------------------- /* * File: 周波数一定、ディューティー比連続変化 * Author: K.A. * * Created on 2014/07/20 * */ #include <stdio.h> #include <stdlib.h> #include <xc.h> #pragma config FOSC=INTOSC, WDTE=OFF, PWRTE=ON, BOREN=ON, MCLRE=OFF #define _XTAL_FREQ 8000000 // クロック8MHz #define __delay_ms(x) _delay((unsigned long)((x)*(_XTAL_FREQ/4000.0))) int main(int argc, char** argv) { OSCCON = 0b01110010; // 内部クロックは8MHz ANSELA = 0b00000000; // すべてをデジタルI/Oに割当 TRISA = 0b00001000; // すべてのピンは出力に割当てる(RA3は入力専用) PORTA = 0b00000000; // 出力ピンの初期化(全て'0'にする) RA5 = 0; // 動作確認用LED /* PWM */ TRISA2 = 1; // RA2 出力をサスペンド TMR2IF = 0; // TMR2 フラグをクリア CCP1SEL = 0b0; // CCP1/P1Aの機能をRA2に割り当てる CCP1CON = 0x0C; // PWM モード // Period を 設定する xx ms=((PR2)+1)*4*125ns(8MHz)* PreScaler(x1-x64) PR2 = 127; // 0.064ms (プリスケーラが x1 の場合) T2CKPS0 = 0b0; // プリスケーラ 00:x1, 01:x4, 10:x16, 11:x64 T2CKPS1 = 0b0; // CCPR1L = 0; // パルス幅上位8bit CCP1CON = ((0 & 0x0003) << 4) | 0x0C; // パルス幅下位2bit TMR2ON = 1; // TMR2 カウント開始 while (TMR2IF == 0) { /** / do nothing /**/ } TRISA2 = 0; // RA2に出力を接続 unsigned int pulse_width; int i; while (1) { // パターン1 : デューティー比を変化させていく // 今回の設定は、PR2=127 なので、最大パルス幅は 511 ((PR2+1)*4) // 問題点1: デューティー比100%近く(508/512)でPWM出力が突然 50%に変わる。 // 問題点2: デューティー比100%以上(512/512以上)を設定するとPWMは100%('H'のまま)となる。 // その後デューティ比を下げてもPWMの出力は'H'のままで、PWMの出力が出ない。 // 問題点3: パルス幅の設定で、CCP1CON<5:4>に'00'以外をセットすると、PWMの動作がおかしくなる(出力が'H'のまま) for (i = 500; i <= 512; i = i + 1) { pulse_width = i ; // Pulse width を 設定する PW=(CCPR1L:CCP1CON<5:4>)*125ns(8MHz)*PreScaler(x1-x64) CCPR1L = pulse_width >> 2; CCP1CON = ((pulse_width & 0x0003) << 4) | 0x0C; // CCP1CON<5:4>に'00'以外をセットすると、PWMの動作がおかしくなる // printf("PR2= %d, PW= %d, CCPR1L= %x, DCIB= %x \n", PR2, pulse_width, CCPR1L, temp2) ; __delay_ms(1); if (RA5==1) RA5=0; else RA5=1 ; } } return (EXIT_SUCCESS); } ----------------------------------------

  • PWM信号を、エンコーダ信号に変換したいのです。

    ある基板から、DCモータ駆動用のPWM信号が出力されています。 この信号を、エンコーダ信号(PWMに応じて周波数が変化し、位相が90度 ずれた2つのパルス)に変換する回路を検討しております。 (可能な限り、ハードだけで実現したいと考えております) どなたか、知恵を授けてください。 PWM信号はモータ駆動の信号ですので、CW/CCW両方の信号が出てきます。 (+側がPWMの時は、-側はH固定、-側がPWMの時は、+側はH固定) エンコーダ信号パルスは、PWMに応じて、位相が変化する必要があります。 PWMの周波数は約22KHzです。エンコーダ側は最速で6KHz程度が必要です。 よろしくお願いします。