Arduino は 360 度サーボで遊んでいます。なぜサーボは回り続けるのでしょうか?速度を制御するにはどうすればよいですか? _BLDC_業界の洞察_Kpower
> 業界の洞察 >BLDC
テクニカルサポート

製品サポート

Arduino は 360 度サーボで遊んでいます。なぜサーボは回り続けるのでしょうか?速度を制御するにはどうすればよいですか?

発行済み 2026-05-11

引き出しをあさって埃をかぶった SG90 を見つけましたが、まったく止まらないことに気づき愕然としました。

長い間議論されてきた、いわゆる「90度回転」は、実際には達成できない贅沢になりました。それはまるで手綱から解放され、狂ったように回転し続ける野生の馬のようなものです。慌てないで。多くの場合、皆さんが手に持っているのは「360度連続回転」と呼ばれるステアリングギアです。

壊れているのではなく、根本的にそうなのですすべきではありません位置サーボとして使用します。

位置と速度: 「スマート トイ」に関する 2 つの致命的な誤解

従来の180度サーボは、一種の「甘やかされた」スマートトイでした。 90 度コマンドなどのコマンドを送信すると、全力を尽くしても目標角度に向かって調整し、正確に停止します。

完全自己満足の360度サーボとは?入力パルス幅が1.5ms(中央)の場合は定常状態となります。 1.45ms未満の場合はフルスピードで逆転します。 1.55ms を超えると、全速力で正転します。

変更できるパルス幅はマイクロ秒単位です。現時点では、回転速度のみを認識し、回転角度は認識しません。

ちょうど 30 度で停止させたいですか?すみません。その認知カテゴリーには「位置」という概念はなく、「方向」と「速度」のみがあります。

最初の書き込みプロンプトの単語を推測しました:トピックの位置を明確にする

コードトラップ: なぜ Arduino ルーチンが「アクセラレータ」になるのか?

Arduino ルーチンを取り出します。

#含む

サーボ私のサーボ;

私のサーボ.attach(9);

このサーボ角度設定とは、サーボ角度を90度に設定することを意味する。 360度サーボタイプの動作で、中間位置で停止する効果があります。

arduino360度舵机_arduino sg90舵机360度_arduino舵机角度

待ってください、最も一般的な誤解が現れました。書いたのは myservo.write(45) です。 45 度回転すると予想されますが、順方向に最も遅い速度で回転します。それはあなたが「左」の合図をしたからです。

360サーボの場合、write(0)動作は全速逆転の状態に対応し、write(180)動作は全速正転の状態に対応し、write(90)動作は停止の状態に対応します。

DC モーター + ドライバー ボードのように動作しますが、制御信号はより「繊細」です。

想像してみてください。5 回転後に正確に停止したいとします。何をするか?

計時方法は、正方向全速回転し、delay(2000)(実測によると2秒は約3.5周相当)してからwrite(90)となります。

補助エンコーダ (外部): ただし、手元にあるのは SG90 だけなので、夢を見ないでください。

2 番目の書き込みプロンプトは自然に現れました。論理遷移

ゲームの打開: 3 つの「直感に反する」コントロール ケース

ケースAは初心者が転倒したケースです。シャオミンさんは自動で蓋が開くゴミ箱を作りました。彼は 360 度サーボを使ってロープを引っ張りました。その結果、起動するたびに位置が異なり、蓋が半開きになったり、飛ばされたりする状態になりました。

解決策は、位置記憶を放棄し、マイクロスイッチであるリミットスイッチを取り付けることです。トリガーされたら、90 を書き込んで停止します。サーボは「引く」と「離す」の2つの動作のみを担当します。

ケース B (スマートカー): Xiaoli はディファレンシャル ステアリングを行います。 2 つのサーボはそれぞれ左右の車輪を制御します。

左輪前進 + 右輪停止 = その場で右折します。

左右の車輪が逆方向 = その場で回転します。

キーポイント:map(speed, -100, 100, 0, 180) を使用します。ここで、負の数値は逆回転を表し、0 は停止を表し、正の数値は順回転を表します。

ケースC(模擬水道メーター)に関しては、老王が定期的に首を振る状況です。要件は、20 秒間ゆっくりと首を振り、その後 3 秒間急激に戻ることです。

低速:書き込み(100)(低速正転) 20秒遅れます。

arduino360度舵机_arduino舵机角度_arduino sg90舵机360度

急回:書く(30)(低速後進) 3 秒遅れます。

気をつけて! Write(0) をフルスピードで実行すると、反転速度が速すぎるため、マシンが衝撃を受け、ポテンショメータが損傷します。

分かりましたか?すべてのケースで 3 番目のプロンプトの単語が確認されます。細部が成功か失敗かを決める

SG90 の寿命が短いのはなぜですか?キロパワーサーボのインスピレーション

「私のサーボはまだ 1 週間しか使用していないのですが、震え続けています。」

分解して見てください。プラスチックのギアが磨耗しています。あなたはそれを停止させました(動かなくなったがまだ電力が残っていた)。

のみキロパワー長時間回転状態が固着する状況に対応できるのはサーボのような金属素材で作られたサーボだけです。 SG90 の制限については、次のとおりです。

連続動作 ≤ 30 秒 (冷却が必要)

ロックされたローター電流は 800mA で、ドライバーチューブは 10 秒以内に焼き切れます。

中間位置の微調整を実行する場合は、最初に myservo.write(90) コマンドを実行し、次に機械デバイスのポテンショメータが完全に静止するまで調整する必要があります。

4 番目のプロンプトの単語:事例が信頼性を高める

実際に起こった出来事はこうだった。 12 個の SG90 を使用してロボット アームを作成する教育キットがありました。しかし、各サーボがブロックされて回転してしまいました。その結果、わずか 2 日でサーボの半分が焼き切れてしまいました。

> 教訓: 360 度ステアリング ギアは、「移動中に抵抗がない」シナリオにのみ適しています。

軌道に戻る: 「トラブルシューティング」Q&A

Q: サーボが 5V に接続されているのに動きません。

A: Arduino の GND とサーボの GND が同一グランドにあることを確認してください。それらが同じ地面にない場合、信号はランダムにドリフトし、サーボが激しく回転します。

Q: 電源を入れるとコードを書かなくても勝手に電源が入りますか?

A: 信号ピンがフローティング状態になっているため、誤ったトリガーが発生する可能性があります。 10k プルダウン抵抗を追加して GND に接続するか、最初に write(90) プログラムをアップロードします。

Q: 正確に10回転させたいのですが、どのように測定すればよいですか?

A: 最速で正方向に回転し、ストップウォッチを使用して 5 周にかかる時間を測定し、Delay() 関数を通じて制御します。誤差は 5% ~ 10% であるのが一般的です。

Q: 逆方向の方が順方向よりも遅いのはなぜですか?

A. 工場出荷時にニュートラル位置がオフセットされており、コードは微調整されています。この値を停止するか (90 を 92 に置き換えるなど)、ポテンショメータを変更する必要があります。

Q: 1.6msのパルス幅は速すぎますが、もっと遅くすることはできますか?

速度が遅くなるほどパルス幅は1.5msに近づき、極低速正転では1.51msとなります。書き出しのプロンプトワードは最終的にループを閉じ、結論を強化し、行動を促すものになります。

結論:「スピードをコントロールできるホイール」です

角度を無視し、1.5ms (一時停止)、1.45ms (全速後退)、1.55ms (全速前進) の 3 つの数値を覚えておいてください。

振動ファン、ベルトコンベア、自動カーテン、ライン追従車などを含むArduinoプロジェクトについては、絶対位置を必要としない動きであれば、360度SG90の方が価格も安く、操作も簡単です。

この時点で、「位置コマンド」によって混乱する前に、IDE を開いて 3 行のテスト コードを作成します。

write(0) 操作の実行後、遅延時間は 2 秒、write(90) 操作の実行後、遅延時間は 1 秒、write(180) 操作の実行後、遅延時間は 2 秒です。

音を聞いて速度を伝えます。そのとき、本当に「わかる」のです。

更新時間:2026-05-11

未来に力を与える

お客様の製品に適したモーターまたはギアボックスを推奨するには、Kpower の製品スペシャリストにお問い合わせください。

Kpowerにメールする
お問い合わせを送信
WhatsApp メッセージ
+86 0769 8399 3238
 
kpowerMap