本帖最后由 弘毅 于 2017-5-24 12:59 编辑
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就是基准源上限。
- }
复制代码
输出正弦波
- #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输出
- }
- }
复制代码
|