日々の記録

ほどよく書いてきます。

DCモーター回転数制御について

2020年04月21日 08時32分06秒 | 電子工作

DCモーターのPWM制御をしたが、あくまでも一方的なチョッパ制御である。

実際のモーターはエポキシ樹脂の撹拌機として使うのだが、混ぜているときに回転数を制御して、プロペラの先を空気中に出すと高速回転になってしまってプロペラのエポキシが飛び散る。

理想的には負荷によらずモーターの回転数を制御したいのだが、モーターの回転数制御をどうするかという問題がある。

方法は2つ。
・モーターは高速で回し、減速ギアを経由してプロペラを混ぜる。撹拌による抵抗による回転数減少が僅かになるように。
・モーターの回転数を検知し、減速したときにはduty比率を上げる。

DCモーターは回転していると逆起電圧が発生するので、この電圧を利用してモーターの回転数が制御できないかと思った。
逆起電圧は回転数に比例なので比較的制御性も良さそう。
しかし、かなりノイズが多いはずなので、適当なフィルタは必要だろう。

モーターに電力供給していないとき、両端に電位差があるはずなので、この電圧を読み取れば回転数制御ができると思っているが、うまく行くだろうか。
PWMと協調制御になるのでマイコン必須だな。

制御の流れは
・ボリューム位置から一旦PWMを指定
・MOSFETをOffにしたタイミングでモーター電圧を読み取る(上の回路図でVotlageと書いたところ)
・PWMのdutyを変更する

マイコンはどのピンもADCがあるので、まあ適当に使えるだろう。PWMはOC0AとOC0B端子限定なので1,3ピンのみ。Reset端子を入出力に設定すると次のマイコン書き込みで困るので使わない。

Attiny10のピン配置。

 

時定数はとりあえずなのだが、こんな回路になるだろうか。

モータースイッチングは120Hzなのでそれよりも高めのカットオフ周波数にしないとな。

 

コロナの影響で時差勤務。現在11時出勤20時退勤が勤務時間なので、朝ちょっと暇。

コメント (1)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

マイコン工作、モーターのPWM制御実装

2020年04月20日 02時55分50秒 | 電子工作

モーターPWM制御のハードを作った。

使うマイコンはATTiny10というSOT23サイズのもの。下の写真の6pinがそうです。隣はN-MOSFETですが、最終的にはもう少し大きなパッケージのを使いました。

ユニバーサル基盤にDIPサイズはいい感じの大きさである。

ユニバーサル基盤にSOT23の3pinパッケージを配置するのもギリギリできる。

6pinのSOT23は少し厳しいが、これを見て思いついた。

2pinと5pinを上に曲げちゃえばいい。

まずはマイコンにプログラムを書き込んでおき、実装に入る。

その間、友人からもらったオシロのセリフキャリブレーションを実施。上がPDS5022Sで下がPDS7102T。
PDS7102Tは受け取ったときに少し0点がずれていたがこれで直った。つまみが小さいものになっているが、なるほど、小さい方が使い勝手がいい。大きいダイヤルの凹みに指を入れてグリグルすると軽すぎるオシロは後ろに逃げていくのだ。

 

実装は・・・空中配線です。マイコンが一つ35円と安いので多少の失敗は損失として小さい。

MOSFETは2SK4017を使った。米粒パッケージを2つも空中実装したくなかったので。

なんとか形になった。空中配線で4x4のユニバーサル基板に穴が余ったのでゲートドライブの端子でLEDを光らせることに。
電源3.3Vで青色LEDは少し電圧が足りずでとりあえず1kΩが少し大きかったようだ。動作確認なのでこれで構わない。

動かすと少し不満はあるが、ちゃんと動いている。

 

なおLEDを適当に掴んだら足が刺さった。めっちゃ痛かった。テープにまとまったパッケージだが、前に切り取ったLEDの足が刺さった。

コメント (2)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

スイッチング回路(NMOSでローサイドをスイッチ、VCCコモン)

2020年04月19日 18時31分55秒 | 電子工作

太陽電池の電圧をMPPT制御したいが、ダウンコンバートの場合、ハイサイドスイッチをしないと出力電圧のフィードバックが難しい。

フォロカプラなどで出力電圧をフィードバックできるならば、このような形態でのスイッチング回路も一応可能ではあるはず。

LTSpiceでシミュレーションすると

V(n001)が電源電圧20Vで、V(n003)がC1の下側の電圧。なので、負荷には20-8=12Vの電圧がかかっている。

グランドが共通じゃないので、出力電圧のフィードバックが難しいのが面倒くさいところ。

いっそ8Vの部分から分圧してフィードバックするか。

こんな感じにして・・・ん?太陽電池みたいに電圧変動する場合はこれだけだとうまく行きませんね。MPPTするなら電源電圧監視もあるので、そちらで電源電圧を把握、R3, R4の分圧で出力電圧を把握としたらまあ、できなくもないか。

 

コメント (2)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

DCブラシモーター回転数制御

2020年04月19日 02時07分05秒 | 電子工作

DCモーターの回転数を制御する目的で色々やりましたが、最終案としてまとまった。

回路は次のような感じ。VRは少し遠いところにするのと、スイッチングのノイズがあるので、ADCに入れる信号は少しノイズフィルタをしたいのでCRフィルタを一つ入れてます。いらないかも?
あと、マイコン書き込みのとき、VRからマイコン端子直結だとVRの位置次第では書き込めないので、それを無視できるようになるかもと思って入れてます。

最終のプロトタイピング。

 

電源電圧の変動具合の確認。3.34Vが3.04Vと0.3Vほどのドロップ。時々もう少し低い周波数で電圧ドロップがあるがうまく波形を残せない。
ブレッドボード上だとどうしても配線の抵抗が重なってくるので、当初は電圧低下が2.5Vくらいまで下がってしまって困ったなあ(3.3Vから2.5Vなので24%電圧ダウン)と思っていましたが、電源だけは少しましな配線にしたらこの程度になりました。あまり電源電圧の変動は好みじゃないけどコンデンサをあまり大きくすると小さなマイコンを使ったメリットがなくなるので微妙なところ。

 

スイッチング周波数を120Hzにした理由は高周波だとモーターに電流が入らないから。当初8kHzくらいと思っていたが、耳障りなので30kHzくらいのスイッチングにしたら応答性が悪い上にDuty比が低い時にモーターが回らなくなった。周波数が高すぎるとモーターのコイルが当然のように電流を流さないので動かないわけです。

多分、高周波スイッチングをする場合は上のようにDC-DCコンバーターの出力にモーターが繋がれるような回路にしないとうまく動かないものと思います。
しかし、部品点数が増大するのはあまり良くない(ホビーならいいけど、量産するならコストアップにしかならない、部品点数増大は信頼性低下にもなる)ので、120Hzのスイッチング周波数に落ち着きました。

明日はユニバーサル基盤に作っていこうと思う。でも、ユニバーサル基盤を使うんだったら、はじめからATTiny13Aのような8pin DIPのマイコンで良かったんじゃないかとも思ってしまう。

 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

オシロスコープ

2020年04月18日 03時45分29秒 | 電子工作

友人からオシロスコープをお下がりで貰った。本当にありがとう。

もらったお城はOWON PDS7102Tというもの。現在使っているのはもう12年も使っているPDS5022Sというもので、STN液晶がだめになって交換したりした。
最近STNのコントラスト調整用のボリュームがおかしくなってコントラスト調整にストレスを感じていたので新調しようと思っていたところでRigolのDS1054Zあたりに目をつけていたところだった。
このオシロはYoutubeのレビューでも良さそうだったのが決め手だったが・・・・

さて、話はとんとんで、あげるよと話をもらってからあっという間にもらってしまった。

ある日、私の勤務先の近くに居ると電話をもらい、そのまま私の勤務先で会ってオシロをもらうという申し訳無さ一杯だった。

早速使ってみるとTFTはいいね。素晴らしい。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

マイコンのサイズ

2020年04月16日 00時12分18秒 | AVR

ATTiny10は大変小さく、0.1uFの積層セラミックコンデンサですらこのサイズ。

モーター制御は120Hzで行こうと思うので次は実装に移りたいと思います。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ATTiny10で遊ぶ

2020年04月13日 01時19分54秒 | AVR

AVRマイコンにはATTiny10というとても小さなマイコンがある。

ATTiny13Aと比較してもこのサイズ。小さい。8ピンのDIPがATTiny13Aで、その上の6pinのものがATTiny10です。

米粒マイコンとも呼ばれるように米粒と比較してもこの通り、偽りなしのサイズ。

 

ゴールはマブチモーターのブラシモーターをPWMで駆動するところ。

0.1uFのコンデンサは回路図では遠いですが、パスコンなのでマイコン近くへの配置が必要です。
実験してわかったけど電解コンデンサ省いたら長い配線のせいかスイッチONの瞬間に電源電圧の低下がありました。

ダイオードとRCフィルタが必要かどうかは微妙なところ(プロトタイプはダイオードもRCフィルタもなしで動かした)。

小さいままプロトタイプ作ってと思いましたが、小さいままでは試作時に都合が悪いので、DIPサイズに大きくしてブレッドボードで実験。

 

PWMの周波数ははじめにモーターが6000rpm=100Hzで回っていたら1回転で60回くらいスイッチングすればいいかなとか適当に考えて6kHz以上とおもったが、これくらいの周波数だとモーターから可聴域のキーンというノイズがでるのでNG。16kHzもちょっと聞こえるからダメだね。

最終的にはマイコンクロック4MHzでPWMのカウンタ範囲を0-128として31kHzでスイッチング実施。MOSFETのゲート充電時間が気になるけど、これは2SK3510で1us~2usくらいだったのでまあいいでしょう。最終的なMOSFETは友人のおすすめIRLML6344TRPBFTRというInternational Rectifierのゲート電圧0.8Vでonになるものを採用予定。2SK3510はゲート電荷150nC@VGS=10Vで、IRのは6.8nC@VGS=4.5Vと1/10以下なので、速度は問題になるまい。


2SK3510を使ったときのゲート電圧変化、4V弱でMOSFETがONになるための領域が見える。ゲート電圧0Vから0.75usくらいで充電が終わるがまあ、2usくらい充電にかかると思っておけば良かろう。

次は2SK4017を使ったもの。横軸の時間が一桁違うが、150ns程度で立ち上がっているので、十分に高速だろう。

当然だが、電流容量の大きなMOSFETはゲート電荷も多いので、駆動により多量の電流が必要になる。

 

ちょっと苦労した点
・内蔵クロックのプリスケーラー設定
 ATTiny10は8MHzの内蔵クロックを8分周した1MHzで動くのが基本なのだが、これ以外の分周にするには一回CCPというレジスタを変更する必要がある。
 CCP=0xD8; の命令の直後に
 CLKPSR = 0b00000001; などとプリスケーラー変更の命令を書けばいいのだが、何を勘違いしたのかD8が8bit変数であるにも関わらず、
 なぜか2桁だから16bitだとおもってしまい、どうやって8bitのCCPに16bitの値を放り込むのかと考えてしまった。

その他の実験が必要だった箇所
・モーターは回転するのに必要な最低限の電力があるので、単純にADCの値をPWMにすると感度ない領域が出てしまう。
・マブチRE-140RAの場合5V電源でPWMするときはDuty > 50%じゃないと回転しない感じです。回り始めるのに最低限エネルギーが必要な様子。そりゃそうか。
・モーター駆動の逆起電圧、電流を戻すためにダイオードが必要かと思ったが、モーターが回っている限りでは逆起電圧は気にしなくて良さそう。
 回転してないけどスイッチングしているときは逆起電圧大きくなりそうだと思ったがMOSFETは現状壊れていない(たまたま大丈夫な可能性もあるのでブレーキになってしまっても
 ダイオードは入れておきたい、と思っている。ブレーキ嫌ならツェナーダイオードかな)。

表面実装のマイコンは小さくていいのだが、プログラムの確認などを行う途中ではブレッドボートが使えるくらいのサイズがほしいと思った(実際変換基盤を使った)。
MOSFETのゲート、VRなどが書き込み端子に接続されているとそもそも書き込みができないケースがあった(インピーダンスが低くなる為)ので配線を外すなどが臨機応変に必要だった。

プロトタイピングは終わったのでまた後日最終形態に持っていくこととする。

 

さて、プロトタイピングが終わっていなかったので再考である。

モーターはリアクタンスがでかいのでスイッチングで動かすときは低周波のほうがむしろいいということで、CPUクロックと分周比で0-255カウントしたときのPWM周波数を求めた。
CPUクロック1MHzが出荷時のデフォルトである。

クロック
[MHz]
分周比
1/1 1/8 1/64 1/256 1/1024
8 31250 3906 488 122 30.5
4 15625 1953 244 61.0 15.3
2 7813 977 122 30.5 7.6
1 3906 488 61 15.3 3.8

CPU=1MHzで1/8分周比くらいの490Hzがちょうどいいくらいでしょうか。
PWMが61Hzでもモーターの慣性力があるのであまり気にならないかな。ためしてみましょう。

もしくはモーター上流をDC-DCコンバーターのようにしてモーターにチョッパした矩形電圧を打ち込むのではなく、整流された電圧を供給するか。でも、部品が増えますね。

コメント (6)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

骨髄ドナー、おそらく提供確定

2020年04月10日 22時35分34秒 | その他雑記

骨髄ドナー提供ですが、最終同意(家族を含めて)が完了したので、ほぼドナーになるのが確実です。

ずーっと気になっていたのですが、骨髄バンクでは、

・骨髄移植は生涯2回まで
・末梢血幹細胞移植は生涯1回まで

という制限がありますが、これはあくまでも骨髄バンクを経由した「血縁のない他人への提供」という枠組みでの条件のようです。

なので、血縁者(基本的には親or子供)への提供は骨髄バンクを経由しないため、医師の判断のもと、骨髄バンクとは別枠で提供が可能とのこと。

末梢血幹細胞移植で当選していたので、生涯1回のカード、家族への提供のカードの可能性もあるものを今使っていいかという不安はあったが、家族間には別枠があるようなので安心です。家族間はジョーカーのようです。確かに自分の子供を助けたいのに骨髄バンクで提供済みだからもう無理ですはあまりにも酷だと思うから、そこは納得かな。

 

今度日程など特定に至る情報については非開示の義務を追ったので今後詳細は書けませんが、体調などについては記載をしたいと思います。

コロナウイルスの騒ぎもありますが、骨髄レシピエント側からは命をつなぐまさに生命線なので自分もコロナウイルス罹患しないよう注意が必要です。

白血病などで家族を失う人が減ることを願わんばかりです。

コメント (1)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

骨髄ドナー候補当選(末梢血幹細胞移植)

2020年04月07日 20時23分01秒 | その他雑記

最終合意が済むと、引き戻せないところまで進んだ。

最終合意して、骨髄提供しようと考えている。

が、しかし、5月末にやってくる彗星と少しだけ日程がかぶるのがやや残念なところ・・・

コメント (1)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする