« 2024年9月 | トップページ | 2024年11月 »

2024年10月

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)

「上町断層」、新しい情報がないなぁ

南海トラフ地震」、どんなパターンになるかは
わかりませんが絶対に来ます。
で、大阪に住んでいて気になるのが「上町断層」。
新しい話がないかと調べてみても、なかなか出て
きません。
ざっくり検索して出てきたのがこんなところ。

上町断層帯の最新活動と河内平野の地形環境変化(杉戸 信彦, 近藤 久雄)

大阪で想定される大振幅地震動:入倉孝次郎
    (2018年の大阪府北部地震について言及)

上町断層帯の長期評価について
   平成16年(2004年)3月10日
   地震調査研究推進本部 地震調査委員会

Bulletin of JAEE No.25 Jun.2015
   p.13 上町断層帯に関する新たな知見とそれに基づく地震動予測

近畿の大都市圏直下に潜む活断層と強震動予測 2015年10月1日

大阪平野の地下構造 :物理探査データに基づく全体像と今後の課題
   大阪公立大学 2017-04-26
   https://omu.repo.nii.ac.jp/records/818

災害ゴミ:1南海トラフ巨大地震・上町断層帯地震を例としたケーススタディーの実施 平成30年
  悩ましいゴミ処分のお話。


| | コメント (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月25日 (金)

FDKの長寿命電池「HR-AAULT」(1000mAh) 3600cyc目

FDKの長寿命電池「HR-AAULT」(1000mAh)の充放電実験を
始めたのが2022年9月24日
2年ちょい経って3600サイクルの充放電を終えました。

この電池のお話をトランジスタ技術に載せてもらった
のが2024年6月号

Bb1_20241025093401

Bb2_20241025093401

この記事の原稿提出時、充放電回数は2400サイクルまで
進んでいました。
まだ劣化が見られない!』っと報告しています。

過去の実験で長寿命だったのは、
 ・2023年11月20日:タミヤ★★ミニ四駆用充電池「NEO CHAMP」950mAh 4400サイクルで終了
 ・2023年12月1日:放置していた2014年製「eneloop lite」の充放電実験、4000cycで終了
この二つですが、3600cycまで進むと放電容量はずいぶん
落ちています。

HR-AAULT、3600cycのデータはこんなのです。
Cap086_20241025093901

内部抵抗は「12mΩ」で、初期状態と変わりません。

※2400cyc~2800cycの間、電池ホルダとの
 接触が悪かったようで、変動した値が記録
 されています。
 400cycごとのデータ取得の時、電池を取り外して
 内部抵抗を計っています。
 その後の装着が悪かったのかと推測しています。
 取り外した後、IPAで電池電極とホルダ電極を
 清掃しているのですが、何かスカタンをしてし
 まったようです。

※記事投稿時の裏話
 トラ技編集部さんからFDKさんへ、読者プレゼントと
 として「この電池のサンプルが欲しい」っとお願いされた
 んですが「ダメ!」っとなってしまったとのこと。
   (組み電池用ということもあったのでしょうけど)

グラフで比較
・タミヤ NEO CHAMP
Cap040_20231120091601
・eneloop lite
Cap059_20231201103301

 

| | コメント (1)

2024年10月24日 (木)

トラ技11月号 異端の記述:『オペアンプ』

トランジスタ技術2024年11月号 の特集は
カンタンで便利! 高性能OPアンプ革命
で、ちょいと新しいオペアンプが紹介されています。
  新しいオペアンプ、高性能なのはエエんですが、
  最高電源電圧が低いのがイヤ。

その特集で、「用語」にこだわられた著者さん
がおられました!
OPアンプ」というトラ技の方言はイヤということで、
  イントロダクション2
    進化を続けるオペアンプの技術
      細田 隆之
と、この記事でだけ「オペアンプ」という記述が使われています。

T01

T21_20241024155601

  ※「OPアンプ」という用語についてX(twitter)であれこれ
   書かれていました。 (@lyuka_jpさんを検索)

トラ技の目次を検索しますと、

演算増幅器 この5つ

1969,2,リニアICの使い方,演算増幅器を例とした,特集,75,4,木下英美
1969,9,演算増幅器(オペレーション・アンプ)のアマチュア的用法,高級アンプを構成する,特集,95,5,伝田精一
1970,5,ステレオ・プリアンプの製作,高密度実装演算増幅器による,特集,101,11,村井貞夫
1971,4,演算増幅器入門(1),直感的に理解できる,連載,155,11,芦谷正博
1971,5,演算増幅器入門(2),直感的に理解できる,連載,241,10,芦谷正博

オペアンプ この4つ

1970,2,オペアンプをオーディオに活用する,アマチュア的な最も上手な使用法,特集,72,6,田川清春
1970,2,IC化プリアンプの製作,NEC μPC51オペアンプを利用した,特集,111,10,小倉徹
1970,11,オペアンプ使用全段直結オCL純コン・プリ・メインアンプ(カラー),,グラビア,34,2,
1970,11,全段直結OCL純コン・プリ・メインアンプの製作,オペアンプICと2SA627、2SD188を採用,特集,116,8,村井貞夫

OPアンプ 1971年2月号が初出

1971,2,OPアンプ活用専科,,特集名,77,1,
1971,2,OPアンプの基礎,これだけ知っていれば自由自在,特集,78,15,加藤大典
1971,2,OPアンプの規格と応用,TA7502M(汎用型709),特集,93,8,伊藤征夫
1971,2,OPアンプ応用回路選,DCアンプからマルチバイブレータまで,特集,101,20,加藤大典
1971,2,主なOPアンプの規格表,,特集,121,8,編集部
1971,4,OPアンプの応用と使い方のキー・ポイント,バーブラウンOPアンプを中心とした,一般,198,7,熊川良彦
1971,11,OPアンプの使い方,,特集名,83,1,
   :
   :
 以後、「OPアンプ」に。

細田隆之さん、この記事も書かれています。
 ・トランジスタ技術2014年3月号「私の部品箱」
   『小回りが利くマルチユースな
     6ピン・ロジック 74LVC1G97』

ここ↓で紹介しています。
 ・2023年9月11日:マルチファンクション・ゲート 1G57,58,97,98

11月号には私の記事も。
モータ/パルスの周波数変化丸見え!
  F-Vコンバータ回路の製作
  便利ツールで加速・減速や疎密の波形観察!
としてトラ技Jr.コーナに載ってます。

T12_20241024155701

 

| | コメント (4)

2024年10月21日 (月)

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

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

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

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

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

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

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

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

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

| | コメント (3)

2024年10月17日 (木)

御幸森神社宮司さんより緊急呼び出し

15日(秋祭り宵宮)の夕刻(私はまだ仕事中)、神社の宮司さん
より携帯電話着信。
 『社務所の前の提灯を点そうとしたらブレーカーが落ちる』
っという緊急事態。
 『昨日は大丈夫やった』
 『いつも頼んでる電気屋さんは出張中で明日になる』
 『下間はん、なんとかナラんか~』
っと。
工具や材料を持って自転車で駆けつけました。
・状況:
  40Wの白熱電球を使った提灯が10灯。
  並列で400W。
  電源は100Vのコンセントから。
  提灯の端から端まで4mくらい。
  社務所を照らすための提灯で、
  消えてると具合が悪い・・・秋祭りなんで。
  コンセントのプラグのところで見たら
  ほぼ短絡状態。
  反対側(先っぽ)に、増設用のE26電球ソケットが
  付いていたんで、そこで計っても短絡状態。
・どこが短絡してるのか見極める必要あり。
   電線(1.6mm単線 VA線の中味 白黒)を伸ばして、
   途中から提灯用の電球ソケットにつなぐ電線を
   分岐している。
・まず、10灯の真ん中(5灯と5灯)でVA線を切断して
 左右の抵抗値をチェック。
 コンセントに近い方で短絡していることが確定。
   ※消灯している白熱電球って、抵抗値がむちゃ低い。
    それがパラになってるんでなおさら。
    抵抗の最低レンジが「x10」のアナログテスター
    では違いがよく分からない。 脚立の上だし。
    デジタルテスター必須。
    テスター棒を当てるだけでは不安定。
    安定して電線をはさめるクリップも必要。
・さらに5灯の、3灯・2灯のところで電線を切断。
 2灯側で短絡しているのが確定。
・白黒線からの分岐を調べると(暗いんでヘッドランプが
 頼り。 こんなとき、固定焦点化した近眼がつらい)
 ビニールテープで絶縁したところがむけて電球への
 銅線が露出しているいるのを発見。
 それも白黒の2箇所とも。
・その分岐電線が提灯をつるしているヒートンをはさんで
 しっかり接触。 これが短絡原因。
・この部分の分岐電線、提灯のつるし枠とともにヒートンを
 くぐっていた。
 提灯の位置を揃えるとき、電線を引っ張ったことで
 絶縁してたテープがヒートンに引っかかってズレ、
 電球への分岐部電線が露出したのだろうと推測。
・むき出し電線をテープで補修。
 他の提灯の分岐部も目視チェック。
 切ったところを圧着して仮復旧。
 クランプメータで電流チェック。

とりあえず、点灯することができました。
『秋祭りが終わって落ち着いたら、電球をLED変えて
 この提灯列の配線を新しますわ』とのこと。
  提灯は新しくしてるけど、配線は
  何年経ったか分からんくらい昔から
  使っていると。


 ・パナソニック WW2410
 ・エルパ ゴムプロソケット B-661NH
を使う案件かなぁ。
※参考になるか
提灯で使う電線コードの作り方
青山電陶 66ソケット(ロクロクソケット)


※質問!
今回の短絡事故のような場合、電気配線のプロは
どんな手順で短絡箇所を見つけるのでしょうか?

普通の電線だったので
  切ってチェック → 修理 → つないで復旧
ができました。
場合によっては「切って・つないで」ができないことも
あるでしょう。
どんなテクニックを使われるのか?

  LANなど多芯ケーブル、同軸や光ケーブルだと・・・
   やっかいでしょうなぁ。

おもちゃ病院では、
  配線がじゃまなら、外して修理を。
  元の電線が短けりゃ長くしてもOK。
っと、言ってます。
もちろん、配線の状態を記録してからの
話ですが、ドクターのみなさん、ハンダ付けを
怖がることが多いので。

| | コメント (6)

2024年10月13日 (日)

1/nカウント方式とDDS方式の2相パルス発生回路

Arduino UNO R3を使った2相パルス発生回路
 ・1/nカウント方式:タイマ1の分周器を制御
 ・DDS方式:クロック80kHzでDDS処理
のスケッチ、バックアップがわりに置いておきます。
   ・ダウンロード - cw_ccw.zip

2つの回路図は同じ。
Arduino UNO R3で試すならこちらを。
Z12_20241013173501

ATmega328Pで手組みするならこんな感じ。

Z13_20241013173601

※関連
2024年10月5日:DDS方式の2相パルス発生回路、周波数スキャン機能を付ける
2024年9月24日:秋月のI2C接続液晶 AQM1602XAを基板に直付け

※1/nカウント方式2相パルス発生回路の概略

・出力周波数範囲  0.1Hz~9990.0Hz
  ロータリ・エンコーダで周波数を設定
  周波数により設定できる最小桁が変化
    0.1~299.9Hz : 0.1Hz単位で設定
    300~ 2999Hz : 1Hz単位で設定
   3000~ 9990Hz : 10Hz単位で設定
・指定した数のパルスを出力する機能を持つ
  1~999999の範囲で指定した数のパルスを出力して停止
・タイマ1のクロック入力周波数÷目的周波数で分周比(16bit整数)を
 計算しているので、周波数が高くなると誤差が出る
・設定周波数に対する実出力周波数の誤差を液晶表示
・1/nで出力周波数を得ているのでジッタは発生しない
・電池電圧低下で警報表示
・スイッチ機能(短押し)
 SW1 設定した数のパルスをCCWで出力
 SW2 パルス出力を停止
 SW3 設定した数のパルスをCWで出力
 SW4 周波数とパルス数の設定入力の切り替え
・スイッチ機能(長押し)
 SW1 CCWでパルスを連続出力
 SW2 設定値をEEPROMに保存
 SW3 CWでパルスを連続出力
 SW4 パルス・カウント・エッジ↓↑の切り替え


※DDS方式2相パルス発生回路の概略

・出力周波数設定範囲  0.10Hz~9999.99Hz
  0.01Hz単位
  入力位置はカーソル移動で
  ロータリ・エンコーダで設定
・DDSの基準クロックは80kHz
・ジッタが発生するが平均すると設定周波数が得られる
・電池電圧低下で警報表示
・画面を切り替えて周波数スイープ機能のパラメータを設定
  周波数の下限,上限
  rise,fall時間
  上限,下限でのwait時間
・スイッチ機能(短押し)
 SW1 パルス出力on/off
 SW2 周波数入力カーソル位置を左へ
 SW3 周波数入力カーソル位置を右へ
 SW4 sweep開始
・スイッチ機能(長押し)
 SW1 設定値をEEPROMに保存
 SW2 CCWでパルスを連続出力
 SW3 CWでパルスを連続出力
 SW4 sweep機能のパラメータ設定


出力パルスを「周波数」で設定できます。
1/nカウントは「整数分の1」ですんで誤差が生じます。
  (液晶に設定値と出力値の誤差を表示)
DDS方式のは0.01Hzを可変できるようにしたんで
ちょい面白いかも。 ただし、ジッタが出ます。

※追記
1/nパルス方式もDDS方式も2相パルスを出しますが、
その1相だけ(単発パルスとして)を使っても便利です。

・1/nパルス方式なら「60Hzのパルスを120発出して停止」。
何て機能、これを備えたツール、なかなかありませんよ。
パルス数の最大が99999発と16bit越え。

・DDS方式のスイープが便利。
59Hz~61Hzを10分かけてup/downという設定も可能。
最小桁が0.01Hzですんで、59.01、59.02、59.03・・・
と周波数が変化します。
一定周期で周波数が振る信号、たまに欲しい時があります。
  ・・・このツールでは方形波ですが


| | コメント (0)

2024年10月11日 (金)

不安定なDCプラグ

実験用電源(低圧小電流CVCC)からいろんな負荷に
つなげるよう、JSTのSMコネクタを電源から出した
リード線の先に付けています。
電源からはメスピンのSMP-02V
負荷側にはオスピンのSMR-02
その先に、基板に挿さるコネクタやらダミー電池
つないでいるのです。

そんな中に、φ2.1のDCプラグを付けた中間コードが
ありました。
Ss1_20241011092801
それが、なんとなく接触不良。
プラグから出ている電線をグニグニすると接触が変わるのです。
以前、トラブル遭遇:3点  スイッチ、プラグ、電線
というのがありましたが、これは中央の
  +側電極部のカシメ
が不安定になっていたのが原因でした。

今回のは外側のマイナス部のようです。
完全に離れるのではないのですが、グニグニで接触状態が変わります。
Ss2_20241011092901
  中央のカシメは大丈夫
マイナスのベロと、プラグの外側、ネジを切った部分をハンダして
とりあえず乗り切ることにしました。
S3_20241011093001
しかし、このハンダでは、使っているうちの断裂が心配。

で、その後・・・
 「そういや、同じようなことがあったなぁ」っと
思い出して中継用ケーブル類を入れた箱を漁ったら、
似たような処置をしたDCプラグが出てきました。
S4_20241011093001
これの場合、樹脂の付属ケーブルカバーは使わず、
透明の熱収縮チューブをかぶせていました。

こんなこともありましたんで。
2021年6月8日:またもやリード線切れ 今度はオシロのプローブ


| | コメント (2)

2024年10月 7日 (月)

東芝インパルス TNH-3LE 950mAh 充放電実験

2024年2月5日:秋月電子で買った単3ニッ水GoldenPower 2100mAh、400サイクル達成できず
これが終わって、試験回路がひとつ空いたので
東芝インパルス TNH-3LE 950mAh」を試していました。
  ※始めたよを報告してなかった・・・
Tt11_20241007090301
現在、1200サイクル目が終わっています。

初回、未充電状態から94サイクル目までの様子。
Cap081_20241007090401

これが1200サイクル目の0.2C放電。
Cap080

内部抵抗、初期が15mΩ。
800cyc後は22mΩ。 1200cyc後は30mΩ。

電池あれこれ

大容量グループのTNH-3A (2400mAh)がひどかったんで。


※SDカード シリアルデータロガーの資料
2020年5月15日:Arduino-UNO + SDカードでシリアルデータロガー 完成形 今度こそ
これで、充放電実験回路が出すシリアルデータを
全部記録しています。
400サイクルで3.5Mバイトほどのテキストになります。

| | コメント (0)

2024年10月 6日 (日)

おっと。map関数の計算桁に注意

Arduinoのmap関数に関して恨みを持っている
がごとくウダウダ言っております。
 ・2020年5月17日:Arduino なんとかして誤用を正したい:A/Dの1/1023とmap関数

トラ技にも載りました。
 ・トランジスタ技術2024年3月号『実はワナだらけ…確実に動かすArduino Uno R3

で、今回の
 ・2024年10月5日:DDS方式の2相パルス発生回路、周波数スキャン機能を付ける

ここで、「おっと危ない」だったのが「map」関数の数値範囲。

周波数sweepでは、
  周波数の値は0.01Hz単位で9999.99Hzが最大。
  BCDで8桁。999999=0xF423F 20bit

  経過時間が10ms単位で600.00秒が最大。
  BCDで5桁。60000=0xEA60 16bit

sweep処理では、こんな値を使います。
  Lo側周波数 1~9999Hz   f1
  Hi側周波数 1~9999Hz   f2
  Rise,fall時間 0.0~600.0秒 t1

sweep周波数の設定は1Hz単位ですが、内部では0.01Hz
単位に直します。
sweep時間も0.1秒を0.01秒にして60000が最大。

そして、「map関数」はこのように定義されています。

long map(long x,         入力
  long in_min, long in_max,  X1,X2 変換元
  long out_min, long out_max) Y1,Y2 変換先
{
 return (x - in_min) * (out_max - out_min) ★1
   /  (in_max - in_min)
   + out_min;
}

sweep処理で経過時間tmからsweep周波数fmを計算するとき、
map関数をこのように使いました。

  fm = map (tm , 0, t1, f1, f2);

このとき、周波数と経過時間が設定の最大値に近づくと、
★1の乗算に失敗するのです。

周波数(20bit)と時間(16bit)を掛け算すると、
値によっては「36bit」の数字が出てきます。

map関数の入力と出力、単独で見るとそれぞれは
32bitの数値範囲に入っていますが、内部計算を考えると
32bitではアウトなのです。

内部は「int64_t」で計算しなくちゃなりません。

 return ((int64_t)(x - in_min) *
     (int64_t)(out_max - out_min))
     / ((int64_t)(in_max - in_min))
     + out_min;

乗算部、除算部をint64_tにキャストして64bitで
計算するようにしました。

LOG sweepではfloatにしたmapも使っています。

float mapf(float x,
  float in_min, float in_max,
  float out_min, float out_max)

2022年11月6日:Arduino map関数をfloatに

もうひとつ。
t1がゼロだとゼロ除算してしまうので、mapに
食わす前に判定して除外しておかなくちゃなりません。
t1がゼロなら fm=f1でリターンてな処理です。

| | コメント (0)

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年10月 1日 (火)

この「テープ」は何という名前?

シールド線の処理に使われていた絶縁粘着テープ。
  ベースの面が縦横の繊維状。幅8mm。

Ss11_20241001155501
Ss12_20241001155501
Ss13

  メーカーはどこ?
  何という商品名?
ご存じでしたら、ご教示ください。

「絶縁テープ」で検索しても品種が多すぎて分からない・・・

| | コメント (3)

« 2024年9月 | トップページ | 2024年11月 »