​

         看了一个模拟量输入以及输出的例子,实现了AD的采集以及AD的输出。原理图如下:

466_Arduino模拟输入与模拟输出例程调试分析_github

         比较简单,就是一个变阻器实现一个分压的AD采集,然后还有一个可以输出AD量的管脚控制一个LED的亮度。

466_Arduino模拟输入与模拟输出例程调试分析_软件设计_02

         软件实现其实没什么可以分析的,实现了一个LED亮度跟随电压采集变化的功能。同时,通过串口输出了电压测试的数据以及接下来的输出数值。

         其实,这里有一个map函数,实现了一个线性的转换。以往,我做这样的软件设计的时候都是第一个宏定义处理一个固定的因子就完成了,想来可读性以及可复用性比这种方式还是差一些。后面,如果我再用到这样的转换的时候倒是可以参考一下这个简单的实现方式。Map函数虽然没有给出实现方式,应该是在库函数中包含了。但是,其实现机理很容易考虑到。

         我手头正好有各种元器件,简单调试了一下这个程序,功能运行还是挺顺利的。