電子回路工作

2025年4月 9日 (水)

宮内 悠介 著『ラウリ・クースクを探して』

宮内 悠介さんの「ペイル・ブルー・ドット」に続いて、図書館で
借りてきたのが『ラウリ・クースクを探して』

Ra1

人捜しのロードムービー本かと思いきや・・・
主役は「MSX」! (中味は、そうZ80)

ソ連に持ち込まれたMSX(ココム規制で高性能マイコンが
持ち込めなかった)であるYAMAHA KUVT(Ямаха КУВТ)
が主役(・・・もちろん人が主役なんですが)。
MSXにこんな話があるなんて知りませんでした。

この他の小物が「水晶」。
それも発振子としての水晶
こんな会話が。
  「もっとも、いまは水晶発振器もMEMS
   置き換わりつつあるがな」
  「水晶がなくなっていくのか。それは寂しいな」

そして、Z80がらみでは、
  КУВТは乗算ができず、やろうとしても時間がかかる。
  これがプログラマたちの頭痛の種で、皆、それぞれに工夫した
  自前の乗算ルーチンを持っていた。
  ラウリが実装したのは「本当に速い」乗算であった。
  簡単に言うと、
     ab = ((a+b)^2 - (a-b)^2)/4
  であること利用し、あらかじめ二乗の計算結果を持っておく。
  この計算結果のテーブルが、1キロバイトほど。
  このように小さなテーブルを持つだけで、高速な乗算ができる
  というわけだ。

8bit×8bitの乗算をテーブルでとは知りませんでした。
(a+b)あるいは(a-b)ですんで、16bitで出てくる乗算の答えの
テーブル数は255+255の510ワード。
ほんとに「1キロバイトほど」です。

「z80 高速乗算」で検索 するとあれこれ出てきます。


※宮内 悠介さんは、「トランジスタ技術の圧縮」の人!


MSXでの製作物(おもちゃ)で残っているのは「大声コンテスト」。
MSXのROMを抜き去って、アセンブラで書いたプログラムを
ほうりこんでます。

ADC部はこんな回路。
  1999年と日付が入ってます。
Msx_koe
せっかくですんでソースファイルも。
   ・ダウンロード - koe2.zip

アセンブラも入れてますんで、コマンドプロンプトから
アセンブル操作ができるかと。

この中で使っている乗除算ルーチンは、普通にシフトで。

まだ現物が動いてます。
年に一度、小学校での「夏のつどい」で。
どっかに写真があったはず。

待機時、小学校の校歌がメロディーとして流れるのですが
中川小学校→大池小学校となって、校歌が変わってし
まいました。


| | コメント (0)

2024年12月26日 (木)

EEPROMを使ったシリアル受信バッファ 512kバイトに増設

 備忘録として。

まだ、まとめの途中ですが「シリアルデータ記録装置」の
メモリーを512kバイトに拡張する作業を進めてます。
  ※回路図とスケッチはちょい待って。

Rr11_20241225180101
Rr12_20241225180101
Rr13

2020年3月16日:シリアルデータ記録装置を
2020年3月17日:ICの2段重ねで容量アップ
2020年3月20日:256kBシリアルデータ記録回路とりあえず完成

もともとは128kバイトのEEPROM、24LC1025
これを2段重ねにして256kバイトにして使っていたの
ですが、さらに重ねて「四重」に。
  (二重×2)
そうしたら512kバイトに。

記録するデータはゆっくりと9600BPSで受け
ているのですが、取り込んだデータを吐き出す
時は「早いほうが良いぞ」ということで、
送出を115.2kBPSにスピードアップしたら
どうだという改造(ソフト的な)をしてみたのです。

SDカードへを使ってのシリアルデータの取り込み
だと、データの取り出し速度は取り込み装置とは
別のものとして切り離せます。
しかし、今回のツールでは、自分が持つメモリー
へ書き込んだデータを取り出すには、シリアル通信しか
出口がありません。
ということで、「早よせんかい!」の罵声には通信速度の
アップしか方法がないのです。
で、あれこれ試している途中なのです。

※あれこれ
・書き込みはすでにページ書き込みを実現して
 いるので、取りこぼしはない。
   ターゲット装置との兼ね合いで、受け速度
   は9600BPSのままゆっくりで。
・取り込んだデータの吐き出しを115.2kBPSに
 スピードアップしようとすると、EEPROMの読み
 出し速度が問題に。
 1バイト単位での読み出しだと遅いのだ。
・スピードアップにはページ読み出しでバッファリング
 しながら送出ということになるのだが、Arduinoの
 ライブラリの制限でまとまりは30バイトが最大。
   (書き込みも同じ)
・それでも、1バイト単位での読み出しより早い。

EEPROMのページ書き込み、ページ読み出し手順の
の参考になるかと。

まず、回路図。
Serial_log3
2段重ねの24LC1025(24FC1025)を2ブロック。
これで512kバイトで、24LC1025が使えるアドレス範囲
0x00000~07FFFFを使い切りました。

その制御スケッチ。(元がArduino UNO R3)ですんで)
    ダウンロード - rxbff3a.txt

ファイル名を".ino"から".txt"に変えていますんで、
そのままエディタで読めるはず。

※改良点
・JP1をonすると、取り込んだシリアルデータを出力する
 ときの通信速度を115.2kBPSにして、12倍にスピードアップ。
   データ取り込み時の速度は9600BPSのまま。

・EEPROMのアクセス、ライブラリ(twi wire)を使わず、
 オリジナルのルーチンに。
   割り込みでの処理がないのですっきり。

・EEPROMをページアクセスするためのバッファも
 その大きさを自由にできちゃう。
   元のは30バイトまでという制限があった。

※参考にしてもらいたいところ

・EEPROMの書き込み、多くのサンプルプログラムが
   書いて → 待つ(時間で5msあるいは「ACKポーリング」で)
 をしています。
   これだと、書いた後は、何もできないのでもったいない。
 時間待ちは変わりませんが、
   待って → 書く、あるいは読む
 にしています。
 書き込みの完了でタイマーをセット。
   割り込みでダウンカウント。
 次に読み書きする時はそのタイムアップをチェックします。
 書き込み後、すぐ別の処理ができますんで、時間待ちの
 無駄が無くせます。
   今回のだとシリアルデータの受信処理を
   この5ms間も継続実行してます。

・ページをまたいだEEPROMの読み書きも、見てもらい
 ところです。
 多くのサンプルプログラムが、ページの境界を知らん
 ふりしています。
 24LC1025(24FC1025)の場合、ページは128バイト。
 連続していれば、1アクションで書き込み出来ます。
 しかし、書き込みバイト数に対して、アドレスが128バイトの
 境界で分断してしまうと、先と後の2回に分けて書き込み
 しなくてはなりません。
 例えば・・・
   先頭アドレス0x01234から100バイト(0x64)書きたい。
   アドレス0x01280がページの境界。
   0x01234~0x0127F と0x01280~0x1297の2回に
   分けて処理しなければならない。

   また、読み出しでは64kバイトごとの境界も関係して
   きます。
   ページ数の128バイトに関係なく連続して読み出しで
   きますが、16bitのアドレスを越えて読み出しすると、
   同じブロックの先頭に戻ってしまいうので、書き込み
   と同じように分割しての処理を考えなければなりません。

 お手軽に大容量メモリーが使えるのですが、
   「こんな処理で応用できるんかいな」
 っというサンプルが目に付いちゃいます。

・ライブラリ、wireとtwiを使わないようにしたら
 すいぶんと使用メモリーが減りました。
  ROMが7094バイトが4710バイトになって2384バイトの減
  RAMが1032バイトが888バイトになって144バイトの減
    (読み書きバッファを68バイト増やしてるのに)

※関連
2021年11月26日:EEPROM、 2kバイトと4kバイトの間には壁がある (24LC16で)
2024年4月12日:I2C液晶のアクセス、割り込みで処理しないようにすると
2021年7月2日:秋月の液晶表示器 ACM0802C-NLW-BBW-IIC、I2Cのプルアップ抵抗
2021年11月27日:EEPROM I2Cのクロックを早くすると・・・



| | コメント (0)

2024年11月14日 (木)

考察:提灯配線短絡箇所の発見方法

2024年10月17日:御幸森神社宮司さんより緊急呼び出し
この提灯配線の短絡事故現場、そのままではテスターを
使えないということで、配線を切ることで短絡箇所を
探しました。
いわゆる「二分法」で解決しました。

こんな様子で提灯がぶら下がっていました。
Ch11
このどこかでショートしているのですが、脚立が必要な
高所ということで、電球を外しての探索ができませんでした。

そこで、提灯をつないでいる電線を切り、その切断部で
見えた銅線の抵抗を計り、ショートしてるのが切った
右側か左側かを判断して、追い込んでいきました。

結局、切ったのは2箇所。
模式的に図を描くとこんな感じ。
Ch13
  ※RL4のところでショートしていました。

その後、なんとか電線を切らずに調べる方法は無い
ものかと思案していましたところ、
  高感度クランプメータ
いわゆる
  リーククランプテスター
  AC漏れ電流テスター
を使うとどうだろうという話が出てきました。

普通のクランプメータは数アンペア~数百アンペア
の交流電流を計るようにできていますが、0.01mA程度の
分解能で微少電流を計れる製品が出ています。
  2万円~4万円くらいで売ってる

本来の電源接続を切ってから、短絡している線路に
別電源として交流電流を流し、各ポイントでの電流を
計ります。

すると、
 ・短絡部より手前は電流が流れる。
 ・短絡している部分より遠い所には電流は流れない。
   (あるいは電流値が小さくなる)
こんな手順で、短絡箇所を捜索できます。

ただし、
 ・クランプメータを挟み込むための単線が
  出ていないとダメ。
 ・配線がループしているとダメ。
という制限があります。

「リーククランプテスター」を買ってみるのも
方法ですが、手持ちの材料で試してみました。

 ・CT:カレントトランスを電線にクランプして
  計れるか。 →増幅したら計れるぞ

 ・クランプせずにCTを電線に接近させるだけでは
  どうだ?  →周波数を上げてみる

 ・VVF電線の外装からはどうだ?

使ったCTはURDのCTL-10-CLS。
巻線比1:3000のもの。
その出力に1kΩの抵抗をつなぎ、100倍の低周波アンプ
で増幅してオシロで観察しました。

  電流はDDS方式2相パルス発生回路 で出力。
  出力に100Ωが入っているのでさらに100Ωを直列に。

こんなつなぎで計ってみました。
負荷は4.7Ωの抵抗を2本。
Ch12
短絡はクリップでおこない、A点とB点の電流波形を比較します。

Cj11

1本線をクランプすれば確実に電流の変化が拾えます。
Cj12

問題は、挟み込めないような配線になっているとき、
CTを近づけるだけで違いが分かるかどうかです。

クランプを開いてCTのコア材を1本線に接近。
Cj13  

VVF線の外装を通してはどうか?
Cj14

それぞれの信号波形です。

・短絡なしの時。
Dd000_20241114100801
Dd001_20241114100801

・短絡すると
Dd002
Dd003

・クランプを開き電線被覆の外から
Dd004
Dd005

こうなるとレベルが下がります。
そこで、周波数を60Hzから2kHzに上げました。
Dd009
Dd010
Dd013

VVF電線の外装からだとちょっと苦しくなりますが、
フィルタなどの助けを借りれば判別できるのでは
ないでしょうか。

めったに起こらないトラブルかもしれませんが、
まぁ、今後の課題です。


| | コメント (13)

2024年11月 8日 (金)

AD620を使った計装アンプ+ノッチフィルタ

2021年8月16日:AD620を使った計装アンプとシミュレーテッド・インダクタを使ったノッチフィルタ
この記事で、「(電源回路を加えた図はまた描きます)」
としていましたが。ほったらかしだったようです。

この回路、ちゃんとケースに入れてあるんですが、
ひさしぶりに使おうと、引っ張り出してきました。
  ※しばらく使ってないツールだと、そのものが
   行方不明になってしまうことも。
   今回、モノは発見できました。

で、ちょっと中味を知りたくて「回路図はどこ?」っと、
何冊もある製作物を綴じたファイルを探しても見つかり
ません。
  ※整理整頓、なにそれ?っという仕事場です。

ブログ記事にあるかと検索しても、出てきたのは↑の記事。

ということで、ここに載せておきます。
Ad61
タカチのプラケースに入れてます。
Ad62
電源は外部から5Vを供給。
±12V出力のDC-DCコンバータで内部電源を
作ってます。

ついでにBSch3Vのファイルも圧縮して。
  ・ダウンロード - ad620b_1.zip


トランジスタ技術2021年11月号
この「私の部品箱〈120〉」にAD620のレポートを載せて
もらっています。


※追記
ゲイン切り替えといや、この回路も。
 ・2024年5月30日:非反転アンプ 3kΩと27kΩの抵抗


| | コメント (1)

2024年10月31日 (木)

ステッピングモータ駆動回路を24Vだけで #2

2024年10月29日:ステッピングモータ駆動回路を24Vだけで
この続きです。
この記事は、
  Pololu DRV8825 Stepper Motor Driver
を使って、モータ用電源の24Vだけで駆動用パルスを
作れたらというお試しのためのVCO回路の説明でした。

DRV8825は、高電圧のモータ用電源から、制御回路用の
電源(3.3V)を作ってくれる機能を持っているのです。

出窓であれこれ使っている
  Pololu A4988 Stepper Motor Driver
はこんな具合に外部から制御用電源を入れなければなりません。
4988_1m

モータ電源以外に制御電源が必要なのです。
内部の接続はこんな具合。
4988_2

しかし、内部で3.3Vを作ってくれるDRV8825の使用例
でも、制御用電源をつないでいます。

8825_1m

そして、内部で作られる3.3Vはモータ電流の調整
だけに使われています。

3.3Vを取り出したら制御電源として使えるのでは
っと思ったのですが、甘くなかった・・・

DRV8825の内部回路はこんな具合。

8825_2
3.3Vを出すには/SLEEP入力をHにしなくちゃならな
いのです。

(1) /SLEEPは1MΩで/RESETは100kΩでIC内部で
  プルダウン。 ということはL。
(2) /SLEEPがLだと3.3V出力は出てこない。
  /SLEEP=Lならドライバ全体がスタンバイ。
(3) 3.3Vを使うには/SLEEPをHにしなくちゃ
  ならない。
(4) そのHはどこから持ってくるの?!

っと、24V単一電源で動かすにはこんな問題が
立ちはだかるのです。
24V電源投入で「ロジックH」を作る必要がある
わけです。
まずは、これをしないとドライバが動いてくれ
ません。

ということで、24Vで動くVCOを作っても、
DRV8825は動いてくれないのです。

ツェナーダイオードを使ってのロジック電圧発生
でもかまいませんが、レギュレータを使って5Vを
作ってしまうほうがてっとり早いかと。

ということで、24Vで動くVCO回路はいらない子に。

VCO、最終的にこんな回路を実験していました。

Vco31

2個入りのオペアンプとコンパレータを一つずつ
使いました。
0.1Vで11Hz、10Vで1.14kHzとエエ感じで
周波数が変化しました。

しかし、ややこしいことするより、PLL VCO IC
「4046」のほうが簡単です。

~~~~~~~~~~~~~~~~~~~~~~~~
※追記:DRV8825の電流調整

AREF、BREFの電圧(ボリュームR1=10kで調整)と
電流検出抵抗R2とR3の抵抗値でモータの駆動電流
(ピーク値)が決まります。
TIのデータシートにはこのような記述があります。
  VREFが2.5Vでフルスケール。 (3.3Vではない)
  Ichop = VREF ÷ (5 X Rs)

PololuのモジュールではRsは0.1Ωなので
ボリュームをmaxにしてると、計算上は
6.6Aということになってしまいます。
2.5Vでも5A。

そして電流設定ボリュームR1がややこしい。
右回し(CW)で電流が減るのです。(逆の感覚)
  A4988はCWで電流増(普通の感覚)。
  ボリュームに分圧抵抗R5も入ってる
  ので電流調整が容易い。
DRV8825だとR1の調整がむちゃくちゃ微妙
なのです。
ちょっと触るだけで大きく電流値が変化して、
思うところに合わし込められません。

出窓で動かしている小型のステップモータだと
40~50mA程度で十分なトルクが得られるので、
モジュールのままのボリュームだとほんとに調整
しづらいのです。

DRV8825を使う時は注意してください。

| | コメント (0)

2024年10月29日 (火)

ステッピングモータ駆動回路を24Vだけで

「出窓」で使っているステッピングモータ駆動回路。
 ・2023年5月4日:出窓:鯉のぼりを振る
 ・2022年5月17日:「壊れたオルゴールの人形」を回せ!
 ・2022年5月8日:「ダイソーの観覧車」を回せ! 回路図
これらは
 ・POLOLU A4988 Stepper Motor Driver Carrier
を使ってステッピングモータを駆動しています。

モータの電源は24V。
出窓前の人感センサ検出オンで、DC24Vが供給されるのです。
その電源を使って回路を起動します。
  常時回しているともったいない。
  振動(音)が出るのはうるさい。

そして、これらの回路では
「回すためのクロック発生回路にDC5Vが必要」
ということで、DC24V入力DC5V出力の非絶縁型ですが、
DC-DCコンバータを回路に乗せてます。
これがちょいともったいない。 ・・・気がする
   秋月で買える安価なものなのですが、
   う~む。

昔々・・・
  24Vを5Vに落とすのにTO92の78L05(100mA)
  三端子レギュレータを使ったら、ちょいとばかし
  発熱がぁ・・・
  自分のバイアス電流だけでも熱くなってしま
  ったのです。
  それでTO-220形状のレギュレータに変えたこ
  とがあります。 ※イヤな記憶
    例えば、ドロップ電圧が19V。
    バイアス電流も含めて20mA消費だと
    それだけで380mW。 1/2.6W。
    定格電力の半分まで行っちゃいます。
今のレギュレータだとバイアス電流も小さく
なっているでしょうから、こんなことはないの
でしょうなぁ。
  ちょっと調べたら、HTC製のが、78L05という名な
  のに「5V出力タイプの供給電圧は20Vまでにしておけ」
  なんて記述が。
そんなこんなで、24V→5VではDCコンを使うように
なりました。

ステップ・モータ・ドライバの駆動用クロックの
発振回路、電源オン時にモータをスロースタート
するのにVCO IC(4046)を使っています。
  最初は低い周波数で起動。
  時間とともにクロック周波数を上げて定速状態に。
というのをこのIC一つでしているのです。
この回路にDC5Vが必要なのです。

これをDC24Vだけでできればええなぁっというのが
今回の実験。

  ※ドライバモジュールにも課題が。
   POLOLU A4988にはモータ電源の他に
   ロジック回路用電源VDDが必要なんです。
   ですから、24V単一で動かそうとすると、
   このモジュールは使えません。
   そこで、モータ電源から内部動作用電源を
   作ってくれる DRV8825 を使おうとしてい
   るのですが、このモジュールにも悩みどころ
   があるのです。
     (追って解説)

まずは、24Vで動くVCO回路を作るのが目標です。
オペアンプを使ったVCO回路は、LM324やLM358の
アプリケーションノートで解説されています。
  ※昔話
   ナショセミのデータシートに回路が掲載され
   ているのですが、古いのだと一段目と二段目
   の出力がつないで書かれていたりして
   初心者イジメの回路になっていました。

A1n
  ICメーカーが提示するサンプル回路、
  信じちゃいますよね。

今どきはこの解説↓でしょうか。
 ・CQ出版 オンライン・サポート・サイト
    CQ connect:電圧制御発振回路の制御電圧と発振周波数
     ※回路をリライト
C1_20241029160201
しかし、これにもイケズがあるのです。
この解説では
  理想的な入出力レール・ツー・レールOPアンプ
を使うと但し書き。
この約束事を破って、上に示した単電源汎用のLM358
やLM324で試すと・・・ありゃ。動かないゾ
っということになっちゃうのです。

関係するのは電源電圧。
電圧がオペアンプが動作し始める最低電圧
2.5V~3.5Vくらいなら発振するのですが、
4Vくらいまで上げると方形波出力がLに張り
付いて発振が止まってしまうのです。

発振中はVaを中心電圧とした三角波が出ます。
しかし、電源電圧を徐々に上げると、デューティが
狂ってきて最終的にVbがLになって止まってしまう
という現象がおこります。

このときの「Lのレベル」。
これが問題で、発振が止まるときはNPN
トランジスタQ1のベースをオンできる
くらいの電圧(GNDに張り付かない)になって
いるのです。

Lを出しているのにQ1がオン。
Vbが0Vから浮いておよそ0.6Vくらいになっちゃう
のが原因です。
電源電圧上がるとコンパレータとして使った
オペアンプの出力電圧が下がりきらないのです。

で、対策。
その1。
  VbがLになる状態でオペアンプが引き込む
  電流を減らせば出力電圧が下がります。
  現在10KのR1をもっと大きくすると
  (ヒステリシス幅が変わる)とちょいましに
  なりますが、24Vでは動きません。
  電圧を上げると、やはり発振停止。

その2。
  Q1のB-E間にRBを入れてVbを分圧。
C2_20241029160701
こうすると、Q1のベースがオンする電圧に
余裕が出て、電圧24VでもQ1がオフできる
ようになって発振してくれます。

ナショセミのコンパレータLM339のアプリケーション
では、こんな回路が示されています。
これだと、トランジスタのオン電圧は関係なくなります。

C3

コンパレータは低速ならオペアンプとしても
使えるぞっというサンプルになるかと。

でも・・・
コンパレータ方式のVCO、昔のデータブックには
こんな初心者イジメの回路例も!

A1m

一段目と二段目の出力が衝突。
このコンパレータの場合、出力がオープンコレクタ
なので、信号が短絡しても過大電流は流れませんが、
正しい動作はしません。

※関連
  ・2017年7月10日:「十字接続は避ける」
  ・2023年6月7日:不安な接続記号「●」
  ・2016年07月01日:回路図、配線の交差と接続
  ・2014年11月15日:回路図での交差信号の描き方

さて・・・
電源電圧を24Vにして発振できたとしても、
モータドライバへの駆動パルスの最大電圧は
5Vで24Vのパルスを5Vに制限する方法を
考えなくてはなりません。

簡単にすますなら、ツェナーダイオードで
クリップかなぁ。

※電源電圧
オペアンプLM358もコンパレータLM393も片電源なら
24Vで使えますが、最大電圧に注意がいります。
サフィックスにより微妙に異なるのです。
メーカでも違います。
データシートのバージョンにより書いてあることが
異なることもあります。
TI製だと、
  LM358、LM393ならmax30V。
  LM358B、LM393Bならmax36V。
   「B」付でオフセット電圧などが改善。
さらに、
  LM393Lとなると、CMOSになって電源電圧
  範囲が1.65~5.5Vに。


※続き
  ・2024年10月31日:ステッピングモータ駆動回路を24Vだけで #2


| | コメント (0)

2024年10月21日 (月)

テープから外した時にひっくり返った面実装部品

基板に面実装部品を手植えする時に
「しゃあないなぁ」っとなるのが
部品のひっくり返り。

テープをはがして部品を取り出すとき、多くが
ひっくり返って落下します。

でも、数値が記入されていないたいていのセラコン
はひっくり返ってもOK。

ところが抵抗になると、ひっくり返ったままでは
ダメで、抵抗体のほう(抵抗値が印刷)を上に向けな
ければなりません。
抵抗を落とし込んだ容器(豆腐容器を薄く切ったのを
愛用)をトントンとすると、うまく正常な向きに
なってくれることもあります。

ところが3本足のトランジスタなどになると
この手が使えません。
トントンしても正しい向きになってくれないのです。

写真はSMT3サイズのデジトラ。
Tt11_20241021151201
テープから15個取り出して、着地に成功したのが5つ。

まず・・・とりあえず正常な向きで(足を下にして)着地した
のをピンセットでつまみあげ、基板にハンダしていきます。

そして、残ったひっくり返り品。
  (足が上になっている)
Tt12_20241021151301
弱粘着剤が付いた付箋を使って貼り付け取ると、
正常な方向に戻ります。
Tt13_20241023164601
 左右の向きはバラバラで定まりませんが、一つ一つを
ひっくり返すより手っ取り早いので、いつの頃からか
この方法を使っています。

| | コメント (3)

2024年10月 5日 (土)

DDS方式の2相パルス発生回路、周波数スキャン機能を付ける

あれこれ悩みながらこしらえてきたDDS方式の2パルス発生回路
ざっと完成形に持ち込めました。
割り込み処理の時間はギリギリで動いていますが、
メインループはヒマ
ということで、周波数スキャン(sweep)機能を付加しました。
設定するのは、
  Lo側周波数 1~9999Hz   f1
  Hi側周波数 1~9999Hz   f2
  Rise時間  0.0~600.0秒  t1
  Fall時間  0.0~600.0秒  t2
  Hi待ち時間 0.0~600.0秒  w1
  Lo待ち時間 0.0~600.0秒  w2

スイープは
 (1) f1周波数で2相パルス出力
 (2) t1時間をかけてf2までパルス周波数を上昇
 (3) f2周波数をw1時間保持
 (4) f2周波数からf1まで周波数を下降
 (5) f1周波数をw2時間保持
 (6) (1)に戻る
を繰り返します。

「100Hz~400Hz」をスイープすると、こんな波形が出てきます。

Bb002_20241005115101
   変化点を拡大
Bb000_20241005115101

一番下の波形は「F-Vコンバータ」 で見た、
A相パルスの周波数変化。

まだ「main loopはヒマ」だからと、LOG SWEEPの処理も
書き加えてみました。
A相周波数がこんな具合に変化します。
Bb001_20241005115401

Arduino UNO R3のATmega328P(16MHzクロック)、
8bitマイコンなのに、意外と浮動小数点処理を頑張って
くれます。
10msごとに経過時間から周波数を計算しています。

※関連
2024年9月24日:秋月のI2C接続液晶 AQM1602XAを基板に直付け
2024年9月27日:1クロックでも速くしたい DDS方式の2相パルス発生器
2024年9月30日:1クロックでも速くしたい 割込を「ISR_NAKED」で

※回路図
Cw_ccw2

元のでは無しにしていたSW4にsweepの操作を割り当てています。


| | コメント (0)

2024年9月 8日 (日)

トラ技2024年10月号に「加熱完了報知回路」

トランジスタ技術2024年10月号の「トラ技Jr.コーナ」に、
我がガレージで愛用しています「加熱完了報知回路」が
  揚げもの上手!
  愛用フライヤに外付け「加熱お知らせブザー」
  AC100 Vの電流変化を検出してブザーでお知らせ
  する回路の製作
として掲載されています。
あえてマイコンを使わずに製作しました。

こんな様子です。
Kk1_20240908162301
Kk2
単4電池2本で動作。
CMOS ICなんで、スタンバイ時の電流は
(ほぼ)ゼロ。
電源スイッチは無しで。
Kk3_20240908162401
通電の検出はカレントトランス。
フライヤが所定の温度になって、サーモスタットが切れた
のを検出してブザーを鳴らします。

そして・・・
  「電源/モータ編」 の
   第15章 ステッピング・モータをお手軽駆動 ULN2003A
Tt10
これは、
 ・2023年4月26日:出窓:鯉のぼりを振れたらというリクエスト
 ・2023年5月4日:出窓:鯉のぼりを振る
が元になっています。

| | コメント (0)

2024年9月 4日 (水)

穴を残しておきたいのでハンダしたくない

とあるプリント基板。
電線を直出しする「穴が」あります。
Hh11_20240904173901

部品を実装して基板を組み立てた後、テストする時、
「穴」をそのままにしておきたいので、ハンダ付けした
くありません。

コンタクト・プローブ を使うしかないか』
   (いわゆるピン治具)
『作るの面倒』と思っていたら、同僚が
「こんなんあるでぇ」っと、秘密兵器ぽいのを
出してきてくれました。
Hh12

「エエ感じにはさめるやん」っと試したのですが、
「あかん。 接触抵抗が大きいし安定せぇへん」
っとなりました。
Hh13
1Ωを越える抵抗が出てしまいます。
  H1・H2間につながる抵抗が問題にな
  る回路なんです。

プローブのピンをもっとちゃんとしたのに換える
という方法もあるんですが、
「部品箱にあるもんでなんかないかなぁ」っと
探しましたら、ミヤマのICクリップ MJ-032 を発掘。

これを使えば、基板端に引っかけてうまいこと固定
できることが分かりました。

Hh14

とりあえずこれを試験に使ってみます。

| | コメント (3)

より以前の記事一覧