极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 19454|回复: 7

OCROBOT入门教程006--ADC功能介绍

[复制链接]
发表于 2014-4-24 19:39:09 | 显示全部楼层 |阅读模式
本帖最后由 董董soul 于 2016-10-27 10:51 编辑

ADC学名模拟数字转换器(英语:Analog-to-digital converter)是用于将模拟形式的连续信号转换为数字形式的离散信号的一类设备。简单地说就是可以把模拟电压转换为数字形式的设备。

在我们各种电子制作中,只要涉及到模拟量采集的都会用到ADC,采集电压就不用多说,ADC就是专业做这个的。采集电流我们也是通过采集电流通过特定电阻时所产生的电压,来推算出来通过的电流。

MANGO的ADC精度为10位,10位表示其精度是2的10次方,8位,16位等以此类推。


我们先介绍一下ADC使用中用到的函数

analogRead()
描述
从指定的模拟引脚读取数据值。 OCROBOT控制板包含一个6通道(Grape和Nano有8个通道,Mega有16个通道),10位模拟数字转换器。这意味着它将0至5伏特之间的输入电压映射到0至1023之间的整数值。这将产生读数之间的关系:5伏特/ 1024单位,或0.0049伏特(4.9 mV)每单位。输入范围和精度可以使用analogReference()改变。 它需要大约100微秒(0.0001)来读取模拟输入,所以最大的扫描速度约每秒10000次。
语法
analogRead(PIN)
参数
PIN:输入引脚(大部分控制板从A0到A5,Mini和Nano从A0到A7,Mega从A0到A15)读取数值
返回
从0到1023的整数值

上节课我们学习了串口输出,这节课我们就就使用串口输出ADC数值,把A0口获取的ADC数值通过串口输出到电脑上进行显示。

MANGO的ADC为10位,10位所表示2的十次方。也就是1024,因为最小数值为0,所以输出范围为0~1023。

代码如下

  1. void setup() {
  2.   // 初始化串口,设置波特率为9600
  3.   Serial.begin(9600);
  4. }


  5. void loop() {
  6.   // 从A0口获取模拟输入信息,放入变量sensorValue
  7.   int sensorValue = analogRead(A0);
  8.   // 串口输出变量sensorValue
  9.   Serial.println(sensorValue);
  10.   delay(200);        // 延时200毫秒
  11. }
复制代码

我们把代码下载好以后,打开串口监视器首先让他运行一下,然后把5V 3.3V GND接入A0,看看返回什么数值。连接方法如下图。









课后练习:
学习了怎样通过A0口获取ADC数值,我们接一根导线在A1口,通过A1口获取ADC数值,看看在悬空,用手触摸情况下读数有什么变化,想想为什么会这样。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2014-7-25 22:31:12 | 显示全部楼层
请问这个模拟图是用什么软件画的啊?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-7-25 22:32:53 | 显示全部楼层
Friday 发表于 2014-7-25 22:31
请问这个模拟图是用什么软件画的啊?

用frizting
回复 支持 反对

使用道具 举报

发表于 2014-7-25 22:34:27 | 显示全部楼层
弘毅 发表于 2014-7-25 22:32
用frizting

哦。。谢谢
回复 支持 反对

使用道具 举报

发表于 2014-11-20 12:00:14 | 显示全部楼层
为什么用手触摸情况下读数会一会儿1023,一会儿0?
回复 支持 反对

使用道具 举报

发表于 2016-3-2 18:02:03 | 显示全部楼层
本帖最后由 dongbao.wang 于 2016-3-3 11:48 编辑
弘毅 发表于 2014-7-25 22:32
用frizting


下载了Frizting,上手很容易。
有个问题,帖子中的这个MANGO是自己画的吗?我如何能把它导入Frizting的arduino元件库?
库里是UNO(Rev3),看起来远没有这个完整。
回复 支持 反对

使用道具 举报

发表于 2016-3-3 11:47:24 | 显示全部楼层
本帖最后由 dongbao.wang 于 2016-3-3 11:49 编辑
弘毅 发表于 2014-7-25 22:32
用frizting


请问用Frizting还能实现仿真模拟吗?
回复 支持 反对

使用道具 举报

发表于 2016-3-3 15:27:48 | 显示全部楼层
dongbao.wang 发表于 2016-3-3 11:47
请问用Frizting还能实现仿真模拟吗?

不可以哦!
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-26 21:54 , Processed in 0.046973 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表