« 2023年4月 | トップページ | 2023年6月 »

2023年5月

2023年5月29日 (月)

どこのスイッチだろう

修理案件で困っています。
6本足のスイッチ。
2回路2接点でオルタネート型。
T11_20230529134201
右のは正常。
後のパターン(6穴)から取り外したのが左のスイッチ。
上部と下部が「ポッチリ」で引っかかっているのですが、
それが折れてしまったようで不安定に。
オルタネート動作、ちゃんとロックせずオンを保持して
くれません。

足間ピッチ、上下は2.54mmX2。
左右が3.7mmで、よく見る5.04mm間隔の
オルタネートスイッチとは違って、小型なんです。

T12_20230529134201
カタカナの「ア」じゃなく、何かのロゴマークかしら。
さてこれ、どこのスイッチなんでしょう。

  とりあえず、スイッチをジャンパして
  動かない回路を追いかけます。

Ta11
Ta12

この回路で「これなに?」だったのが「ランプ」。
T13_20230529134201
最初「ヒゲがあるぞ」っと。
よく見たら、「LAMP1」「LAMP2」と部品番号が記さ
れています。
左のが切れてました。
T14_20230529134201

ランプが生きていた別の装置。
こんなふうに光ります。 直列になってました。
0101

| | コメント (6)

ひさしぶりの地域イベント

昨日はひさしぶりの地域イベント。
自作の10秒ゲームツールの出番でした。
 ・ボコスカハンマー
 ・ピコピコスイッチ
 ・シャカシャカホイップ
それぞれ2台が出動。
子ども達など大勢の皆さまにいじめられました。

それぞれの最高点(画面下側のHi表示)を記録しておきます。

 ・ボコスカハンマー : 145点
Cc13_20230529095801

 ・ピコピコスイッチ : 159点
Cc11_20230529095801

 ・シャカシャカホイップ : 155点
Cc12_20230529095801

10秒間で得た衝撃パルスやスイッチの押し下げが
得点ですので、毎秒14発や15発の速度となります。

トラブルもありました。
 ・イベント終了直前、ピコピコスイッチ1台の右側のスイッチ
  が接触不良になってアウトに。
    このスイッチ、押されるというより、おもいっきり
    ドツかれていますんで。
    「やさしく扱って」との申し出は無意味ですんで。
 ・ボコスカハンマーの映像出力用RCAピンジャック(黄色)の
  接触状態が悪化して映像が不安定に。

 
※ボコスカハンマーのRCAピンジャック
修理のため、ジャックをパネルから外そうとすると・・・
黄色の樹脂部で断裂してしまいました。

Cc21_20230529101301
Cc22
組み立ての時、固定ナットをきつく締めすぎていたのか・・・

2系統のビデオ出力を持っている回路だったので、
イベント中はもう一つの方につなぎ直して続行でき
ました。

「マル信無線電機」の「MR-599」というジャックです。
Cc23

日本橋テクノベースの店頭では「MR-565」 シリーズの
ジャックが並んでいますが、これの場合、GNDにつながる
「ベロ」がネジ止め時、いっしょに回ってしまい、もう一つ
使い勝手が良くありません。
Cc24
そこで「MR-599」あるいは「MR-699」なんです。
MR-599とMR-699、微妙に構造が違っていてMR-699の
ほうはGND端子も完全に絶縁できるようになっています。
今回のトラブルはMR-599のほう。
MR-599の固定ナットは9mm。
MR-699は10mm。
パネル加工の穴径も異なります。

Cc25

部品箱にMR-699のストックがあったので交換しました。
Cc26

MR-599は固定ナットにGND端子が接触して、
ケースが金属だとそこで接触。
MR-699は完全に樹脂が覆っていてケースのGNDと
分離できます。

※ピコピコスイッチ
スイッチがアウトになったのかと思ってスイッチボックスを
バラしたら・・・ 接続線の断線でした。
コントローラとのつなぎにLANケーブルを使ったんで、
より線じゃなく単線。
単線をスイッチ端子にハンダした根元で切れてました。
スイッチの振動に負けたようです。

LANケーブルの単線の先により線をハンダして
ちょっと延長。
スイッチ端子にはより線をハンダしておきました。

「ピコピコ・スイッチ」破損
「ピコピコ・スイッチ」操作スイッチ部を新造

| | コメント (0)

2023年5月25日 (木)

初めて買ったArduino UNO・・・今は

Arduino初体験 が2012年12月。 (10年以上前だわ)

その基板の現在がこれ。
 ・どこかから拾ったプラケースをベースに。
 ・16MHzセラミック発振子を水晶発振子に交換。
 ・ブートローダ書き込み済みのATmega328Pと
  通信(スケッチアップロード)するための
  ケーブルを付加。
 ・乗っているチップは何度も交換。

Aa21_20230525110601

ちょっとした実験や試運転で便利なのが
アナログ入力ポートにつなぐ4つのボリューム。
スイッチも2つ付けてます。
こんな回路です。
Aa1_20230525110701

ボリュームのスライダーに0.1uFのコンデンサを
入れておくと安心。

発端はこんな3つのボリューム。
Aa22_20230525110801

+5VとGNDを取れるようにピンヘッダをハンダして
います。

ケチって片面のユニバーサル基板なんで、配線は
ちょっと面倒。

AnalogReadで読んだA/D値(0~1023)を使って
Delay値を設定したり、動作パラメータを変えたりと
リアルタイムでできますんで、なかなか便利です。

使ったボリュームは秋月電子通商のつまみ付半固定抵抗
  (足の1・2・3の順に注意:刻印あり)
  似てるけど3386K-EY5-103TRじゃない!


※応用のためのスケルトン・スケッチ
4つのボリュームと2つのスイッチを入力するための
応用基本スケッチを示しておきます。
 ・ボリューム値の入力は1ms割り込みで処理。
 ・64回平均。
 ・4つあるので256msごとにデータが確定。
 ・勝手にスキャンするのでAnalogReadのように
  100us待たされるということがない。
 ・割込禁止にしなくてもいつでも読めるよう
  VR値は0~255の8bitで。
    ad_avr[ch]を読めばok。

起動すると256msごとに値をシリアル出力します。
  A/D 8bit:VR1,2,3,4 SW1,2
  105 178 123 249 0 0
  105 178 123 255 0 0
   :
  0 64 128 255 0 0
  0 64 128 255 0 0
  0 64 128 255 1 0 SWはオンで1
  0 64 128 255 1 1
  0 64 128 255 0 1
  0 64 128 255 0 0

ダウンロード -  ad_vr4.txt
   .inoではなくUTF8Nのテキストです。


※タイマー割り込みとADC変換完了割り込み

ソースを見てもらえれば、その手順がわかるかと。
さまざまなライブラリ、確かに便利です。
でも、Arduino UNOのATmega328Pマイコン
あたりなら、レジスタの直接操作はそんなに
難しくはありません。
マイコンに備わっているさまざまな機能を引き
出すには、データーシートをにらみながらの
プログラミングをしなければなりません。

| | コメント (0)

2023年5月22日 (月)

容量マルチプライヤ回路

「容量マルチプライヤ回路」を調べてたらこんなのが。
  ・CQ connect:容量を大きくみせるマルチプライヤ回路

リライトした回路図↓
B20_20230522115101

LTspiceの結果として、こんな特性が示されています。
B21_20230522115101
  (上記ページより (図8))

「稲葉保 著 精選アナログ実用回路集」
Cd1_20210816095701

にも同様の回路が出ています。
タイトルが
 可変抵抗器で容量を可変できる容量マルチプライヤ回路

低周波域で「可変容量コンデンサ」つまり「バリコン」を
作れるぞ!という興味ある回路です。
  (ただし片側がGNDになる)

で、ここからが問題提起。
  ※試したわけじゃありません。

コンデンサとしての値を大きくしようとして
アンプA2のゲインを大きくしたら(R2を大きく)
A2が飽和するんとちゃう?

Cを100倍にしようとA2を100倍にしたら、増幅できる
信号振幅の1/100までしかうまく動かない。
±10Vなら±0.1Vまでしか扱えないということに
なるのでは・・・

どなたか、確かめていただければと・・・

昔々・・・
2011年04月21日:60Hzノッチフィルタ回路
FDNR回路を使ったんですが、ここでもアンプ出力の
飽和が悪さをしてました。
  ※シミュレーションじゃなく実回路で試しました。


※追記
「精選アナログ実用回路集」での回路を示しておきます。
Mm11

VR1による倍率設定は「1~11」となっていて、
CQ connectのように欲張っていません。
  (x100、x1000)

| | コメント (9)

2023年5月19日 (金)

「オウムアムアは地球人を見たか?」

「オウムアムアは地球人を見たか?」アヴィ・ローブ著

B61

サブタイトルが「異星文明との遭遇」
「SF」じゃありません。

太陽系外からやってきた「謎の天体」。
これが観測されたのが2017年。
すでに近日点を通過していて、遠ざかる所を
見つけられたという。

「オウムアムア」という名は「遠方からの初めての使者」
という意味のハワイ語だそうな。
  ※見つけたのがマウイ島にある
   望遠鏡だから

「オウムアムア」でググるとあれこれ出てきます。


| | コメント (0)

「オオルリ流星群」、「ミッキー7」

いつものように図書館から。
  ・「オオルリ流星群」 伊与原 新 著

B51

2022年12月2日:伊与原 新著「月まで三キロ」
これは短編集でしたが、「オオルリ流星群」は300頁弱の長編。

話は現代。 でも、1972年10月8日
ジャコビニ流星群」の話なんかが
書かれてて、50年前に戻れます。
  ※ネタバレ:
   主人公の誕生日がこの次の日の9日。
   それで名が「彗子」。
我々の世代、この騒ぎをリアルタイムで追いかけ
ましたから。
  ※山まで行ったぞ!

「ユーミン」ファンなら聴いたことがあるかと。
  ・ジャコビニ彗星の日 松任谷由実

流星電波観測の話も出てきます。

~~~~~~~~~~~~~~~~~~~~~~

もう一冊。 宇宙ものの「SF」です。
B52_20230519092901

「ミッキー7」エドワード・アシュトン 著 大谷真弓 訳

住めそうな惑星を探して人類が宇宙へ出ていく
話なんですが・・・ ひどい。 けど、面白い。
内容は書評を探してください。
わたしの評価は「85点」。
  ※コロニー作りの失敗例、それを主人公が
   読み漁るのがイイ。

| | コメント (0)

2023年5月16日 (火)

液晶表示コントローラ HD44780で迎撃

オリジナルデバイス:なんぎな日記(2023年5月10日)
に、HD44780が乗った液晶表示モジュールが出ていたので、
こちらからも迎撃してみます。

2種類のモジュールを発掘できました。

50_20230516102701
上側、東芝のが1987年4月製のようです。
50a

HD44780、このサフィックスで内蔵しているキャラジェネ
のデータが変わります。
手持ちのHD44780データシート(1997年8月)、これで
示されていたのは「A00 A01 A02」の3種類。

・A00
51_20230516102701
・A01
52_20230516102701  
・A02
53_20230516102701

「A01」と「A02」はずいぶん賑やかに見えます。

CG RAMエリアの8文字、コード0x00~0x07と0x08~0x0F
は同じものがは表示されます。
C言語では、0x00はnullターミネートされる文字列で
使われます。
ですので、0x08~0x0FをCG RAMの文字コードに割り当て
たいところなんですが、「BS」や「HT」「LF」「CR」の
制御コードと被ってしまいますんで、CG RAMを使う時は
ちょっと気遣いが必要です。


※関連
液晶表示モジュールを4ビットモードで使ったときの空きピン処理

※Arduinoに絡めて
Arduinoでの液晶制御、一般には「LiquidCrystal」ライブラリを
使います。
8ビットモードだと、
  LiquidCrystal(rs, E, d0~d7)   :10bit
  LiquidCrystal(rs, rw, E, d0~d7) :11bit
4ビットモードだと
  LiquidCrystal(rs, E, d0~d3)   :6bit
  LiquidCrystal(rs, rw, E, d0~d3) :7bit
と、いちばん接続線数が少ない接続は
「4ビットモード」で「rs」と「E」を使った場合の
6本になります。

もう1ビット増やして「rw」を指定したら、
  「busyチェックしてくれるので早くなるかも
は、期待できません。
LiquidCrystalライブラリはbusyチェックは完全に無視。
delayMicroseconds()」を使った時間待ちでタイミングを
作っています。

さて。。。この時間待ち。
LiquidCrystalライブラリのソース「LiquidCrystal.cpp」を
読みますと、初期化(begin)のところで、
  delayMicroseconds(50000);
と「50ms待ち」をしているところがあります。

しかし、delayMicrosecondsにはこんな制限が・・・
Arduino-UNOでのdelayMicrosecondsの設定は16383までだ!

液晶初期化のdelayMicroseconds(50000)、
 ・ほんとにこれでエエの?
 ・動いてるからエエんとちゃう。
っということしか言えません。

| | コメント (0)

2023年5月12日 (金)

秋月電子で2015年に買ったLMC6482とNJU7062

2015年01月19日に秋月の通販で買っていました。

・2回路入CMOSオペアンプ LMC6482AIN
  価格:¥120 × 数量:5 = 合計:¥600

・2回路入低入力オフセット電圧CMOSオペアンプNJU7062D
  価格:¥70 × 数量:5 = 合計:¥350

オペアンプ、8pin DIPのが少なくなっています。
秋月での「LMC6482」、むちゃ安価でした。

| | コメント (2)

2023年5月 9日 (火)

これをなんと呼ぶ? 私とこでは「ペッタン」

結束バンド」はなんと呼びますか?
  インシュロック か タイラップ か
使われるのはざっとこの3つでしょうか?

で、これ。
H11_20230509113901
私とこでは「ペッタン」と呼んでいます。
  マウントベース
  結束固定ベース
  結束バンド用固定具
など、メーカーによりいろいろのようです。

H12_20230509114001

裏返すと「3M」のマークが出てきましたが、
これはくっつけている両面テープのメーカー名
(信頼の3Mてなところか)のようです。

「ペッタン」、結束バンドを固定するのが目的ですが、
こんな使い方も。

まず、中心にドリルで穴を開けて、タッピングビスが
入るようにしておきます。
H15

これを4つ作って基板用固定小物とします。

H16
ペッタンを4つとも基板にネジ止めしてから剥離紙を
はがします。
固定先への貼付はそれから。
ペッタンを先にケース側に貼り付けようと
すると・・・
うまく位置出しができませんのでご注意を。

出窓:鯉のぼりを振る の基板固定で利用
しています。
K22

「タカチ」から基板を固定するための「貼付小物」
が出ています。
 ・ASR型貼付ボス 5.1mm
   10個入 / ASR-5
    https://eleshop.jp/shop/g/gE7U412/
 ・ナット入り貼付スペーサー
   ASTシリーズ 6mm / AST3-6B
    https://eleshop.jp/shop/g/gL2Q127/

タッピングビス、あるいは通常のビスで基板を
固定するための小物です。


※追記
件のペッタン(左の方)、配線材料をストックしている箱を
見たら・・・ちゃんと「3M」の製品でした。
  品名:結束バンド用固定具 MT-20EX
     超強力粘着多用途テープ付
H21
  ※廃番みたい・・・

| | コメント (4)

2023年5月 8日 (月)

「漆谷正義」さんとむちゃ接近遭遇していた

2023年5月6日:オペアンプ NJU7062の駆動能力を見る
の記事の中で紹介した「NJU7062」の応用例、
トランジスタ技術2023年6月号
「どっち向きもOK!USB Type-C電圧・電流モニタ」
の著者「漆谷正義」さんをトラ技の目次で検索すると、
私とえらいまぁ接近遭遇しているのが判明しました。

#1 2005年10月
2相パルス発生器,My tools!〈第6回〉,連載,292,1,下間 憲行
ステッピング・モータを使った風力発電機の製作,自然エネルギーの活用にチャレンジ〈第3回〉より大きな電力を取り出すためのTRY,連載,203,6,漆谷 正義

#2 2005年1月
やってはいけない! アナログ回路設計,知らないといつまでたっても性能が出せない,特集,147,17,漆谷 正義/下間 憲行/木島 久男/小宮 浩/鈴木 憲次/浜田 智/国分 太郎

#3 2005年6月
同じ型名なのに内部回路が違う!?,失敗は成功の母〈第3回〉,連載,264,2,下間 憲行
電子回路の性能は配線で決まる,本誌4月号の付録マイコン基板で実験!,特集,108,4,漆谷 正義

#4 2005年9月
ON/OFF機能付きの1~2A出力定電流回路,トラ技サーキット・ライブラリ〈第9回〉,連載,268,4,下間 憲行
充電コントローラの製作,自然エネルギーの活用にチャレンジ〈第2回〉発電機からのエネルギーをフル活用する,製作,199,6,漆谷 正義

#5 2006年月
低抵抗値測定用アダプタ,My tools!〈第10回〉,連載,276,1,下間 憲行
ペルトン水車で水道から電気を作る,自然エネルギーの活用にチャレンジ〈第7回〉 水回りの照明や水位警報器に使える,連載,189,6,漆谷 正義

#6 2007年10月
調光機能付きLEDドライバの製作,AC100Vで白色LED20個を点灯,特集,143,4,下間 憲行
ハイ・パワー/高輝度LED駆動ICの一例,Appendix,特集,147,2,漆谷 正義

#7 2007年5月
部品の摩り替えでトラブル,失敗は成功の母〈第23回〉,連載,274,2,下間 憲行
評価と測定のコモンセンス,開発した回路の性能や機能を正しく評価する,特集,175,10,漆谷 正義

#8 2007年8月
きもだめし用怪音&怪光発生装置の製作,サマー・キャンプに最適!,一般,218,5,下間 憲行
簡易カラー・メータの製作,外付け回路不要のカラー・センサ・モジュールを使った,一般,206,6,漆谷 正義

#9 2010年12月
発電/蓄電/節電/照明デバイスほか,発電デバイスのエネルギの大きさからバッテリの蓄電容量まで,特集,122,18,石井 聡/漆谷 正義/篠塚 政彦/下間 憲行/鈴木 正太郎/堀米 毅/宮崎 仁

#10 2010年2月
研究!ニッケル水素電池の耐久テスト,Appendix1 繰り返し回数が多く放電時間が長いほどダメになる,特集,89,5,下間 憲行
真冬に2日で発芽!LED照明を使った育苗器,エコ時代の自然エネルギ活用日記〈第1回〉,短期連載,163,6,漆谷 正義

#11 2010年6月
バッテリの破壊を防ぐ過放電防止回路,専用電源の追加が不要でシンプル,一般,222,2,下間 憲行
LEDメッセージ・パネル付き水車発電機,エコ時代の自然エネルギ活用日記〈第5回〉,短期連載,185,6,漆谷 正義

#12 2010年7月
ハンディ方形波発生器の製作,くるくる回して楽ちん設定!,一般,193,3,下間 憲行
電源投入と基本動作OK/NGのチェック,評価検討前に確認が必要な測定ポイントと検査項目,特集,116,7,漆谷 正義

#13 2012年3月
第6実験ベンチ 特性変化を自動測定!リピート・テスト・アシスタント,ON/OFFと測定をひたすら繰り返してくれる,特集,102,8,下間 憲行
明るさ検出器の製作実験,撮影感覚でお手軽測定! 輝度分布も取れちゃう,特集,81,6,漆谷 正義

そして、最新号でも接近遭遇していますんで、
発見できただけで14冊。

| | コメント (0)

2023年5月 6日 (土)

オペアンプ NJU7062の駆動能力を見る

2023年4月26日:出窓:鯉のぼりを振れたらというリクエスト
ここでの、小型サーボを使っての駆動実験は失敗。
この波形発生(sin波)に使ったのが
   日清紡マイクロデバイスのNJU7062
秋月扱いで80円。
3~16V電源で低オフセットだし、あれこれ工作に使えるか
と思ったのですが、思わぬ落とし穴が報告されています。
  ・オペアンプNJU7062を使うのは難しい:釣り師のつれづれ日記

なにがアウトなのか・・・出力電流が取れないのです。
  ・アンプを構成したとき、帰還抵抗の値を小さく
   できない。
  ・負荷抵抗が小さいと欲しい出力電圧が出てこない。
と、出力の駆動能力が弱いと、何かと制限が出てきます。

それを確かめてみました。 検証に使った回路は
  ・単電源オペアンプの入出力特性を調べる
    ※この時は「無負荷」でしか調べていません。

そこで、今回は
  LMC6482  ・・・ 秋月での扱い停止
  MCP6022  ・・・ 低オフセット品
  そしてNJU7062
この3つのオペアンプの出力に
 ・GND側に負荷抵抗を入れる。
 ・電源(+5V)側に負荷抵抗を入れる。(プルアップ)
と、負荷抵抗をつないだ時の挙動を調べてみました。

まずはLMC6482MCP6022
   (クリックで拡大↓)
P1_20230506105501
両方とも安心して使えるレベルです。
  ※オフセット電圧が小さいので、黄色線:入力と
   緑色線:出力がほとんど重なっています。

そしてNJU7062
P2_20230506105601

GND側に入れた負荷抵抗、抵抗値が小さくなると
出力レベルがずずずずっと下がってしまい、
  「こりゃあかんわ
状態に。
  33kΩはなんとか。
  10kΩになるともうあかん。
  ※抵抗をプルアップするように入れた時、
   つまりLに引っ張るほうはまだましですが。

NJU7062を使う時は、この特性に注意が必要です。


※追記
11倍の非反転アンプを組んで、帰還抵抗の値を
変えて出力の様子を比較してみました。
Z1
A1は10k・100kで。 A2は1k・10kで11倍増幅。
試したのはLMC6482LM358、そしてNJU7062

こんな結果です。
Amp_11a

LMC6482は頑張ってフルスイング。
LM358は、1k・10kでも10k・100kでも
およそ3.7Vで頭打ちに。
NJU7062は1k・10kだと、2.2Vくらいで
飽和しちゃいます。


※さらに追記
  ・トランジスタ技術2023年6月号
10日発売ですが、年間購読している人には
ゴールデンウィーク中に届いているかと。

今号の特集「作る!わかる!USB Type-C&電源
この第2章に
 「どっち向きもOK!USB Type-C電圧・電流モニタ」
という製作記事があります。
この中でNJU7062にが使われていました。

ハイサイド側に入れた電流検出抵抗(0.1Ω)の
電圧ドロップをNJU7062を使った差動アンプ
で10倍増幅して1Aで1Vを得ようという目論見です。

こんな回路。
Za2

差動アンプを構成する4本の抵抗は「1k・10k」の
組み合わせです。
  「ちょっと重いんじゃないか?」
と、「10k・100k」のと比較してみました。

オペアンプの電源は非反転入力側電圧と同じ
になるので、反転入力側の電圧をちょっとだけ
下降させます。

Za1  
電流が流れるか流れないかの、出力「0V」付近
が問題になるので拡大して観察します。

Za3

1k・10kの抵抗だと30mVほどの残留電圧が見えます。
10k・100kだとそれが2mVほどに。
30mVということは測定電流値は約30mA。
基準電圧5Vで10bit分解能のArduino UNOでの
測定ということですので、30mVは6/1024。
0.6%ほどの不感帯が生じることになります。


  ※このトラ技には私の記事も。
   トラ技Jr.コーナ
    回路の通電確認に便利な0.1mA精度
   USB接続電流計の製作
    ※タイトルにUSBという文字が
     入っちゃいましたが、USBとは
     直接の関係はありません。

 

| | コメント (3)

2023年5月 4日 (木)

出窓:鯉のぼりを振る

「鯉のぼり」、振れました。

※関連
2023年4月26日:出窓:鯉のぼりを振れたらというリクエスト
   ↑
  これがスタートで失敗案件
2022年5月17日:「壊れたオルゴールの人形」を回せ!
2022年5月4日:緊急指令! 「ダイソーの観覧車」を回せ!
2022年5月8日:「ダイソーの観覧車」を回せ! 回路図

Kk11

説明には動画が要りますなぁ。
「出窓」の中から見た様子です。
K21
K22
K23
K24

メカ細工はあり合わせのパーツで。
旗振り棒は百均カメラ三脚の足。
  ※なぜか2本だけ残っていた
モータ軸の回りは、金属スペーサーを加工。
リンク棒はΦ2.0のシンチュウ棒をコの字に
曲げて。
その抜け止めは圧着端子の根元を残して
切断し、それを先に圧着。
  ※こちらからは見えないけど

ユニポーラ→バイポーラ改造
ユニポーラ ステッピングモーター 28BYJ-48 5V
を「バイポーラ」に。
St21
St22
中央の赤線がユニポーラ接続でのコモンになります。
これを切り離します。
St23
St24
ステッピングモータのドライバユニット「A4988」は、
モータ定格の「5V」ではなく、12Vや24Vの電源を
供給して使います。
  ※1/16までマイクロステップの設定もできるので
   便利です。
基板上の半固定抵抗を調整すれば、モータの駆動電流を
設定できます。
駆動トルクに見合った電流にしておけば発熱が少なく
なります。
  ※出窓の電源回り、出窓の前に人が来たか
   どうかを人感センサーで検出していて、
   一定時間検出が続けばオン、
   検出が無くなってしばらくしてからオフ
   というふうなラインをこさえてあります。
   AC100V、DC24V、DC5Vの3電源が
   オン・オフします。


| | コメント (1)

2023年5月 2日 (火)

「XBB系統」

yahoo:第9波の主流と予想されるオミクロン株「XBB系統」 現時点で分かっていること

新型コロナ、「オミクロン」と呼ばれているのは
「BA.5」という「株」なんだと思っていたのですが、
この解説によりますと、今は「XBB系統」が主流に
なってきているんだと。

新型コロナ、なかなか収束しそうにありません。

「みんな大丈夫そうやから、イベントしよっ」っと、
地域行事を復活させて良いモノなのか・・・

| | コメント (0)

2023年5月 1日 (月)

Arduino UNOで3相モーターを回す

ラジオペンチblog:DVDのスピンドルモーターを低速回転させる-続編
に倣って、ジャンク箱から発掘した小さな3相モーターを
回してみました。

ラジオペンチさんの記事を見て、
 「光学ドライブかHDDか何からだったかは忘れた
  けど、小さな3相モーターがあったはず」
っと、ジャンク箱を漁りました。
発見できたので、真似っこしてみました。

仕事では、RX220マイコンと L6234 という
3相モータードライブICを使って「回した」こと
があります。
RX220には3相駆動用のPWM出力が付いてい
ますが、Arduino UNOのATmega328Pは
別個のタイマーユニットを操作しなくてはなりません。

3つあるタイマー、そのうちタイマー0がdelay()などの
タイマー処理で使われています。
それを・・・Arduinoから「タイマー0」を取り上げる(ユーザーが使う)
の手法で「我がモノ」にします。

初期化(setup)から、もう、Arduinoの環境からは外れて
しまいます・・・
でも、ATmega328Pはちゃんと「言うことを聞いてくれます」
ので。

試した回路、はこんな様子。
M11_20230501175601
下の銀色のがモーター。
右のユニバーサル基板が駆動回路。
モーターとは3本の電線がつながります。
2ph1
タイマー0のOC0AとOC0B出力。
そしてタイマー2のOC2B出力で、3つのPWM出力を
制御します。
  ※N-ch、P-ch MOS FETの記号は
   簡略化して記述。
  ・パワーMOSFETの回路記号:MOSFETの矢印
  ※ゲートのプルダウン抵抗はゲートの浮き防止。
   浮くと貫通電流が流れるかも。
  ※3相モータの回路記号↓ (BSch3V用)
     bsch3v_lib_230502.zip
   6本線を3本線にしたのはSHAPES.LIBの中に。

オシロ波形、緑・青・赤の3つがこの3相制御出力。
M12_20230501175601

・スケッチ
  ・ダウンロード - 3ph_mot1a.txt

  ※.inoではなく.txtにしています。
  ※ちょいと虫を発見したんで
    mot1→mot1aに入れ換え

タイマー0とタイマー2は似たような8bitタイマー。
  ※タイマー1は16bit
それを「同期」させて3相の制御パルスを得ます。
二つを「8bit位相基準PWM」に初期化して、同期したPWM制御
ができるようにします。

スケッチをピックアップすると・・・

//  タイマー0,2  PWM出力 OC0A,OC0B,OC2B
TIMSK0 = 0b00000000; // 割込禁止
TIMSK2 = 0b00000000;
// ||+--- TOIE
// |+---- OCIEA
// +----- OCIEB
GTCCR = 0b10000011; // ★1
// | |+--- PSRSYNC タイマ0,1前置分周器リセット
// | +---- PSRACY タイマ2前置分周器リセット
// +---------- TSM 同期処理
TCNT0 = 0; // タイマーカウント値クリア
TCNT2 = 0;
OCR0A = 128; // U相 中央値
OCR0B = 128; // V相 (-1せず)
OCR2B = 128; // W相 (H=128:L=127)
TCCR0A = 0b10100001;
// |||| ++--- 8bit位相基準PWM
// ||++------- OCR0B 非反転PWM
// ++--------- OCR0A 非反転PWM
TCCR0B = 0b00000010;
// || |+++--- CS 1/8 2MHz →3.92kHz
// || +------ WGM02
// ++--------- FOC0
TCCR2A = 0b00100001;
// |||| ++--- 8bit位相基準PWM
// ||++------- OCR2B 非反転PWM
// ++--------- OCR2A Portで
TCCR2B = 0b00000010;
// || |+++--- CS 1/8 2MHz
// || +------ WGM22
// ++--------- FOC2
GTCCR = 0b00000000; // ★2
// +---------- TSM=0で計数開始
  :
★1でタイマー0とタイマー2の前置分周回路を停止。
★2で計数再開。

★1でクロックの供給が止まり、その間に二つのタイマーを
「8bit位相基準PWM」に初期化しています。
   ※タイマー1は16bitなので
    ちょっと、この二つとは
    違います。これをタイマー
    割り込みに使います。
PWMの周波数は、
  16MHz/8 = 2MHz
  1/255  1/2 → 3.92kHz
になります。

★2の計数再開でタイマー0とタイマー2の「頭」が
そろいます。

もう一つ、高速化のための手法。
三角関数データをROM内のテーブルに配置します。
「gawk」を使って配列を作り、それをPROGMEMで
ROMに配置します。
角度0~359度から「±127」の「8bitの数値=sin値」が
得られるようにしておきます。
  ※PWMの設定値が8bitなので
これで浮動小数点演算→三角関数の演算を使わなくて
良いようになります。

下表のように角度0~359度からテーブル読み出しで
8bitの「sin値」が出てきます。

/*****  SIN 0~359      *****/
// 振幅±127, 中央値は0
const int8_t sin_tbl[] PROGMEM ={
0, 2, 4, 6, 8, 11, 13, 15, 17, 19, // 0
22, 24, 26, 28, 30, 32, 35, 37, 39, 41, // 10
    :
  125, 125, 125, 126, 126, 126, 126, 126, 126, 126, // 80
127, 126, 126, 126, 126, 126, 126, 126, 125, 125, // 90
125, 124, 124, 123, 123, 122, 122, 121, 120, 120, // 100
    :
-22, -19, -17, -15, -13, -11, -8, -6, -4, -2, // 350
};

ツールは「gawk」。
  文字を処理するなら、コレ!。

駆動周期でPWM値を更新します。

    pwm_3ph[0] = degpwm(rot_deg,       ad_vr[0]); // U相
pwm_3ph[1] = degpwm(rot_deg + 120, ad_vr[0]); // V相
pwm_3ph[2] = degpwm(rot_deg + 240, ad_vr[0]); // W相
cli(); // 割り込み禁止で
OCR0A = pwm_3ph[0]; // U相 PWM duty設定
OCR0B = pwm_3ph[1]; // V相 (-1せず)
OCR2B = pwm_3ph[2]; // W相
sei(); // 割り込み有効に戻す
rot_deg++; // 0~359度
if(rot_deg >= 360) rot_deg = 0;

120度位相差の3つの信号からPWM設定値を得て、
それをタイマー0、2の「OCR」レジスタに書き込んで
sin波に合致したデューティ比のパルスを得ます。
ad_vr[0]は、「PWM振幅調整用」の8bitデータです。

正弦波データテーブルを読んでいる処理がこれ。

/****  角度からPWMデータに変換   *****/
// 角度 0~359 → 8bit PWMデータ(0~255)
// VR1値(8bit)でPWMの振幅を設定
// 中央値は128
byte degpwm(short deg, short vr1)
{
short a, g;
byte d;
while(deg < 0){ // マイナスならdeg+360
deg = deg + 360; // プラスに
}
// deg = deg % 360; // 0~359の範囲に(割り算やめて)
while(deg >= 360){ // 360を越えている場合はdeg-360
deg = deg - 360;
}
// SIN値に変換
a = (short)(int8_t)pgm_read_byte(&sin_tbl[deg]); // 0~359度→sin
g = (a * vr1) / 256; // VR1 : PWM振幅調整 ±127最大
d = (byte)(g + 128); // 8bitの中央値
return d;
}

g = (a * vr1) / 256; のところ
ぎりぎりで符号付16bit乗算が可能。
  aは±127でvr1は0~255。
aとgをlongにして乗算するとずいぶん遅くなります
んで、shortの範囲にしておきたかった。


今回の実験(お休み中の腕試し)はここまで。

※面白がって追試
3相PWM出力の処理時間が11~12usだったので、
「これなら100us割り込み内で処理できるぞ」
っと、タイマー割り込み内でPWM出力を制御する
ように書き直してみました。
お試し下さい。
  ・ダウンロード - 3ph_mot2.txt
    ※.inoではなく.txtにしています。

VR2を絞って最高速度にすると
360度の経過が1秒間に27~28回。
  1度の変化が0.1ms。
  0~359度で 36ms。
  1秒 ÷ 36ms = 27.78


| | コメント (5)

« 2023年4月 | トップページ | 2023年6月 »