188. 在 Arduino 和 86Duino 上只使用 1 個 servo pin, 並量測
輸出的 PWM duty 與目標值的誤差,所測得的數據如下:
各板子的 PWM Duty 抖動實測 (1/2)
板子 目標
duty
實際量測值 duty
誤差範圍最小 最大
Arduino UNO 1000 us 1000.04 us 1006.42 us 約 6 ~ 7 us
Arduino
Leonardo
1000 us 1000.04 us 1007.92 us 約 7 ~ 8 us
Arduino DUE 1000 us 998.200 us 998.280 us 約 1 ~ 2 us
Arduino
Mega2560
1000 us 1001.12 us 1008.87 us 約 8 ~ 9 us
86Duino 1000 us 998.64 us 1001.1 us 約 1 ~ 2 us **
** 在 86Duino 有標註硬體 PWM 功能的 I/O pin 上, 誤差則是 0
189. 在 Arduino DUE / Mega2560 和 86Duino 上啟用 45 組
servo pins, 並量測其中一個 pin 輸出的 PWM duty 與目標
值的誤差, 所測得的數據如下表所示:
各板子的 PWM Duty 抖動實測 (2/2)
板子 目標
duty
實際量測值 duty 誤差範圍
最小 最大
Arduino DUE 1000 us 998.05 us 1004.68 us 約 2 ~ 5 us
Arduino
Mega2560
1000 us 1001.09
us
1076.96 us 約 1 ~ 77 us
86Duino 1000 us 998.70 us 1001.31 us 約 1 ~ 2 us
Arduino 的 Servo 函式庫在超過 12 組 channels 時, 會啟用 2 組以上 Timer
中斷, 以上表格可以看出多組 Timer 中斷互相影響所造成的 jitter 惡化情形