JH7UBCブログ

アマチュア無線 電子工作 家庭菜園など趣味のブログです

Arduino UNO R4 (WiFi) DAC テスト

2024-02-28 10:18:24 | Arduino
 Arduino UNO R3では、analogWrite()でPWMを出力して疑似アナログ出力としていますが、Arduino UNO R4(WiFi)には、独立したDACが内蔵されています。

 DACの分解能は12bitですが、analogWriteResolution()でビット数を指定することができます。この関数でDACの分解能を指定することによりDACが使用可能になります。出力先はA0です。


 まず、テストとしてDAC out(A0)に分解能10bitで、1023の値で出力してみます。次のスケッチを書き、コンパイル書き込みをします。
----------------------------------------------
void setup(){
analogWriteResolution(10);
analogWrite(DAC,1023);
}

void loop(){}
----------------------------------------------
出力された電圧です。4.76Vでした。


 次に、分解能を12bitにして、同じ値1023をDACで出力してみます。
----------------------------------------------
void setup(){
analogWriteResolution(12);
analogWrite(DAC,1023);
}

void loop(){}
----------------------------------------------
当然ですが、1/4の値1.19Vが出力されました。


 次にDACの出力電圧を変化させて、鋸歯状波を作ってみます。
 スケッチです。分解能は10bitで、0~1023の値を連続して出力します。
----------------------------------------------------
void setup() {
analogWriteResolution(10);
}

void loop() {
for(int i=0;i<1024;i++ ){
analogWrite(DAC,i);
}
}
----------------------------------------------------
 出力された波形です。周波数は97Hzです。

 かなりギザギザした鋸歯状波(ノコギリ波)が出力されました。


 分解能を12bitにして、0~4095の値をDACから出力してみた時の波形です。
 周波数は24Hzです。



 スケッチ例にある「SineWave.ino」を書き込んで出力波形を見てみました。
 周波数は、約290Hzです。




最新の画像もっと見る

コメントを投稿