极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 16270|回复: 5

不知道是不是arduino的bug

[复制链接]
发表于 2016-12-11 13:16:46 | 显示全部楼层 |阅读模式
从两个ADC管脚读取电压。其中一个用DEFALIT的方式读取,另外一个用INTERNAL方式。类似这样的代码:

analogReference(INTERNAL);
v = analogRead(6);
Serial.println(v);

analogReference(DEFAULT);
analogRead(other);

INTERNAL方式读取的数据输出类似这样:
160
715
160
715
162
160
160
715

其中很多数据是不对的,比如160是不对的。但如果关掉后面的DEFAULT开关,数据就都正确了。
请问这是什么问题?在一个Arduino的程序中不能同时用两种ADC方式读取吗?
回复

使用道具 举报

发表于 2016-12-12 08:16:09 | 显示全部楼层
你还是看看analogReference这个函数吧  DEFAULT INTERNAL的参考电压都不一样 160/1.1*5=727
回复 支持 反对

使用道具 举报

发表于 2016-12-12 08:57:50 | 显示全部楼层
路过  感觉当你怀疑的时候 真的应该去看看函数定义
回复 支持 反对

使用道具 举报

发表于 2016-12-12 08:58:06 | 显示全部楼层
路过  感觉当你怀疑的时候 真的应该去看看函数定义
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-14 23:24:36 | 显示全部楼层
本帖最后由 seagatecm 于 2016-12-14 23:27 编辑

也许我没说清楚吧。
我是两个ADC读取,一个用DEFAULT,一个用INTERNAL。
DEFAULT方式读取的数据完全正常,而INTERNAL读出的数据有错有对。
我看过analogReference的函数定义,我就是要使用他不同的参考电压读数,所以专门这么使用的。

INTERNAL和DEFAULT在使用中是可以切换的对吧,所以我才奇怪用内部参考电压的这个脚,为什么会读出一些不正确的数据。

不过文档里面这么写
Alternatively, you can connect the external reference voltage to the AREF pin through a 5K resistor, allowing you to switch between external and internal reference voltages.

我用的MINIPRO,AREF上面连的是个0.1uf的电容,是必须要用电阻,才能切换吗?
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-10 01:20 , Processed in 0.034797 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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