電子工作

スポンサーリンク
Programming

Arduino Leonardoでtone()を使わずタイマー割り込みで440Hzを鳴らす完全ガイド

要約まとめ Arduino Leonardo(ATmega32U4)で tone() を使わず、タイマー割り込みだけで 440 Hz のブザーを 1 秒おきに鳴らす方法を徹底解説。 タイマー3で周波数、タイマー1で ON/OFF を生成し、CPU 負荷を最小化しつつ精度も確保。レジスタ設定の計算式を図解&実測済み。 tone() の限界、タイマー CTC モードのメリット、周波数変更テク、ハード的注意点まで網羅。実装手順はコピペ OK! なぜ tone() を卒業するのか 結論先出し:tone() は便利だが多用途化するとタイマー0 を占有し、millis() / delay(...
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 標準関...
Programming

Arduinoユーザー必見!ESP32の特徴と活用法を徹底解説【2025年版】

ESP32とは何か?その起源や特徴、種類の違い、Arduinoとの互換性まで詳しく解説します。ESP32を使ったIoTプロジェクトの可能性を広げるための完全ガイド。初心者からプロまで必見!
スポンサーリンク