翻出早年买的几颗 TLC5615,无聊想试试性能怎么样,测试结果比只ESP32自带的DAC快一点点,但是比 ESP32 的8位 DAC 精度高些,是10位的。

下面这种叫 DIP封装,可以方便插在面包板上实验。

实验步骤:

用到硬件:ESP32 、TLC5615、示波器、面包板 以及几条线。

1. TLC5615 连线如下:

Vdd 和 AGND ---------------- 5V电源,可由ESP32提供。

Out  和 AGND ---------------- 输出,可接示波器或万用表观察输出电压的变化。

三个数据引脚  -----------------  按下面程序连接普通数字引脚,不同的单片机改改即可。

REFIN --------------------------  外接参考电压,不接不行 !

通常要求是 Vcc/2, 这样输出范围是 0 ~ 2x REFIN ,即 0 ~ Vcc.

如Vcc是5V,可以由 TL431 这类的 2.5v 电压基准器件提供,或者Vcc接电阻分压。

本次测试为了省事,接 ESP32 GPIO25(DAC输出),比较方便获得了 Vcc/2 。

如没有以上条件,临时调试程序也可以把 REFIN 接到 Vcc,不过512以上的输出限幅。

DOUT --------------------------  这里只用到单个TLC5615 芯片,不接。

2. 软件:Arduino IDE, TLC5615 库

下载的库居然是错的,出来的波形怪怪的。

啃一下PDF后,写成下面的DAC函数就可以用了,关键就是 data & 0x0200 这句。

3. 下面程序写入 ESP32 即可在示波器上看到正弦波

#define DIN_Pin  22
#define SCLK_Pin 19
#define CS_Pin   23float Pi = 3.1416;
int   i = 0;
int   slice = 60;             // 766Hz
int   output;void setup() {Serial.begin(115200);dacWrite(25,127);           //8 位DAC, 127 输出 Vcc/2 给Ref, TLC5615输出范围: 0 ~ Ref x2pinMode(DIN_Pin,OUTPUT);pinMode(SCLK_Pin,OUTPUT);pinMode(CS_Pin,OUTPUT);
}void loop() {output = 511*(sin( i * 2 * Pi/slice)+1);  TLC5615_Convert( output );                     i++; if ( i >= slice) i = 0;
}void TLC5615_Convert(unsigned int data)
{digitalWrite(CS_Pin, LOW);        // DAC startfor ( int i=0; i<12; i++)         // 共传输12位,仅前10位有效,后两位任意{if (data & 0x0200) digitalWrite(DIN_Pin, HIGH); // 10位 max:0x03FF ,最高位为1 = 0x200 , (data & 0x0200)取最高位值      else digitalWrite(DIN_Pin, LOW);         digitalWrite(SCLK_Pin, HIGH);   digitalWrite(SCLK_Pin, LOW);data <<= 1;                     // 向左位移1位,也可以写为:data = data<<1}digitalWrite(CS_Pin, HIGH);       // DAC end
}

Arduino + TLC5615相关推荐

  1. AVR开发 Arduino方法(附四) 参考文献与网址

    1. 参考文献 [1] Arduino 魔法书:实现梦想的工具和技术. Jeremy Blum, 电子工业出版社, 2014 [2] Arduino高级开发权威指南. Steven F.Barrett ...

  2. Arduino学习笔记1---开发环境搭建

    主要内容:(一). Arduino IDE的下载及安装 (二). Arduino IDE的应用 (三). Arduino的程序结构 (四). Arduino程序的编译及下载 (一). Arduino ...

  3. 和12岁小同志搞创客开发:手撕代码,Arduino IDE 软件下载和环境搭建

    目录 1.软件下载 2. 软件安装 3.环境搭建和使用 机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_3810 ...

  4. 串口监视软件_ESP32 Arduino教程:软件重置

    简介 该esp32 arduino教程旨在解释如何使用Arduino核心在ESP32开发板上执行软件重置. 本ESP32教程的测试是使用集成在ESP32开发板中的DFRobot的ESP-WROOM-3 ...

  5. 【从零开始的ROS四轴机械臂控制】(七)- ROS与arduino连接

    从零开始的ROS四轴机械臂控制(七) 十.ROS与arduino连接 1.虚拟机与arduino的连接 (1)arduino连接与IDE (2)PCA9685模块支持与测试 2.ROS与arduino ...

  6. 【Arduino】开发入门教程【一】什么是Arduino

    Arduino Arduino 是一款便捷灵活.方便上手的开源电子原型平台,包含硬件(各种型号的arduino板)和软件(arduino IDE).它适用于艺术家.设计师.爱好者和对于"互动 ...

  7. arduino跑python,尝试在我的Arduino和stu上执行Python3.7.2中的代码

    提前谢谢你.在 我会尽量简短.在 我有一个Arduino+IDE,有一个串行端口,工作正常. 我下载了python3.7.2.PySerial和VPython. 全部安装完毕.在 通过我的MacBoo ...

  8. arduino点阵声音频谱_基于Arduino和频谱分析的LED音乐课节拍器

    摘要: 音乐课上,学习乐器或者唱歌的学生都需要节拍器来练习稳定速度和节奏.而传统的节拍器主要是机械构造,只拥有稳定的速度,发出"嘀嗒嘀嗒"的节拍声.但是,人类最敏锐的感官是视觉,设 ...

  9. arduino下载库出错_【arduino】DIY音乐播放器,arduino播放wav音乐,TRMpcm库测试及使用...

    微信关注 "DLGG创客DIY"设为"星标",重磅干货,第一时间送达. arduino特点库超多,想必大家都领教了,今天来分享一下之前玩过的TRMpcm库. 这 ...

最新文章

  1. 【转帖】SQLServer登录连接失败(error:40-无法打开到SQLServer的连接)的解决方案...
  2. mysql 原理 ~ DDL之在线DDL
  3. lovely desktop
  4. python能处理多大的数据-Python 适合大数据量的处理吗?
  5. Eclipse常用功能键
  6. Service Mesh 是什么,我们为什么需要它?
  7. java 解析csv 乱码_Java采用opencsv解析csv文件以及解析中文乱码问题
  8. std::bind绑定成员函数,为什么第二个参数必须绑定对象地址
  9. java基础JDK的安装和环境变量的配置
  10. Consul集群搭建
  11. 使用display:none和visibility:hidden隐藏的区别
  12. Junit Test使用样例
  13. 又一个脑洞实现了!索尼将推出穿在身上的空调:夏日出门必备
  14. linux删除更新的系统内核,Linux系统如何删除旧内核
  15. Flink Table和SQL的基本API
  16. C# 从磁盘中读取文件
  17. 谷歌翻译API-python接口-Googletrans
  18. Java 表格文字垂直居中_itextpdf中表格中单元格的文字水平垂直居中的设置
  19. 【读过的书】《蔡康永的说话之道》
  20. Gephi简易学习[一]———— Gephi安装,并了解Gephi

热门文章

  1. 杰理之微信语音使用耳机录音下,录音出来的语音开头有1s左右的滋滋声【篇】
  2. 量化投资学习——算法交易
  3. 昨晚在公司附近遇到两个行骗的女孩---大家要提高警惕啊, 这年头, 坏人特别多
  4. 学院期中考试错题改错
  5. 小米小爱音箱Pro8安装app_买助手,送音箱,还送平板?小米小爱触屏音箱pro 8轻体验...
  6. 投影仪怎么选好坏?投影仪哪个品牌好
  7. 开发消费Linux桌面系统困难重重
  8. Ubuntu 环境 中 python读取和保存 .txt 、.csv、.json文件数据并绘制图形
  9. 项目实战——产品设计
  10. 人与人之间的信任 无信不交往,守信方长久