2
サーボはマイクロコントローラーではなく、サーボテスターに応答します。信号は同じに見えます
TowerPro MG90Dサーボ(Manufactuer Link)(ServoDatabase Link)を持っています。 範囲は180度です(非連続)。 それは私のサーボテスターに素晴らしく反応します: テスターで次の7%デューティサイクル(約90度)を確認します。 サーボは正常に応答します。 ただし、servo.write()Arduino Mega 2560クローンを使用すると、サーボが角度出力に反応しません。同じピンの同じコードで問題なく動作する他のいくつかのサーボがあります。 Arduinoで次の7%デューティサイクルを観察しますservo.write(90)。 応答なし。サーボは「リンプ」です。それはいかなるポジションも保持していません。 私がこの質問を書いている間、私はしようと考えましたservo.writeMicroseconds()。 ここにありservo.writeMicroseconds(1450)ます: サーボが反応! これがservo.writeMicroseconds(1472)(working)で、これはprevoius non-working と同じ時間間隔servo.write(90)です! servo.writeMicroseconds(1550) (ワーキング): 違いはなんですか? サーボテスターは49.5Hzで動作しましたが、49.9Hzでservo.write()失敗しました。どういうわけかその0.4Hzが違いを生んだのかと思ったのですが、それでも49.9Hzで動作することがservo.writeMicroseconds()わかります。 上記のスコープキャプチャでは、両方が同じ時間間隔servo.write(90)をservo.writeMicroseconds(1472)持っていることがわかります。 1,474,560ns HIGH 18,544,640ns LOW 信号は非常に似ています... 動作しない原因servo.write()は何ですか? 私のコードは可能な限り基本的です: #include <Servo.h> Servo serv1; void setup() { serv1.attach(3); // Pin 3 } void loop() { serv1.write(90); // No response …