DCモーターのPWM制御をしたが、あくまでも一方的なチョッパ制御である。
実際のモーターはエポキシ樹脂の撹拌機として使うのだが、混ぜているときに回転数を制御して、プロペラの先を空気中に出すと高速回転になってしまってプロペラのエポキシが飛び散る。
理想的には負荷によらずモーターの回転数を制御したいのだが、モーターの回転数制御をどうするかという問題がある。
方法は2つ。
・モーターは高速で回し、減速ギアを経由してプロペラを混ぜる。撹拌による抵抗による回転数減少が僅かになるように。
・モーターの回転数を検知し、減速したときにはduty比率を上げる。
DCモーターは回転していると逆起電圧が発生するので、この電圧を利用してモーターの回転数が制御できないかと思った。
逆起電圧は回転数に比例なので比較的制御性も良さそう。
しかし、かなりノイズが多いはずなので、適当なフィルタは必要だろう。
モーターに電力供給していないとき、両端に電位差があるはずなので、この電圧を読み取れば回転数制御ができると思っているが、うまく行くだろうか。
PWMと協調制御になるのでマイコン必須だな。
制御の流れは
・ボリューム位置から一旦PWMを指定
・MOSFETをOffにしたタイミングでモーター電圧を読み取る(上の回路図でVotlageと書いたところ)
・PWMのdutyを変更する
マイコンはどのピンもADCがあるので、まあ適当に使えるだろう。PWMはOC0AとOC0B端子限定なので1,3ピンのみ。Reset端子を入出力に設定すると次のマイコン書き込みで困るので使わない。
Attiny10のピン配置。
時定数はとりあえずなのだが、こんな回路になるだろうか。
モータースイッチングは120Hzなのでそれよりも高めのカットオフ周波数にしないとな。
コロナの影響で時差勤務。現在11時出勤20時退勤が勤務時間なので、朝ちょっと暇。
ADC読み込みはPWMのタイミングに合わせる必要があります。
OFFの間、ADC繰り返す方法もあり。
フィルター無くてもいけるかも。
OFFの直後はオーバーシュートするので、できればONの直前に読むのがいいです。
デューティーが100%に近くなるとオーバーシュートが消えなくなるのが難点です。
あと、DCモーターの負荷変動を少なくする回路にオペアンプ等でアナログ的にも可能です。
モーターの等価回路は、内部抵抗と起電圧になりますが、ブリッジ回路で内部抵抗より僅かに少ない抵抗でバランスして電源電圧に負帰還すれば、等価的に内部抵抗をゼロにできて、負荷変動がかなり少なくなります。
結果的には負荷をかけると電圧が上がるという動作です。
アナログで組むと発熱が大きいのが欠点。