740浏览
查看: 740|回复: 0

[入门] Ardunio UNO 2 ~模拟接口

[复制链接]
一、模数转换(analogue-to-digital conversion;ADC)
   
    模拟信号(Analogue signal)是指用连续变化的物理量表示的信息,其信号的幅度,或频率,或相位随时间作连续变化,或在一段连续的时间间隔内,其代表信息的特征量可以在任意瞬间呈现为任意数值的信号。
   
    数字信号(Digital Signa)指自变量是离散的、因变量也是离散的信号,这种信号的自变量用整数表示,因变量用有限数字中的一个数字来表示。在计算机中,数字信号的大小常用有限位的二进制数表示。


  模数转换(analogue-to-digital conversion;ADC):模拟信号只有通过A/D转化为数字信号后才能用软件进行处理,这一切都是通过A/D转换器(ADC)来实现的,模拟信号转换成数字信号的过程就是 模数转换。


MonMarch-202103156607..png


二、Arduino如何做模数转换


   常见的Arduino UNO板,有6个专门用于AD转换的引脚(A0-A5),任何传感器,输出的模拟信号是电压或电流信号;UNO板可以将电压信号转换为用10bit表示的数值;把传感器接到模拟口,它的返回值就是模拟信号转换的数字值,这个数值占10bit,也就是说模数转换的最大值是1023(二的十次方减一)代表5V,最小值是0代表0V此时读到的数值会被转换为0到1023之间。
MonMarch-202103159239..png




三、入门案例


函数analogRead(val)1.模拟口读取温度传感器电路连接图
MonMarch-202103155126..png


  1. <font size="3">void setup()
  2. {
  3.   pinMode(A0, INPUT);
  4.   Serial.begin(9600);
  5. }
  6. void loop()
  7. {
  8.   Serial.println(analogRead(A0));
  9.   delay(10); // 延时
  10. }</font>
复制代码


2 旋转电阻控制led灯
电路连接图
MonMarch-202103157631..png


参考代码
  1. <font size="3">void setup()
  2. {
  3.   pinMode(A0, INPUT);
  4.   Serial.begin(9600);
  5.   pinMode(9, OUTPUT);
  6. }
  7. void loop()
  8. {
  9.   Serial.println(analogRead(A0));
  10.   analogWrite(9, map(analogRead(A0), 0, 1023, 0, 180));//把模拟口读取数据值映射为0-180
  11.   delay(10); // 延时
  12. }</font>
复制代码



更多详细知识
https://www.arduino.cc/reference/en/language/functions/analog-io/analogread/

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2022 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail