读取模拟电压(Read Analog Voltage)

本示例展示了如何读取模拟输入0脚的模拟信号,将来自analogRead()的值转换为电压,并打印输出到 Arduino Software (IDE)的串口监视器。

所需硬件

-    Arduino或者Genuino开发板

-    10k欧电位器

电路连接方式

AnalogReadSerial_BB.png (15.86 KB, 下载次数: 43)

2016-6-24 09:02 上传

使用三根导线将电位器连接到开发板。第一根导线从电位器外侧的一端连接到地。第二根导线从电位器外侧的另一端连接到5V。第三根导线从电位器的中间脚连接到模拟输入2脚。

通过转动电位器的旋转轴,你将改变电刷两侧的电阻值,该电刷与电位器中间的引脚相连。这样就可以改变中心引脚上的电压值。当中间引脚与连接5伏引脚之间的电阻接近于0时(同时另一侧引脚的电阻值接近于10k),中间引脚上的电压接近于5V。反之,中间引脚上的电压接近于0V。该电压就是你要读取的模拟电压作为输入信号。

Arduino开发板的微控制器内部有一个模拟数字转换器(analog-to-digital converter)的电路,可以读取这种变化的电压并将其转换成0到1023之间的数字。当电刷完全转向一侧时,引脚上的电压为0V,此时输入值为0。当电刷转向反方向时,引脚上的电压为5V,此时输入值为1023。当电刷在中间某个位置时,analogRead()将根据引脚分得的电压值成比例返回一个0到1023之间的数值。

原理图

AnalogReadSerial_sch.png (32.01 KB, 下载次数: 47)

2016-6-24 09:15 上传

代码

在下面的代码中,setup函数所做的唯一事情就是使用以下指令建立Arduino板和计算机的每秒9600数据位的串行通信:

Serial.begin(9600);

接下来,在代码的主循环,你需要建立一个变量来存储电位器的电阻值(大小在0到1023间,int数据类型);

int sensorValue = analogRead(A0);

若要想将该值从0-1023变成与引脚读取的电压相对应的范围内,则需要创建一个float型的变量,并且做一些数学运算。要将该值变到0.0到5.0之间,用5.0除以1023然后乘以sensorValue的值。

float voltage= sensorValue * (5.0 / 1023.0);

最后,你需要将这些信息打印输出到串口监视器,可以使用指令Serial.println()来实现。

Serial.println(sensorValue, DEC)

现在,当打开Arduino IDE上的串口监视器(通过点击窗口右上侧的类似放大镜的图标,或者按快捷键Ctrl+Shift+M),可以看到一串介于0.0 - 5.0之间的稳定数字流.当转动电位器时,这些数值也会立马跟着变化,与电位器的位置相对应。

/*

ReadAnalogVoltage

Reads an analog input on pin 0, converts it to voltage, and prints the result to the serial monitor.

Graphical representation is available using serial plotter (Tools > Serial Plotter menu)

Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.

This example code is in the public domain.

*/

// the setup routine runs once when you press reset:

void setup() {

// initialize serial communication at 9600 bits per second:

Serial.begin(9600);

}

// the loop routine runs over and over again forever:

void loop() {

// read the input on analog pin 0:

int sensorValue = analogRead(A0);

// Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):

float voltage = sensorValue * (5.0 / 1023.0);

// print out the value you read:

Serial.println(voltage);

}复制代码

arduino 读取模拟电压_【Arduino官方教程】基础示例(六):读取模拟电压相关推荐

  1. python中读取文件编码_[转载]python中使用文件的读取编码问题

    原文链接:https://www.cnblogs.com/qianboping/p/6524420.html 今天想写个程序合并文件的,以前一直觉得python的编码解码好烦,只要处理文件合并之类的都 ...

  2. python元胞自动机模拟交通_基于立体网格的放射性污染物扩散过程模拟与表达

    作 者 信 息 施加松1,余接情2,常芸芬1,童晓冲3 (1.防化研究院,北京 102205:2.中国矿业大学 环境与测绘学院,江苏 徐州 221116:3.信息工程大学,河南 郑州 450001) ...

  3. 计算机基础知识真题模拟7,计算机一级考试计算机基础及Photoshop应用模拟试题(7)...

    计算机一级考试计算机基础及Photoshop应用模拟试题 1.当给一个制作标志的时候,大多存成矢量图,这是因为:() 选择A矢量图颜色多,做出来的标志漂亮 选择B矢量图不论放大或是缩小它的边缘都是平滑 ...

  4. vue手机端回退_华为官方教程:以 P40 为例,鸿蒙 OS 2.0 Beta 版本回退到 EMUI 11 稳定版...

    12月16日,华为举行 HarmonyOS 2.0 手机开发者 Beta 活动.现场正式发布了 HarmonyOS 2.0 手机开发者 Beta 版本.同时,HarmonyOS 2.0 手机开发者 B ...

  5. cass读取dat文件_南方CASS教程+视频讲解+插件汇总,小白快速上手的测绘神器

    南方CASS教程+视频讲解+插件汇总,小白快速上手的测绘神器 自CASS软件推出以来,市场占有率遥遥领先,已经成为业内应用最广.使用最方便快捷的软件品牌.也是用户量最大.升级最快.服务最好的主流成图和 ...

  6. python读取图像数据流_【NUKE教程】Nuke Python 获取图像数据

    通过python有两种方式读取图像的像素数据: 创建分析图像的节点(比如,MinColor, CurveTool),执行,然后读取其结果的knob数值 sample方法可以直接抽样节点的像素. 使用C ...

  7. vba 循环读取单元格_利用VBA打开顺序文件,并读取

    大家好,疫情施虐,国外各地更有爆发的迹象,但无论怎样,我们一定要坚信,疫情终将会过去,曙光一定会到来.后疫情时代将会是一个全新的世界,很多理念都将被打破,大多数人不会再享受体制内的保护,对于我们每个人 ...

  8. python模拟上传图片_用python创建自己的等离子图片模拟

    python模拟上传图片 For today's recreational coding exercise, we will investigate plasma physics with parti ...

  9. 组态王bitset用法_组态王教程(基础入门篇).pdf

    组态王教程及使用问题解答(基础篇) 一.组态王教程 简介:本教程是学习"组态王"软件的入门教程,覆盖了"组态王"软件的大部分基本功能.学完本教程后, 您将能够建 ...

  10. python读取一个图像_从图像处理python的文件中读取多个图像

    嗨,我有一个脚本来运行图像处理.但是我想用一个循环或者其他方法从一个文件中读取多个图像 例如C:\Users\student\Desktop\Don\program (opencv version)\ ...

最新文章

  1. 杭州码农哀叹:新买的房子装修到一半没钱了,靠着贷款平台借钱才勉强推进。这套房子价格高达1000多万,有钱买却没钱装修!...
  2. HTTP 错误 404.15 - Not Found请求筛选模块被配置为拒绝包含的查询字符串过长的请求...
  3. google nexus5x 刷机抓包逆向环境配置(三)
  4. 九种东西吃多会...
  5. asp.net 使用my97 datepicker实现前后两个日期的范围界定
  6. 子主题function php,php – 带有依赖项的子主题
  7. Memcache 和 Radis 比较
  8. 计算机无论采用何种方式接入网络,自考计算机网络实用技术考核知识点之Internet的结构及其接入方式...
  9. 关于srand((unsigned)time(NULL))是初始化随机函数种子
  10. 大数据分析的流程是怎样
  11. Flex 与外部的数据通信(HTTPService,URLLoader和URLRequest)
  12. Android Eclipse 导入 AS Gradle AAR 库手册
  13. excel的表格数据转为数据库的dbf文件
  14. keeplive+haproxy+nginx
  15. JAVA实现字体扩大代码_[Java教程]jQuery实现设置字体大小代码实例
  16. 计算机是怎么分类,计算机一般按什么分类
  17. 共享文件夹没有权限访问
  18. C#开发串口调试助手的详细教程
  19. 项目UML设计--日不落战队
  20. 排列组合之插板法及变形

热门文章

  1. perl依赖包安装方法
  2. MySQL 案例实战--MySQL数据库主从复制
  3. vue 动态渲染表格序号列
  4. Netron - 网络可视化
  5. python输入三个数形成各种三角形
  6. python预处理tif格式图片
  7. r语言 rgl 强制过程中_R语言中编写最小工作示例(MWRE)
  8. Ninth season eighth episode,Rachel‘s another sister,how is she???
  9. 黑色脸谱_上演三幕的脸谱剧
  10. SAN和NAS、ISCSI存储有什么区别,SAN和NAS设备哪个更好?