概述

常见的AVR单片机内都包含一个温度传感器,用于监测异常高温,便于通过编程为单片机提供保护。

用于Arduino主控芯片的常见的AVR单片机列表如下:

MCU 是否内嵌温度传感器
ATmega8 No
ATmega8L No
ATmega8A No
ATmega168 No
ATmega168A Yes
ATmega168P Yes
ATmega328 Yes
ATmega328P (Arduino UNO\MiNi\Pro MINI) Yes
ATmega1280 (Arduino Mega) No
ATmega2560 (Arduino Mega 2560) No
ATmega32U4 (Arduino Leonardo) Yes

通过上表可以看出:常用的Arduino UNO可以作为临时温度传感器使用。
今天的实验,我们就通过编程来读取ATmega328P内部温度计的读数。


实验分析

由于通电电阻的热效应,只有刚开机时AVR单片机的温度才是室温,随后随着MCU工作产热,温度会有上升。

程序里提供的温度单位是摄氏度,由串口监视窗口显出,准确性依赖于GetTemp函数里t的线性转换公式,你可以改变104.31这个数来校准读数。


实验代码

    // Internal Temperature Sensor// Example sketch for ATmega328 types.void setup(){Serial.begin(9600); Serial.println(F("Internal Temperature Sensor"));}void loop(){// Show the temperature in degrees Celcius.Serial.println(GetTemp(),1);delay(1000);}double GetTemp(void){unsigned int wADC;double t;// The internal temperature has to be used// with the internal reference of 1.1V.// Channel 8 can not be selected with// the analogRead function yet. // Set the internal reference and mux.ADMUX = (_BV(REFS1) | _BV(REFS0) | _BV(MUX3));ADCSRA |= _BV(ADEN); // enable the ADC delay(20); // wait for voltages to become stable. ADCSRA |= _BV(ADSC); // Start the ADC // Detect end-of-conversionwhile (bit_is_set(ADCSRA,ADSC)); // Reading register "ADCW" takes care of how to read ADCL and ADCH.wADC = ADCW; // The offset of 324.31 could be wrong. It is just an indication.t = (wADC - 104.31 ) / 1.22; // The returned temperature is in degrees Celcius.return (t);}

参考文档

Atmel官方校准AVR内部温度的参考文档
一篇与本文相关的技术文档
一些测量确定偏移量和获得
内部温度传感器可以用作一个随机数种子


    感谢一直关注着禾灮成长进步的朋友们。你们的信任、支持和鼓励,鞭策着我们一路走到了今天。感谢所有的合作伙伴,我们相互促进,共同见证了彼此的成长。感谢所有曾经在禾灮彼此倚靠、相互鼓励、携手同心、砥砺同行的兄弟姐妹。这里承载了我们的青春与热血。禾灮,感谢有你。未来,我们将一如既往,砥砺前行。禾灮·小楊2018.07.20

ATmega328芯片-“变身”-温度计-,附示例教程相关推荐

  1. M1芯片Mac安装达芬奇17闪退安装不了,怎么办?达芬奇17直装优化版支持big sur/M1芯片处理器 详细的安装教程+中英文设置方法

    达芬奇调色软件DaVinci Resolve Studio 17是Blackmagic Design 旗下一款著名的调色软件,也是世界上唯一一款将专业8K编辑,色彩校正,视觉效果和音频后期制作功能集于 ...

  2. php 构造函数 链接数据库,构造函数在php中的使用方法(附示例)-php教程

    php中的结构函数 正在PHP里,假如你不手写结构函数,则php正在实例化这个工具的时分,会主动为类成员和类办法进行初始化,调配内存等工作,然而有些时分不克不及餍足咱们的要求,比方咱们要正在工具实例化 ...

  3. python中pickle模块的用法_Python中json模块和pickle模块的简单介绍(附示例)

    本篇文章给大家带来的内容是关于Python中json模块和pickle模块的简单介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. Python中的json模块和pickl ...

  4. mysql查看用户名_Mysql创建数据表的方法介绍(附示例)

    本篇文章给大家带来的内容是关于Mysql创建数据表的方法介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 数据表是数据库最重要的组成部分之一,是其他对象的基础.如果我们的 ...

  5. 微软Windows 11正式发布!(附安装教程)

    如此前预告,微软官方宣布,Windows 11正式版于今日(10月5日)全面上市. Windows 11现在已经正式可以下载了.虽然微软之前宣布将于10月5日在全球范围内推出搭载Windows 11的 ...

  6. c52传感器温度显示c语言编程,基于STC89C52的数字温度计 附C语言代码.doc

    基于STC89C52的数字温度计 附C语言代码 <数字显示温度计>论文 学校: 华侨大学 学院: 信息科学与工程学院 班级:10级 集成电路设计与集成系统 组别: 自控06组 组员:*** ...

  7. mysql创建数据表示例_Mysql创建数据表的方法介绍(附示例)

    本篇文章给大家带来的内容是关于Mysql创建数据表的方法介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 数据表是数据库最重要的组成部分之一,是其他对象的基础.如果我们的 ...

  8. mongodb安装失败与解决方法(附安装教程)

    mongodb安装失败与解决方法(附安装教程) 参考文章: (1)mongodb安装失败与解决方法(附安装教程) (2)https://www.cnblogs.com/liuda-page/p/922 ...

  9. python同步异步_python中Tornado的同步与异步I/O的介绍(附示例)

    本篇文章给大家带来的内容是关于python中Tornado的同步与异步I/O的介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 协程是Tornado种推荐的编程方式,使用 ...

  10. java final 实例_Java中final实现原理的深入分析(附示例)

    本篇文章给大家带来的内容是关于Java中final实现原理的深入分析(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. final在Java中是一个保留的关键字,可以声明成员变 ...

最新文章

  1. pytorch 随机打乱
  2. 高效学习,战胜拖延症
  3. java字母反过来_java之字母反转~~ - Plight - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  4. 给定三角形 ABC 和一点 P(x,y,z),判断点 P 是否在 ABC 内,给出思路并手写代码
  5. association in CDS view is converted to LEFT OUTER MANY TO ONE JOIN in the runtime
  6. python操作文件和目录_python文件和目录操作方法
  7. 什么是Redis的VM机制
  8. Android LED电子表时钟字体digital font
  9. m4s格式转换mp3_AnyMP4 MP3 Converter for Mac(音视频mp3格式转换工具)
  10. 腾跃英语计算机学院微信公众号,英语四级报名_微信还能这么玩:Geek大学生搭建英语课堂互动系统_沪江英语...
  11. java计算机毕业设计基于安卓/微信小程序的个人健康打卡系统
  12. Node Express框架快速入门教程
  13. 2017杭州云栖大会精华PPT
  14. mysql 存储过程 if !=_mysql 存储过程 if !=
  15. 2017陕西省网络空间安全技术大赛_Crypto_crypt1_Writeup
  16. 解决:U盘无法安装到这个磁盘选中的磁盘具有MBR分区表
  17. 筛法打印质数表【附:100000以内质数表】
  18. 用计算机画画的优质课,小学信息技术优质课和画图工具教案.doc
  19. 基于java大学生就业信息管理系统
  20. ios .mm文件调用c语言函数报错,深入浅出 iOS 编译

热门文章

  1. 一场农业“人机”对战,能否凿开农村致富新门路呢?
  2. 梦幻古龙服务器系统,【梦幻XY单机服务端】梦幻古龙一键安装客户端+附搭建安装教程...
  3. 数据中心建筑及装修施工工序工艺管理要点
  4. lgg7刷机包下载_LG G7 恢复Download回官方。
  5. 暴风影音- C++研发工程师(windows方向-在线视频)
  6. Android建快捷方式app,创建快捷方式最新版下载-创建快捷方式appv1.17 安卓版-腾牛安卓网...
  7. Java学习资料--网盘分享
  8. unity开宝箱动画_如何用PPT打造一个「开启宝箱」的动画?
  9. 红米K40 Pro的root步骤(MIUI12.5 稳定版 安卓11)
  10. UCRT: VC 2015 Universal CRT, by Microsoft