ベンチマーク

スポンサーリンク
Programming

Arduinoサーボのハンチングを完全解決!writeMicroseconds活用ガイド

要約まとめ サーボが〈プルプル〉震えるハンチングはPIDゲイン過多と急加速/急減速が主因。 Servo.write()だけだとコントローラが粗く、ハンチングが顕在化しやすい。 ソフト加速(softMove)でステップを細かく切ると大幅に低減。 writeMicroseconds()でパルス幅を直接制御すれば解像度が5〜10倍に向上。 さらに独自関数new_writeMicroseconds()で“なめらか全域制御”が可能。 ハンチングの正体と根本原因 結論から言うと、ハンチングは「PIDコントローラのD(微分)成分が効きすぎ+速度ステップが粗すぎ」で起こる軽い振動現象。...
Programming

Arduino UnoのdigitalWrite/pinModeをレジスタ直叩きで50倍高速化する方法【実測比較&サンプル付き】

要約まとめ digitalWrite() / pinMode() は便利だが激遅 ― 毎呼び出しで数µsをロス。大型プロジェクトでは致命的。 レジスタ直叩きで約30〜50倍高速化。フラッシュサイズも縮小し、処理落ちリスクを一掃。 avr_pinMode / avr_digitalWrite をドロップインで置換できるサンプルコードを公開。 比較表と FAQ で疑問を一掃。安全に導入するための落とし穴と対策も網羅。 ATmega328P 以外の AVR でも応用可。ポートの対応表を用意すれば OK。 なぜ digitalWrite() は遅いのか? Arduino 標準関...
スポンサーリンク