サーボモータコントローラとは何ですか?
サーボモータコントローラの定義
サーボモータコントローラ(またはサーボモータドライバ)は、サーボモータの位置を制御するために使用される回路として定義されます。
サーボモータドライバ回路
サーボモータドライバ回路には、マイクロコントローラ、電源、ポテンショメーター、およびコネクタが含まれており、精密なモータ制御を確保します。
マイクロコントローラの役割
マイクロコントローラは、特定の間隔でPWMパルスを生成し、サーボモータの位置を正確に制御します。
電源
サーボモータコントローラの電源設計は、接続されたモータの数によって異なります。サーボモータは通常、4.8Vから6Vの電源を使用し、5Vが標準です。供給電圧を超えるとモータが損傷する可能性があります。電流消費量はトルクに応じて変化し、アイドルモードでは低く、動作時には高くなります。最大電流消費量であるストール電流は、一部のモータで最大1Aに達することがあります。
単一のモータ制御には、ヒートシンク付きのLM317などの電圧レギュレータを使用します。複数のモータの場合、より高い電流定格を持つ高品質な電源が必要です。SMPS(スイッチング電源)は良い選択肢です。
以下に示すブロック図は、サーボモータドライバの相互接続を示しています

サーボモータの制御
サーボモータには3つの端子があります。
位置信号(PWMパルス)
Vcc(電源から)
接地

サーボモータの角度位置は、特定の幅のPWMパルスを適用することで制御されます。パルス持続時間は、0度回転の約0.5msから180度回転の約2.2msまでです。パルスは約50Hzから60Hzの周波数で与えられるべきです。
PWM(パルス幅変調)波形を生成するには、以下の図に示すように、マイクロコントローラの内部PWMモジュールを使用するか、タイマを使用することができます。PWMブロックを使用すると、多くのマイクロコントローラファミリーの設計により柔軟性が高く、サーボモータなどのアプリケーションに適しています。異なる幅のPWMパルスには、内部レジスタを適切にプログラムする必要があります。
次に、マイクロコントローラにどの程度回転させるかを伝える必要があります。この目的のために、シンプルなポテンショメーターを使用してADCで回転角度を得ることができます。または、より複雑なアプリケーションでは加速度センサーを使用することもできます。

プログラムアルゴリズム
コントローラのピンに接続されたポテンショメーターによる位置入力で単一のサーボを制御するプログラムを設計しましょう。
入出力用のポートピンを初期化する。
所望のサーボ位置のためのADCを読み取る。
所望の値のためのPWMレジスタをプログラムする。
PWMモジュールをトリガーすると、選択されたPWMチャネルピンが高(論理1)になり、必要な幅に達すると再び低(論理0)になります。したがって、PWMをトリガーしたら、約19msの遅延でタイマーを開始し、タイマーがオーバーフローするまで待つ。ステップ2に戻る
利用可能なPWMモードは様々で、選択するマイクロコントローラに応じて使用できます。サーボの制御コードにはある程度の最適化を行うことが必要です。
複数のサーボを使用する計画がある場合は、それだけの数のPWMチャネルが必要です。各サーボには順次PWM信号を与えることができますが、各サーボのパルス反復率を維持する必要があります。そうでないと、サーボが同期を失います。