极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 14760|回复: 6

arduino 读取内部温度传感器.

[复制链接]
发表于 2015-6-25 13:15:45 | 显示全部楼层 |阅读模式
本帖最后由 帕米 于 2015-6-26 17:47 编辑

在看datasheet. 发现MCU居然还带温度测量. 精确度为 +/- 10°C.(好吧! 这误差.... 总比没带强...) , 还有随着驱动 IO电流变大时.温度会跟着往上飘.

有内部温度传感器的 AVR 芯片:
  • ATmega168A : Yes
  • ATmega168P : Yes
  • ATmega328 : Yes
  • ATmega328P : Yes
  • ATmega1280 (Arduino Mega) : No
  • ATmega2560 (Arduino Mega 2560) : No
  • ATmega32U4 (Arduino Leonardo) : Yes


硬件: 1  arduino 328P + 1 USB线. 其它无..

tips: 先确定所在的环境温度,再慢慢修正 偏移量,

不得不提一下, 这次的 arduino IDE 1.6.5 版本更新的不错.. Linux 版本.  字体比以前好看多了. 还能写中文注释.. 括号匹配时还带个动画一跳一跳的. {:soso_e142:}

Code...

[pre lang="arduino" line="1" file="ReadInternalTemperature"]
double getTemp(void) {
  uint16_t wADC;
  double t;

  // 设置内部参考电压 1.1 和选择多路复用  ADC8 (AVR内部温度传感器)
  ADMUX = (_BV(REFS1) | _BV(REFS0) | _BV(MUX3));
  ADCSRA |= _BV(ADEN);  // 使能 ADC 功能

  delay(20);            // 等待 AREF 电压变得稳定。

  ADCSRA |= _BV(ADSC);  // 开启 ADC 转换

  // 检测ADC转换结束
  while (bit_is_set(ADCSRA,ADSC));

  // 读寄存器值
  wADC = ADCW;
  //Serial.println(wADC);
  // 偏移量 324.31 可能是错的, 它是只是例子。 可以先确定所在的环境温度,再得出偏移量
  t = (wADC - 320.31) / 1.11;

  // 返回摄氏度
  return (t);
}

void setup() {
  Serial.begin(9600);
  Serial.println("Arduino Internal Temperature Sensor.");
}

void loop() {
  // 显示温度
  Serial.println(getTemp(), 1);
  delay(1000);
}[/code]


山寨以下..
http://playground.arduino.cc/Main/InternalTemperatureSensor

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2015-6-26 21:21:41 | 显示全部楼层
我也试一下
回复 支持 反对

使用道具 举报

发表于 2015-6-26 19:12:19 | 显示全部楼层
这个误差 基本上也可以忽略了
要知道一般芯片工作温度区间也就是-20°C-90°C 误差居然能达到+/-10°C 你确定这个温度不是猜出来的?
感觉比人手感知还不靠谱
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-26 17:40:51 | 显示全部楼层
疲倦的黄昏 发表于 2015-6-26 11:09
厉害。。。

回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-26 17:39:06 | 显示全部楼层
jikecyatmcn 发表于 2015-6-25 19:12
居然还有这功能

呵呵, AVR还是挻强大的.
回复 支持 反对

使用道具 举报

发表于 2015-6-26 11:09:46 | 显示全部楼层
厉害。。。
回复 支持 反对

使用道具 举报

发表于 2015-6-25 19:12:14 | 显示全部楼层
居然还有这功能
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-16 14:10 , Processed in 0.038875 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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