発行済み 2026-03-27
ハンドルのステアリング方向を手動で制御したい、という状況に遭遇したことはありませんか。サーボ、しかし、それを達成するための最も簡単なボタンの使い方がわかりませんか?今日は、STM32 がどのように正転と逆転を制御するかについて説明します。サーボボタンを使用することで、この要件を簡単に満たすことができます。
ボタンを使用してサーボを制御する最大の利点は、直感的で便利であることです。スマートなゴミ箱を作ったと想像してください。ボタンを押すと蓋が開き、もう一度ボタンを押すと蓋が閉まります。このインタラクティブな体験は自然なものでしょうか?ボタン制御にはコンピュータや複雑なインターフェースは必要ありません。押すと反応します。製品のプロトタイプや小規模バッチの装置に特に適しています。さらに、STM32 の GPIO はボタンのステータスを読み取るのが非常に簡単です。わずか数行のコードで実現でき、開発の敷居は特に低くなります。
ステアリングギアアプリケーションのニーズがある人にとって、ボタンコントロールは単に「怠け者にとって朗報」です。たとえば、自動給餌器を作りたい場合は、 を押すと餌が供給され、 を押すと停止します。または、リモコンのモデルカーを作成し、ボタンを使用してステアリング角度を制御します。この制御方式は低コストであるだけでなく、信頼性も高い。ボタンが壊れても安く交換できます。重要なのは、ユーザーの学習コストがほぼゼロであり、誰でもボタンを押すことができることです。
さまざまなサーボが市販されていますが、適切なサーボを選択するにはどうすればよいですか?まず、使用シナリオを確認します。方向を制御するだけでそれほど力を必要としない場合は、9gの小型サーボで十分であり、安価で一般的です。金属製のロボット アームなど、より重いものを駆動する必要がある場合は、この高トルク サーボを使用する必要があります。サーボの動作電圧に注意してください。 5Vが一般的ですが、7.4Vのものもあります。 STM32 の電源と一致する必要があります。
制御信号の互換性もあります。ほとんどのサーボは、20ms の周期と 0 ~ 180 度に対応する 0.5ms ~ 2.5ms のハイレベル時間の PWM 信号によって制御されます。したがって、サーボを選択する際には、標準の PWM 制御であるかどうかを必ず確認してください。そうでない場合は、コードを大幅に変更する必要があります。また、購入の際は予備も忘れずに購入してください。サーボは詰まると焼き付きやすいので、予備を持っておくと安心です。
ボタンとサーボはSTM32に接続されています。配線は最初のステップであり、最も可能性の高い問題です。通常、ボタンは GPIO ポートと GND に接続されており、内部でプルアップ抵抗がオンになっており、ボタンを離すとハイレベル、ボタンを押すとローレベルになります。ジッター干渉を排除するには、ボタンの両端に 0.1uF のコンデンサを接続するのが最善であることに注意してください。サーボは5V電源とGNDに接続され、信号線は別のGPIOポートに接続されます。電源は分離する必要があります。サーボの起動電流が大きく、STM32と電源を共用しているためリセットが発生しやすくなります。
ここにちょっとしたヒントがあります。サーボには個別に電力を供給し、STM32 の 5V ポートはボタンとチップにのみ使用されます。電源を共用する必要がある場合、サーボ起動時に電圧が低下し、マイコンが再起動します。もう 1 つは、信号の基準電位が一定であることを保証するために、すべての GND を一緒に接続することです。基板の焼損を避けるために、配線する前に簡単な図を描いて、電源を入れる前に正しいことを確認するのが最善です。
![]()
コード部分は実際には複雑ではありません。中心となるのは、ボタンのステータスをポーリングし、サーボの PWM デューティ サイクルを変更することです。 20ms の周期で PWM を出力するようにタイマーを初期化します。まずサーボを90度で停止させるための中間値、例えばハイレベル1.5msを与えます。次に、メインループがボタンを検出します。進むボタンを押すと、デューティ サイクルが増加してサーボ角度が増加します。逆ボタンを押すと、デューティ サイクルが減少します。ジッターを除去するために遅延を追加することを忘れないでください。そうしないと、ボタンを押すと数フレームジャンプしてしまいます。
サーボが限界角度を超えないようにするためには、コードで制限を設ける必要があります。たとえば、180 度に回転した後、再度押しても増加しません。 0度に反転しても減少しません。あと細かい点ですが、サーボが回転するまでに時間がかかります。素早く押し続けるとサーボが追いつかなくなりやすくなります。ボタンを放した瞬間に PWM を更新することも、ボタンを押すたびに 200ms 遅れて次のアクションを許可することもできます。これでかなり気分が良くなります。
初めて行う場合は必ず問題に遭遇します。最も一般的なのは、サーボが動かないことです。心配しないで、マルチメーターを使用して、電源が5Vであるかどうか、信号ラインに波形があるかどうかを確認してください。オシロスコープをお持ちでない場合は、PWM ピンの High および Low レベルを変更し、LED でそれを観察する簡単なプログラムを作成できます。 LED が点滅する場合は、タイマーが正しく設定されていることを意味します。サーボを見て「ジュージュー」という音がするかどうかを確認します。音が鳴るということは、力を受けているのに動かない、つまり機械が固着していることを意味します。
キーのジッターもよくある問題で、1 回押すと数回押したように感じることがあります。解決策は、ソフトウェア アンチバウンスを追加することです。ボタンが押されたことを検出した後、20 ミリ秒遅れて再度読み取ります。まだ押されたままの場合は、再度操作を行ってください。また、キーの数が多い場合は、メイン ループで常にスキャンする代わりに割り込みメソッドを使用できます。これにより、リソースが節約され、機密性が高まります。これらの問題に対する既製のコードがオンラインで提供されており、わずかな変更を加えて使用できます。
このソリューションは、多くの興味深いものに拡張できます。たとえば、手動制御のスマート カーテンを作成し、前方向に押すとカーテンが開き、逆方向に押すと閉じます。または回転台を作成し、ボタンを押して30度回転して写真を撮ります。クランプと緩めを制御するためのボタンを備えた工業用のシンプルな治具もあり、空気圧式のものよりもはるかに安価です。製品を作る人にとって、ボタン制御のサーボは、最も低コストの人間とコンピュータの対話ソリューションの 1 つです。
スマートホームや DIY プロジェクトに取り組んでいる場合、この機能は間違いなく便利です。考えてみてください。STM32 を使用し、いくつかのボタンとサーボを追加することで、多くの手動制御のニーズを実現でき、安定性と信頼性が高くなります。重要なのは、コードとハードウェアがシンプルで、パラメーターを変更してさまざまなプロジェクトに適応できること、そして特に再利用性が高いことです。多くの小型製品は、この方法を使用して機能を迅速に検証し、最適化してアップグレードします。
プロジェクトのサーボとボタンでどのような新しいトリックを使用できると思いますか?コメント エリアでアイデアを共有するか、公式 Web サイトを直接検索して、STM32 の実際の事例をさらにご覧ください。この記事を「いいね!」して保存しておくと、次回使うときに迷子にならずに済みます!
更新時間:2026-03-27