Week 3: タイマー、PWM、ADC¶
1. タイマー/カウンタの仕組み¶
1.1 タイマー/カウンタの基本概念¶
タイマー/カウンタは、マイクロコントローラ内部のハードウェアモジュールで、時間測定や周期的なイベント生成に使用されます。
1.2 Arduino UNO R4 WiFiのタイマー/カウンタ¶
Arduino UNO R4 WiFiには、複数のタイマー/カウンタが搭載されています。これらを利用して、高精度な時間計測や周期的なイベント生成が可能です。
1.3 タイマー/カウンタの設定と使用方法¶
2. PWM信号の生成と制御¶
2.1 PWM(Pulse Width Modulation)の原理¶
PWMは、デジタル信号を使って平均電圧を制御する技術です。デューティ比を変更することで、出力の平均値を制御します。
graph TD
A[PWM信号] --> B{デューティ比}
B -->|25%| C[低出力]
B -->|50%| D[中出力]
B -->|75%| E[高出力]
2.2 Arduino UNO R4 WiFiでのPWM出力¶
Arduino UNO R4 WiFiでは、特定のピンでPWM出力が可能です。analogWrite()関数を使用してPWM信号を生成できます。
2.3 PWMを使用したLED輝度制御¶
3. アナログ信号のデジタル変換(ADC)¶
3.1 ADC(Analog-to-Digital Converter)の仕組み¶
ADCは、連続的なアナログ信号を離散的なデジタル値に変換するプロセスです。
3.2 Arduino UNO R4 WiFiのADC機能¶
Arduino UNO R4 WiFiには10ビットのADCが搭載されており、0-5Vの入力電圧を0-1023のデジタル値に変換します。
3.3 アナログセンサーの読み取り¶
4. DAC(デジタル-アナログ変換)の利用¶
4.1 DACの基本概念¶
DACは、デジタル値をアナログ信号に変換するプロセスです。
4.2 Arduino UNO R4 WiFiのDAC機能¶
Arduino UNO R4 WiFiには、10ビットのDACが搭載されています。これを使用して、デジタルデータからアナログ電圧を生成できます。
4.3 DACを使用した簡単な波形生成¶
実践演習¶
- PWMを使用したLED輝度制御
- 複数のLEDを使用した光のグラデーション効果の作成
-
ポテンショメータを使用したLED輝度の手動制御
-
アナログセンサーデータの読み取りと処理
- 光センサーを使用した周囲の明るさの測定と表示
-
温度センサーのデータを使用した簡単な温度制御システムの実装
-
DACを使用した簡単な波形生成
- サイン波、三角波、矩形波の生成と可視化
- 音声信号の簡単な合成と出力
graph TD
A[アナログセンサー] -->|ADC| B[Arduino UNO R4 WiFi]
B -->|処理| C{出力選択}
C -->|PWM| D[LED制御]
C -->|DAC| E[波形生成]
C -->|デジタル出力| F[ディスプレイ表示]
まとめ¶
この週では、タイマー/カウンタ、PWM、ADC、DACなど、アナログとデジタルの橋渡しとなる重要な概念と技術を学びました。これらの技術は、センサーデータの取得、モーター制御、信号処理など、多くの組み込みシステムアプリケーションで不可欠です。実践演習を通じて、これらの技術を実際のプロジェクトに適用する方法を習得しました。
参考資料¶
- Arduino公式ドキュメント: analogRead()
- Arduino公式ドキュメント: analogWrite()
- 「Arduino UNO R4 WiFi ではじめる電子工作」第7章, 第8章
- 「C++による Arduino プログラミング入門」第9章, 第10章