サーボのハンチングの防止

対処療法として、writeMicroseconds()して動作完了したらdetach()することで、振動を抑える(そもそもPWMを切ってしまう)ことにした。
均衡点付近で永久に振動していることを考えると、スライディングモード制御などが使えるんだろうか。

#include <Servo.h>
Servo s;
int angle;

void setup(){
  angle = 0;
}

void loop(){
  s.attach(9); //接続(PWMは出力しない)

  if(Serial.available()>0){
    int c = Serial.read();
    if (c=='a'){
      angle += 0;
      int us = map(angle,0,180,800,2200);
      Servo.writeMicroseconds(us); //ここでPWMを生成
      delay(1000); //動作が完了するまで時間を指定(ここでは1秒を決め打ち)
    }
    s.detach();	//PWM出力解除
                //本当はコマンドが正しかったらという
                //バリデーションを付けた方がいいと思われる
   }
}