EEPW论坛

这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 试用MCP4725数模转换模块生成正弦波---利用正弦函数处理

共1条 1/1 1 跳转至
1512054

试用MCP4725数模转换模块生成正弦波---利用正弦函数处理

专家
2025年10月11日 13:13:23 打赏

在以正弦函数方式使MCP4725生成正弦波的时候,要注意一点,就是转换值。对于12位的DAC,器最大处理值为2^12=4096,对正弦函数,其值得范围对应0〜360度为0 →1→0→-1→0,而DAC转换不存在负数问题。因此需要把正弦波的值抬高到0以上,这样对正弦函数的输出值0 →1→0→-1→0,转换为1 →2→1→0→1。那么就不能使用4096这个值作为幅度处理,而只能使用2048。

程序代码如下:

/**************************************************************************/
/*!
  ESP8266  -------- MCP4725
  ===========================
  D1(SCL)       SCL
  D2(SDA)       SDA
*/
/**************************************************************************/
#include <Wire.h>
#include <Adafruit_MCP4725.h>
Adafruit_MCP4725 dac;
void setup(void) {
 Serial.begin(115200);
 Serial.println("Hello!");
 dac.begin(0x60);
 Serial.println("Generating a sine wave");
}
void loop(void) {
  int16_t i;
  for (i = 0; i < 360; i++) {
   //Serial.println(sin(2*3.1415926/360*i));
   dac.setVoltage((int16_t)(2048 * (sin(2*3.1415926/360*i)+1)), false);
  }
}

输出波形:

图片1.png

效果也很好。在上记代码中,采样点是以1度执行的,可根据自己的需要调整,非常方便,不比预先准备采样点数据。可见使用正弦函数,极大地简化了代码。




关键词: 大懒猫的试用笔记 MCP4725 正弦波

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]
-

嵌入式开发

STM32

MCU

FPGA

软件与操作系统

RISC-V

国产MCU

-

综合技术

电源与模拟

通讯及无线技术

工业控制与自动化

物联网技术

PCB与EMC

测试测量

智能新技术

基础知识

-

DIY与开源设计

电子DIY

开源硬件

设计工具

-

行业应用

汽车电子

机器人开发

-

活动中心

板卡试用

研讨会

下载专区

合作大赛

视频专区

有奖活动

-

高校专区

毕业设计专区

竞赛辅导

坤创E-Geek/天科大新电社

漓东e学堂

周师电子设计创新社区

岭南EE码农港

湖北理工TEA

东师科技爱好者

-

休闲专区

话题讨论

我爱工作

我爱生活

-

企业专区

OpenVINO生态社区

英飞凌

ADI

Xilinx

TI

Mouser

Microchip

贝能国际

Atmel

GD32

Linear

Renesas

Cypress

机智云Gizwits

Micron

-

论坛服务

投诉与建议

论坛公告








AltStyle によって変換されたページ (->オリジナル) /