今回は医療器械の部品交換で捨てる予定のステッピングモーターをPICマイコンによって動作させます。
とりあえず駆動映像からどうぞ
毎年輸液ポンプの点検を行っていますが、テルモの輸液ポンプに限っては定期的に内部部品の交換を行うように推奨されています。
最近発売されている輸液ポンプは部品交換しなくても良い製品が増えていますが、
昔のテルモ社製TE131やTE161Sでは内部電池やモーター、各種消耗品などを2年から3年の周期で交換しなくてはなりません。
今回はそんな定期点検で不要になる部品の一つである輸液ポンプのモーターを再利用して回してやろぉーという試みでーす。
部品交換により不要になったのはTE131から取り外したこの↓モーターです。
毎年数十個とこのモーターが捨てられるんです。
いろいろ調べるとこのモーターはステッピングモーターというモーターで中にコイルが入っていてパルス状の電圧を数本の電線に加える事で高精細に回るモーターなんだそうです。
普通のDCモーターみたいに電圧を加えて電流を流す事ですぐに回るような簡単なもんでない代わりに回転数をかなりの制度で制御できるというモーターです。
写真よりこのステッピングモーターはVETAXというメーカー製らしく調べてみるとオリエンタルモーターという会社が取り扱っているみたいです。
さらに調べてみると市販品でなく特注品であるということも判明。
たぶんですが、消費電流やサイズからこのステッピングモーターに近い性能なんでは?と思います。
一応ステッピングモーターの動作方法も学びました。ご丁寧にオリエンタルモーターさんで大まかに学べました。
他にもPICマイコンでステッピングモーターを動作させているここのサイトもとても参考になりました。
ステッピングモーターについて
ステッピングモーターは中に入っているコイルの相数によって2から5相モーターに別れます。
今回、動かすのは写真にあるように”2-Phase”とあるように2相モーターでモーターから出ていいる線が6本なので2相ユニポーラ駆動用というものです。
動作原理はというと下図の様(2相ユニポーラ駆動の場合)にモーター内にコイルがあって、パルス状の電流をX→Y→X→Yとすることで順序よくローターが回るという仕組みです。
そのパルスの出し方で回るトルクや振動が変わるみたいで、一般的には2相励磁と2-1励磁で回すみたいです。
↓これが2相励磁
特徴は1相励磁より消費電力2倍かかるけど高トルク!!
↓これが2-1相励磁
トルクはそうでもないけど静かで滑らかな回転、1相励磁と比して消費電力は1.5倍程度
輸液ポンプから取り外したステッピングモーターについて
さぁ今回取り外したステッピングモーターについて簡単に調べて見ることにしました。
写真でわかる情報は動作電圧は6.6Vでたぶん1相あたりの消費電流が定格で0.58Aという事です。
実際に6本の電線にテスターを当てて調べてみると黒ー緑間が33Ω、黒ー緑間の中間タップが黄色。
赤ー青間も33Ω、こちらも白が中間タップでした。
ですので定格電圧6.6÷11Ω=0.6Aなので多分間違いないようです。
そんでメーカーホームページをみてみると↓普通に結線の表示ありました。
あとわかる事は1ステップ1.8°進むという事です。
ですので一回転するには360÷1.8で200ステップいります。
でも2-1励磁だと1ステップあたり0.9°なので一回転で400ステップになります。
ステッピングモーターのトルクについて
ステッピングモーターにはトルク表示があります。
忘れている人もそうでない人もここでトルクについて学び直すチャンスです。
トルクとは一言でいうと回す力です。
単位はN・m(ニュートンメートル)とかN・cm(ニュートンセンチメートル)といったりします。
他の単位でもkgf・mとかkfg・cmという表し方もあります。
端的にいうと1m離れた時に◯◯Nの力がだせるモーターですよって事です。
今回のステッピングモーターの正確なトルクはわかりませんが、よく似た既製品のモーターのデータシートを参考に考えてみます。
データシートではPKP213D05Aのトルクは0.02N・mだそうです。
1m離れたところで0.02Nの力を発揮できるという事ですね。
それではN(ニュートン)は私たちに認識しやすいg(グラム表記)ではどのくらいかというと
N=kg*m/s^2 要は9.8N=kgfという事になるので、1Nは0.1kgf(おおよそ100g)となります。
0.02Nとなると0.02*0.1kgで0.002kg=2gです。
このモーターのトルクは1m離れたところでおおよそ2gの力を発揮します。
さらにmは100cmなので1cmあたりのトルクでも表示させてみましょう。
0.02N・mのmをcmに変えると0.02*100N・cm=2N・cmになります。
2Nはおおよそ200gなので、1cm離れたところで200gの力を発揮できるモーターだという事がわかりまーした!!
間違ってたらごめんなさい。
PICマイコンでステッピングモーターを回す
さて、ステッピングモーターを回す予備知識の履修は終わったので実際にPICマイコンで輸液ポンプから取り外したステッピングモーターを回してみたいと思います。
まずは回路図から
使用するPICマイコンは初心者にはおなじみのPIC16F84Aになります。
今回はこれを10MHzで動かします。
プログラムはMPLABXでC言語開発、コンパイラはXC8を使用!!
回路構成はいたってシンプルで、RA2とRA3を入力として、スイッチが押されるのをソフト上で感知したら、RB4からRB7の4ポートより2-1相励磁のパルス信号を出します。
パルス幅は固定で10msecから0.5msecを試してみました。
パルスはNch-FETを駆動させてstepingMotorを動かします。
ステッピングモータ駆動に関する注意点
やってみてわかった注意点ですが、FETが誤動作をする事があるので10KΩの抵抗でゲートとソース間をつないでしっかりスイッチングできるようにしておく事。
あと、今回はNch-FETのドレーンとソース間に逆電圧防止用のダイオードをつけていませんが、これは使用したFETの機能として備わったFETを使用したので、ダイオードの機能がついていないFETを使用する際にはダイオードをドレーン側にカソードを向けて配置します。
これは高速でスイッチングする際にコイルからの逆起電力を防止する為です。
あと電源は変動したり、ノイズが入る様な電源だとうまく動きませんでした。
結構ステッピングモータが電流を使うので、PICマイコンの電源は別にしたほうが確実かもしれませーん。
ステッピングモーターの脱調について
プログラムを終えて実際にステッピングモーターを回してみました。
今回使ったステッピングモーターではパルス幅が10msecからスタートして、1msecまでは自己励磁して動きました。
しかし1msec以下のパルス幅だとうまく回りません。
これを脱調というそうです。
パルス信号とステッピングモーターの同期がうまくいかずモーターが回転トルクを失うのです。
でもメーカーでは似た様なモーターのデータシートで↓
おおよそ2kHから3kHzまではモーターが動くようなデータを出しています。
調べてみると台形駆動と言って徐々にパルス周期を短くしていって脱調しないように同期させながら目的の速度まで回転速度を上げていくというテクニックがあるようです。
台形駆動に挑戦!!
どうせステッピングモーター回すなら限界速度まで上昇させたいものです。
ですので台形駆動、いや、リニア駆動(直線的な減速はしないから)をしてみようと思います。
考え方はプログムで常に割り込みを10msecづつ駆動させておき、そこでボタンのスイッチが押されているか判定します。
押されていればパルス幅を決めている変数を-1づつするという簡単なプログラムにしました。
こんなプログラムであっさりさっきまで回らなかった2kHz(0.5msec)のパルスでステッピングモーターが回るようになりましたー!!
面白いです。最高です。
プログラム
長くなるので載せてませんので、ご入用のかたお問い合わせよりご連絡いただければどうにかしまーす。
終わりに
ステッピングモーターを動かせるスキルを身につけたので、今度はこの有り余ったステッピングモーターで何か工作ブツを作成しようと思いまーす。
たとえばミニ人工心肺シリーズの続編として、ミニ電動オクルーダーを自作するとか・・
夢は無限大!!
シーユーネクストタイム!!ばーいせんきゅ
始めまして、突然のご連絡で大変恐縮です。
電子工作ビギナーの溝辺(みぞべ)と申します。
PIC16F84Aとステッピングモーターで検索をしましたら、貴サイトをたどり着いた次第です。
このPICで実際にステッピングモーターを動かそうと考えている次第で、貴PIC16F84Aの試作プログラムをご提供いただければとメールさせていただいた次第です。
PICプログラマーは秋月のプログラマーキットとPICKIT3を使っています。
PICプログラミングは、未経験でファームの修正などに使った程度です。
私のバックグランドは、半導体で38年ほどの経験です。現在は、リタイアした後、地元の金属加工会社でセカンドキャリア中で、ものづくりの面白さに感銘中の状況です。
以上 簡単ながら。