一、概念和原理
江科大和小蜜蜂都没有讲PCF8591,那咋办,只能随便找个视频看看代码原理,毕竟此次实验只需要在已经给好的iic文件里面写两个函数就可以实现我们的目的了。
原理图


咱们多积累知识点,就算现在记住回头立马忘记都没关系。
说明:1.这个采样速率这样取决于是比较慢的,适用于对速度要求不高的地方,比如电池电压之类的;
2.俩种模式可灵活配置。

单端输入是一种信号传输方式,它涉及单个信号端和另一个参考点或公共参考点(通常是接地)。单端输入的一个关键特点是所有输入信号都共享同一个参考点,这个参考点可以是地平面。当信号从信号源传递到接收器时,它们都是相对于同一参考点的电压水平。
相比之下,差分输入则每个信号都有一个专用的参考点,通常是信号的两条线路之间的电压差。这种方式可以更好地抵抗共模噪声的影响,因为差分输入的两个信号线在受到干扰时会同时受到影响,而电压差的相对变化较小。
3.这个其实上一章也讲过,就是高四位地址是固定的,有A0~A2三位地址给你编址。

现在开始正式讲写代码过程中要知道的依据。
第一步是start,第二步就是下面这个从机地址。

说明:1.组成依旧是固定的高四位和自己编的后三位和读写位;
2.不过可编程的三位A一般都是用不到的,置0,合起来就是0x90,即寻址+W(0)
或者0x91,即寻址加(R)。
第三步是应答,第四步就是发送控制字,让从机知道我们要干什么。


说明:1.这是芯片资料,高四位和低四位的最高位都是0,不用关心;
2.再讲第六位,在介绍的最下面那行,大概就是说模拟输出,也就是说要使用DA的话,这一位就要置1,否则置0;我们在写DAC函数就是要置1,但是ADC函数中也要置1,因为要先数模DA转换数据,告诉小明是什么问题之后,才能回答问题,进行模数AD转换;
3.第四位和第五位就是设置咱们的模式,00就是单端模式,剩下三种就是我们三种差分模式(全差分,单端和差分,俩种不同的差分),我们这次使用的就是00模式,比较简单。
4.第二位就是自动增量位,假如你选了00这四个通道的AD转换,在我们给出命令字之后,芯片就要读出AD转换结果了,我们读出一个结果之后,这个自动增量位会帮我们自动切换到下一个通道读出下一个结果留到下一次使用,所以我们当前读到的都是上一个通道的得到的结果。这次我们不用这个,给0。
5.最后俩位就是给你选择哪个通道用的,资料里面也标明了。
至此,学习完上面的知识,就能看得懂别人的代码是啥意思了。
二、题目

三、手写代码
一、框架
(main、close、Delay三个文件)(此处延时100毫秒的依据作者暂时没理解,以后有机会会补充)

二、今天的主角

上图顺序依据和地址依据(高四位固定是9最后一位是W(0)R(1))



依据(看不懂可以去看AT24C02)
比赛时记不住顺序的可以去查芯片资料文件夹,找AT24C02的

三、结尾
(作者以后理解问号那里会告诉你们
)
实现现象:电压保持1.53不变,光敏那里,用手遮挡会降低数值

至此,我们对数模转换模块PCF8591就有了初步了解,但是还有很多需要我们去学,挺有趣的,读者记得默写一遍自己实现实验现象的代码!

4707

被折叠的 条评论
为什么被折叠?



