ALPHA 8F328P具有一路8位DAC,我们介绍一下,怎样使用DAC。
需要注意的是,ADC和DAC使用的是同一个基准源,如果你改变基准源的话是两个所参考的基准源同时改变。
输出一个固定电压值
int dac = 4; //定义dac管脚 void setup() { pinMode(dac, ANALOG); //初始化dac管脚为模拟输出模式 analogReference(INTERNAL2V048); //设置基准源为2.048内部基准 } void loop() { analogWrite(dac, 100); //DAC是8位精度,范围是0-255。255就是基准源上限。计算公式为:2048/256*100 }
输出正弦波
#define PI 3.1415926535897932384626433832795 //定义常数π void setup() { pinMode(4, ANALOG); //配置DAC输出 analogReference(INTERNAL4V096); //内部基准源4.096V } void loop() { for(float i=0;i<=2;i=i+0.01) //起始点为0,终止为2π,采样率为0.01 { float rad=PI*i; float Sin=sin(rad); long intSin=Sin*300; //将数据放大300倍,取整数 byte val=map(intSin,-300,300,0,255); //映射至8位DAC精度 analogWrite(4, val); //DAC输出 } }