前々回、DCモータの回転数を上げていくとArduino Uno(互換機だけれども)がハングする現象が現れました。本当は、ちゃんと原因究明をして対策を打つべきかと思うのですが、長い間出番を待っていたデバイスがおり、急遽ご登場いただいて現象解決、回転数変動させてもOKになりました。登場願ったものこそPC817C、フォトカプラです。
※「部品屋根性」投稿順Indexはこちら
このPC817C、フォトカプラ(SHARP製)は、相当前に秋月電子殿で購入させていただいたものです。付属の資料にはバッチリお値段も書かれており、8個入りで缶コーヒー1本より安かったです。ぶっちゃけワンコイン。残念なことに既に取り扱いは終わっているようです。現在は、他社の似た型番のPS817とか、「通信工業用にはお勧め」と書かれている東芝TLP785などに置き換わっているようです。
使う所あるだろ~との安易な予想のもと、PC817Cは部品箱の片隅に長らく眠っておったのですが、忘れたわけではありません。何か使い道があれば即座に登場願うつもりでありました。ちょうど『飛んで火にいる夏の虫』というか『渡りに船』というべきか、前々回、DCモータ(ブラシ付)をドライバIC DRV8835を介してPWM駆動していたところ、回転数を上げていくとPWM信号を生成しているArduino Uno(互換機だけれども)のソフトウエアの実行(シリアルポートへの出力)が止まってしまいました。本来、真相をちゃんと究明するべきですが、「PWMのロウ期間はドライバICのHブリッジトランジスタ(MOS)は全てOFFになり、結果トランジスタに並行に入っているダイオードを介して、モーターの起電力がグランド線から電源線に向かって逆流、それでほにゃらら」なる勝手な推測のもと、
フォトカプラ入れて電源、GND切り離せばOKじゃん
という安直な対策を講じることになりました。というかPC817Cを使う事ありき、の発想。こういうことではイケないのでありますが。
フォトカプラ使うには入力と出力に入れる抵抗値を計算せんとなりません。ちょっとググればありました。日本を代表する立派な半導体会社2社によるフォトカプラの使い方の説明です。
個人的には、絵が可愛くてアチコチ飛んで読みやすい東芝様の方がとっつきやすい気がします。しかし、淡々と上から読んでいけば分かる(気になる)ルネサス様も捨てがたい、一長一短か。ただルネサス様の資料の途中に「良いこと」書いてありました。1行引用させていただきます。
以下、最大出力電流の検討ですので、2-3mA以下の出力電流でお考えの場合には、一般的にこの説明は不要です。
それって私の事だな。ついArduino Uno(互換機だけれども)は5VIOであることを忘れ、3.3Vの別な装置に接続するつもりで「頭の中で概算」して抵抗値を決め、前々回の回路にPC817Cを挿入してしまいました。それでPWM信号の端子には220Ω入れてしましましたが、電流流しすぎかも。後で5VのPWM波形を印加した時の電圧みるともっと大きくしてもよいかもしれない(ま、どちらでも動きそうだけれども、多分)。半田づけするときは、330Ωに替えたいです。
小さい割に電源配線の煩雑な回路になりました。普通はモータ側が高電圧なものですが、今回モータは3V定格なので、電池2本でDRV8835のドライバが駆動。DRV8835の入力端子側は5V信号(前々回こちらはマイコン基板から取り出していたが切り離した)だが別な5V電源(前回投稿の006P電源)。Arduino Uno(互換機だけれども)とDRV8835の入力端子間にフォトカプラPC817を挿入、これで電源、GNDともマイコン側の切り離し完了。
回路図は上のようですが、それを実体化した実験回路は下のようです。ごちゃごちゃ。。。
一応、フォトカプラの前後での波形を調べておきました。下の写真の右下にArduino IDEのシリアルモニタが一部写っています。表示の意味は、CW(クロック・ワイズ)回転で、PWMのハイ幅92(PWMの周期は490Hz固定で、8ビットレゾリューションなので、大体デューティ36%くらいに相当)です。上の波形の黄色がフォトカプラの出力波形で、5Vまで振れていることが分かります。下の波形の青色はフォトカプラの入力端子間の電圧波形で1目盛り500mVです。大体1.2Vくらい。付属のデータシート(参考資料の表示あり)によるとTYP.のVfが1.2V(@If=20mA)なので、まあそんな感じですかね。
フォトカプラを入れた後は、回転数制御のボリュームをいろいろ動かしても問題なく回ります。ボリューム中央のBRAKE状態で止まっていますが、ちょっとつまみを右や左に回せば回転を始めます。なんか前々回より反応良くなってないか?気分?ボリュームを捻っていくとどんどん回転速度が増します(回転速度を測っているわけでなく、回転音からの個人の印象です。)前々回のプログラムを見ていただくと分かるとおり、CWでもCCWでもボリュームを回しきると突然COAST状態になって止まるのですが、モニタにCOASTとでると滑走後停止している感じがします。そこからつまみを戻すといきなりフル回転に戻ってブーン。そんな急激な回転数変動でも問題ない。
ま、無暗とフォトカプラのお陰で前々回の問題解決(ということにしたい)です。