アナログ回路

2023年10月21日 (土)

2つあるワンショットマルチの時定数比を一定にしたい

基本回路的はこんな具合です。
Mm11_20231021110501
ワンショットマルチが二つあって、その時定数を
2連ボリュームで可変します。

この時「t2 > t1」の関係を保ちたいのです。
t2はt1のおよそ1.2倍。
ここで、2連ボリュームの抵抗値精度が問題に
なるのです。

可変範囲を広くするため1MΩのを使おうとして
いるのですが、2連ボリュームの抵抗値、
けっこうバラついています。

「ステレオの音量調整」で使うボリュームのように
「減衰比」だと抵抗値そのものが違っていても
あまり影響はありません。

ところが、こんなタイミング回路では抵抗値そのものが
重要です。
2連のうち、抵抗値の大きい方をt2側で使えば、
「t2 > t1」の関係は維持できそうです。

で、「2連ボリュームを使わずに、2つのモノマルチの
時定数を設定できる方法は?」っと考えてみたところ、
「こんなのもできるかな」というのがこの回路。
Mm12
モノマルチ「HC4538」の時定数はCとRで決まります。
Rの変わりに電流を流し込めば、その電流比で時間が
決まるはず。
2つのモノマルチのCは同じにして、Rtの違う回路で
電流を流し込めば、時定数比を保てるのではと
考えたのです。

電流値が微少になるので、ちょっとやっかいかもしれません。


※ブレッドボードで簡易的に実験
こんな波形が得られました。
まず、C=0.01uF R=100Kでの標準的な駆動の様子。
M001
「C」端子の電圧が指数関数で上昇し、約3.3Vに達すると
Q出力がオフします。
出力パルス幅はおよそ「0.7 x C x R」の式どおりの値に
なっています。

これをオペアンプを使った定電流回路に換えます。
PNP TrではなくP-ch MOS FETを使いました。(2SJ682)
M003
C端子の電圧は直線的に上昇。
同じように3.3V到達でQ出力がオフします。

電流を決める抵抗を1KΩと1.2KΩにして、1.2倍の
時間が得られるか、試してみます。
Ma000
アンプの+端子電圧(5V基準で)は0.1V。
抵抗が1Kですので、0.1mA流していることになります。

「20mV」でR=100KΩと同じパルス幅が出てきました。
R=1MΩで得られるパルス幅(7msくらい)を目指すには、
電圧をもっと小さくしなければなりません。
「mV」となってくるとオペアンプのオフセット電圧が
効いてきます。
  ※あれこれ部品を増やすより2連ボリュームを使う
   ほうが簡単か・・・

小型FET、N-chのは2N7000を買ってあるのですが、
P-chの小さいの、手持ちがありません。

※ブレッドボードを使った実験の様子
Mm22
電源電圧5Vで実験。
電圧を徐々に下げたら1.7Vくらいまでは動作してました。

調整用ボリューム、10mV以下をうまく操作できるように
しなくちゃなりません。
Aカーブでは間に合わないか。

※流し出し型の定電流回路例
2015年07月03日:直流定電流流し出し回路が一定にならない#2

| | コメント (1)

2023年10月14日 (土)

Arduino UNO R3で±19.9V表示電圧計

アナログ回路の実験・調整用に-16V~+16Vの
範囲をポテンショで調整して出力できる回路を
作ってあります。
最大±15Vを入力する回路の動作確認、調整用です。
DC-DCコンバータで±18Vの電源を作って、オペアンプ
を駆動。
その入力電圧を可変して±16V(+ちょっとオーバー)を
出力するような仕掛けになっています。
0Vをまたいで電圧を連続してプラマイできるわけです。

設定電圧の確認はデジタルテスターをつないでという
ふうにしていましたが、「表示器があるほうが便利」
だろうということで、Arduino-UNO R3を使った電圧計を
くっつけてみました。

10bit ADCのAtmega328がベースですので表示は±19.9V
2・1/2桁です。

Ss1_20231014100401
ちゃんとした電圧を見たい時はこれまでと同じように
テスターをつないでということで運用します。
Ss2_20231014100401
±16V発生回路。
Ss4
±9V出力のDC-DCコンバータを2つ使って±18V電源
を得ています。

これに電圧値表示回路をドッキング。
Ss3_20231014100601
電源は外からの5V。

さて、プラマイ電圧の入力回路をどうするか。
Arduino UNOのADC、その入力電圧はプラスだけですが、
 ・2022年11月28日:単電源で反転アンプ マイナスの入力電圧は増幅できます
 ・2015年04月22日:A/Dコンバータの入力レンジを拡大する方法
こんな考え方で、単電源の回路でも±電圧を入力すること
ができます。
以下の図はVrefが2.5VのADCの入力レンジを拡大する方法を
示しています。
Img20150422170532335

この中の、(d)±5V入力 (e)±10V入力の考え方は、
 ・Vin / Vrefの比、基準電圧の何倍の電圧を入力するか
  から、R1とR2の比を決定。 (Vinは正負片側の電圧値で)
 ・Vref2.5Vで10倍の±25Vなら、R1とR2は9:1。
 ・Vin=0Vの時のA/D値を半値にするため、R1とR2の
  並列抵抗値をR3に。
 ・10倍ならR1:R2:R3は90:10:9の比率。

これが抵抗3本で、0~2.5V入力のADCに対して±電圧を
入力する一手法となります。

もう一つの方法が差動アンプです。
S11_20231014101201

(+IN - -IN) × GAIN
として出力が得られるので、
GAINを1/8 (減衰)にして、+INにオフセットとして10Vを
加えておくと、±10Vの範囲を0~2.5Vに変換できます。
  ※ただし、増加減の方向が逆に

Vref電圧(2.5V)を基準に描くと、こんな具合になります。
S12_20231014101401

反転入力がVinで±電圧入力。
非反転入力がオフセット電圧の設定。
Vin=0Vの時のA/D値を、Vrefの半値にします。
非反転入力のオフセット電圧が+になるので、
アンプは単電源で動かせます。

R1とR2で入力電圧の倍率を設定。
通常の差動アンプですとR1=R3、R2=R4にしますが、
±電圧入力回路に限ればこのオフセット電圧は別の
抵抗値で固定してかまいません。

それを考えて描き直すとこのようになります。
S13_20231014101501
R3とR4の比で固定的なオフセット電圧を得ます。

ATmega328の内蔵基準電圧を外に取り出して
使いますのでVref = 1.1V
こんな回路になりました。
Sa1
チップを抜いたArduino UNO R3基板とつないで
スケッチをアップロードします。

Sa2
キャリブレーション(校正)操作は通信で。
  -15.0V、0.0V、+15.0V
この3点のA/D値を記憶(内蔵EEPROMに保存)します。
実電圧とその時のA/D値を使いますので、抵抗の誤差や
Vref値の誤差は校正操作で吸収されてしまいます。

0.0Vを校正点に入れて3点にしたたのは、
  ゼロはゼロと出て欲しいから。
最小値と最大値での2点校正では、ひょっとするとゼロにならない
かもという、リニアリティ特性の懸念があるので。

A/D値から電圧値への計算はあのmap関数を使います。
  ※map関数はこう使って欲しいゾの例です。

制御スケッチ
   ・ダウンロード - pm20volt1.txt

※.inoではなくファイルタイプを.txtにしています。
 UTF8nのテキストファイルです。

7seg LEDをダイナミックスキャンして電流値を表示し
ているこれらのサンプルも参考にしてください。
2022年11月29日:Arduino UNO(のチップ)を使ったUSB電流計
2022年12月 2日:Arduino UNOを使ったUSB電流計 箱に入れて完成
2022年12月14日:Arduino UNOを使ったUSB電流計 4桁表示も

キャリブレーションの方法はこれらとスケッチを参照してください。

※入力レンジに切り替えについてはこれも
2014年02月01日:入力レンジ切り替え回路

※例のmap関数
2020年5月16日:Arduino 10bit A/D値をmap関数でスケーリングする例
2020年5月17日:Arduino なんとかして誤用を正したい:A/Dの1/1023とmap関数
2022年11月6日:Arduino map関数をfloatに

※点滅表示
A&D社の「AD-8724D」という電源、「0~30V・2.5A出力」の
シリーズレギュレータです。
これの電圧表示も「xx.xV」と3桁。

今回の回路でのマイナス側の表示、3桁目が
「-」だけかあるいは「-1」になります。
このためマイナス側の最大(最小というべきか)を
-19.9V」と制限(ソフト的に)しています。

プラス側は「19.9」ではなく「99.9」を
リミットにしてますんで、分圧抵抗を変えた場合でも
-19.9~99.9」の範囲なら表示は可能です。

そして、マイナス、プラスともリミットを越えた時は
表示を点滅するようにしています。
そしてもう一つ点滅する条件がA/D値の範囲。
電圧値に変換する前の値として有効範囲を
チェックしています。
10bitですので0~1023が出てくる値になります。
しかし、5以下と1018以上は、リニアリティが疑問とい
うことで、表示を点滅するようにしてあります。

※Aref端子から内部Vrefを引き出す
2013年04月25日:AVRマイコンのAREFピン
2013年05月02日:AVRマイコンのAREFピン #2
2022年10月05日:サーミスタ103JTで計った温度をシリアル出力

| | コメント (0)

2023年9月21日 (木)

オペアンプを使ったモータ速度コントローラ

リニアテクノロジのデータブックをパラパラめくり
していたら「LT1013/1014」のページでこんな回路を発見。

Lt1013
5V電源で直流モータをPWMで速度制御。
  ※これでうまいこと行くの?
   というところはありますが、
   いかがでしょうか?

・モータに直結してる4016のスイッチが
 ちょっと怖い。
・2つのダイオードとNPN Tr Q2が魔法っぽい。

※コメント先
ラジオペンチblog:ミニグラインダー(DCブラシモーター)の速度制御コントローラー


| | コメント (0)

オペアンプの非反転・反転入力間に入れる抵抗

このブログ記事が発端。
  ・2023年2月10日:トラ技記事 オペアンプの出力段保護回路で

Tt1_20230210084401

(b)図のR2、オペアンプを使った非反転アンプで、
非反転入力と反転入力端子の間に抵抗が入っています。
この抵抗はなに?」という疑問でした。

先日、オペアンプのデータシートをなにげなく見ていて
似たような抵抗接続を見つけました。
  ※AD817だからアナデバのデータシート
高速A/Dコンバータの前置アンプとして、
非反転+反転アンプを使った差動バッファ回路
が使われています。
ここに似たような抵抗があったのです。

817

入力信号を正負にして平衡出力(差動出力)するのは
こんな回路。
  ※仕事なら平衡変換用の専用アンプを
   使うでしょうけれど。
881
882
直流的には非反転入力と反転入力間の電位差はゼロ。
抵抗が入っても直流的な動作は同じ・・・はず。

AD817回路例の非反転アンプの抵抗、2つのアンプの
特性のバランスをとるためかしら。

オペアンプのオフセット電圧変動調査回路に使われている
のは見ます。
こんな例。
883
帰還抵抗に比べて+/-端子間の抵抗値が小さいので、
オフセット電圧が大きく増幅されて出てきます。

もう一つこんな回路も。
抵抗マルチプライヤ」と名付けられています。
1012
R2とR3の比でR1の値が大きくなる(R1に流れる電流が
小さくなる)という仕掛け。

R3=0(R1とR2の片側がGND)なら普通の非反転アンプ。

R3を大きくしていくとR1に流れる電流が減少して
見かけ上R1の抵抗値が増大したのと同じ。

さらに、R2をゼロにするとどうなる・・・
R1に電流が流れないので無限大。

はてさて。

 

| | コメント (0)