ESP32は、2つの8ビットDAC(デジタル・アナログ・コンバータ)を内蔵しています。DAC1とDAC2です。
DAC1はGPIO25に、DAC2はGPIO26に接続されています。
DACに出力する関数は、dacWrite(pin,value);で、pinはGPIO番号(25か26),valueは8ビットですから0~255です。
まず、dacWrite(25,255);で出力した場合の出力電圧です。
dacWrite(25,127);の場合
dacWrite(25,0);の場合
次に、正弦波を作ってみます。スケッチです。
-------------------------------------------
/*
* ESP32 DAC sin wave generator
* 2020.01.14
* JH7UBC Keiji Hata
*/
* ESP32 DAC sin wave generator
* 2020.01.14
* JH7UBC Keiji Hata
*/
float i = 0.0;
void setup() {
}
}
void loop() {
dacWrite(25,128+128*sin(i));
i += 0.1;
if(i >= 6.28){
i = 0;
}
}
dacWrite(25,128+128*sin(i));
i += 0.1;
if(i >= 6.28){
i = 0;
}
}
-------------------------------------------
ADCから出力された波形です。
ギザギザになりますが、まずまずの正弦波です。
周波数は、974Hzでした。