极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: 迷你强

Arduino入门教程--第十七课--使用内部基准源进行ADC采样

[复制链接]
发表于 2012-9-16 23:06:30 | 显示全部楼层
本帖最后由 darkorigin 于 2012-9-16 23:15 编辑

了解了,谢谢。刚才弄错函数的意义了。哈哈。以为能调节端口的输出电压,呵呵 仔细阅读之后了解知识修改AD转换器的基准电压
回复 支持 反对

使用道具 举报

发表于 2012-9-17 20:07:20 | 显示全部楼层
本帖最后由 zcbzjx 于 2012-9-17 20:08 编辑

电压基准实际就是aref端电压,调用analogReference(INTERNAL); 后可以测量下aref电压变为1.1V左右,如果不调用aref应该是5V左右,不调用的情况下,可以在aref外接其他的基准电压。
回复 支持 反对

使用道具 举报

发表于 2012-9-19 21:18:57 | 显示全部楼层
好东西,顶~
回复 支持 反对

使用道具 举报

发表于 2012-9-25 20:35:43 | 显示全部楼层
顶啊,精彩教程
回复 支持 反对

使用道具 举报

发表于 2012-9-28 10:22:44 | 显示全部楼层
还是没明白~!如果用ocrobot mango自带1.1V基准源,那么温感器输入到模拟引脚的电源会是多少呢?
如果是5V那不是超过这个基准电源?会不会有危险呢?
回复 支持 反对

使用道具 举报

发表于 2012-9-28 10:29:30 | 显示全部楼层
额~!模拟口电压高于基准电压不会出现溢出什么的?看来我要好好补一补这方面的知识了
回复 支持 反对

使用道具 举报

发表于 2012-9-28 18:21:33 | 显示全部楼层
zhangdeyue1 发表于 2012-9-28 10:29
额~!模拟口电压高于基准电压不会出现溢出什么的?看来我要好好补一补这方面的知识了

大于等于基准电压值为1023
回复 支持 反对

使用道具 举报

发表于 2012-9-28 22:59:54 | 显示全部楼层
zcbzjx 发表于 2012-9-28 18:21
大于等于基准电压值为1023

基准电压为1.1V,如果测得的模拟口电压不管是2V,3V,4V,那输出结果都为1023?
回复 支持 反对

使用道具 举报

发表于 2012-9-29 08:03:51 | 显示全部楼层
zhangdeyue1 发表于 2012-9-28 22:59
基准电压为1.1V,如果测得的模拟口电压不管是2V,3V,4V,那输出结果都为1023?

大于等于基准电压值为1023
回复 支持 反对

使用道具 举报

发表于 2012-9-30 20:32:51 | 显示全部楼层
我在淘宝买的基准电压1.08V
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-10-5 08:22:34 | 显示全部楼层
ttyp 发表于 2012-9-30 20:32
我在淘宝买的基准电压1.08V

不太可能吧。。。这个基准源还是蛮准的。。。。检查下万用表
回复 支持 反对

使用道具 举报

发表于 2012-10-6 00:29:28 | 显示全部楼层
http://hacking.majenko.co.uk/mak ... readings-on-arduino

这篇文章可以参考一下。
摘录代码如下:
long readVcc() {
  long result;
  // Read 1.1V reference against AVcc
  ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
  delay(2); // Wait for Vref to settle
  ADCSRA |= _BV(ADSC); // Convert
  while (bit_is_set(ADCSRA,ADSC));
  result = ADCL;
  result |= ADCH<<8;
  result = 1125300L / result; // Back-calculate AVcc in mV
  return result;
}

unsigned int ADCValue;
double Voltage;
double Vcc;

Vcc = readVcc()/1000.0;
ADCValue = analogRead(0);
Voltage = (ADCValue / 1023.0) * Vcc;
回复 支持 反对

使用道具 举报

发表于 2012-12-15 11:13:49 | 显示全部楼层
darkorigin 发表于 2012-9-16 00:07
额 看到了
analogReference(INTERNAL); //调用板载1.1V基准源
这个函数可以让5V口变成1.1V 是么?谢谢 ...

analogReference(INTERNAL); //调用板载1.1V基准源
这个函数可以让5V口变成1.1V 是么?谢谢 ...??????这么个意思理解?
回复 支持 反对

使用道具 举报

发表于 2012-12-15 16:42:12 | 显示全部楼层
不是的,这个只是让ref端口的电压变为1.1v
回复 支持 反对

使用道具 举报

发表于 2012-12-16 17:09:42 | 显示全部楼层
yongyuan824 发表于 2012-12-15 11:13
analogReference(INTERNAL); //调用板载1.1V基准源
这个函数可以让5V口变成1.1V 是么?谢谢 ...??????这 ...

现在了解了,只是把AD/DA的基准电源降低,以增加精度.
回复 支持 反对

使用道具 举报

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

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

Archiver|联系我们|极客工坊

GMT+8, 2024-4-29 21:45 , Processed in 0.046126 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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