【Arduino官方教程第一辑】示例程序 3-2 模拟信号输入

模拟信号输入

本例中,我们根据电位器(或用光敏电阻替代)的阻值变化来改变LED闪烁频率。电阻的模拟信号值将根据电压变化。

完成本例所需的硬件设备

  • Arduino板或Genuino板
  • 电位器 或 10kΩ光敏电阻+10kΩ电阻
  • 红色220Ω LED灯(或者板载LED)

电路连接

电位器接法

连接3根线到Arduino/Genuino板。电位器一个外侧的引脚连接到GND,另一个外侧的引脚连接到+5V。A0口连接到电位器中间引脚。

对于本例来说,用13号板载LED也可。如要用外加LED,将LED长脚(阳极)用220Ω电阻连接到13号引脚。将LED短脚(阴极)连接到GND引脚。

译者注:原文是“连接到13号引脚旁边的引脚”。

光敏电阻接法

用光敏电阻的电路使用分压器来保证模拟信号在转换电压时有高阻抗。因为模拟输入引脚几乎不会消耗任何电流,因此根据欧姆定律,不管电阻阻值为多少,连接到5V的那一端总是5V。为了根据光敏电阻阻值变化改变电压,电阻分压器必不可少。电路中用一个可变电阻和一个电位器来组成分压器,分压器”划片”在两电阻的中间。

测量的电压应根据以下公式可算得:

Vout=Vin*(R2/(R1+R2))

Vin为5V,R2为10kΩ,R1为光敏电阻。光敏电阻在黑暗时为1mΩ,白天(10 流明 )时10kΩ,日光下/明亮灯(超过100 流明 )管下小于1kΩ)。

原理图

电位器接法

光敏电阻接法

例程代码

在代码开头,sensorPin变量被设置为A0,A0口连接着电位器。LED引脚被设置为13。你也可创建另一个sensorValue变量来存储从传感器读出来的值。

analogRead()函数将0-5v的电压值映射成为0-1023。这个操作通过板子上的数模转换电路(ADC)完成。

通过转动电位器的轴,你能改变电位器划片两侧的电阻(整个电位器是由其中间引脚分开的滑动变阻器)。这样一来就能改变中间引脚上的电压,从而让你在analogRead()读出不同的值。当电位器转轴被朝一个方向转到底时,中间引脚和连接到GND引脚之间的电阻为0。analogRead() 此时应返回0。当电位器转轴被朝另一个方向转到底时,中间引脚和连接到5v引脚之间的电阻为0。中间引脚连接到+5v,analogRead() 返回1023。在中间时,analogRead() 根据A0口上的电压按照比例返回0-1023的值。

返回值被存入sensorValuesensorValue用来设置delay()的毫秒数,即为闪烁的间隔时间。sensorValue值越小,闪烁的间隔时间越小。sensorValue的值是在闪烁的开头读取的,因此LED打开和关闭之间的时间也总是相等的。

/*
  Analog Input
  本例向你展示在A0口读取输出模拟信号的传感器的值,并且根据这个值让13号引脚的LED闪烁。LED的闪烁周期根据analogRead()返回值确定。

 电路搭建:
 * 电位器中间的引脚连接到A0,两侧分别连接+5V和GND
 * LED阳极(长脚) 连接到13号引脚
 * LED负极(短脚)连接到GND

 * 小贴士:因为大多数板有板载LED连接到13号引脚,因此外加的LED是可选的。

    代码是公开的。
 */

int sensorPin = A0;    // 设置电位器的引脚
int ledPin = 13;      // 设置LED引脚
int sensorValue = 0;  // 传感器值的存储变量

void setup() {
  // 声明ledPin为输出模式:
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // 从传感器读值:
  sensorValue = analogRead(sensorPin);
  // 打开LED
  digitalWrite(ledPin, HIGH);
  // 暂停程序sensorValue毫秒:
  delay(sensorValue);
  // 将LED关闭:
  digitalWrite(ledPin, LOW);
  // 暂停程序sensorValue毫秒:
  delay(sensorValue);
}

相关资料

pinMode()

analogRead()

digitalWrite()

delay()

模拟信号与串口: 从模拟信号输入引脚读取一个值,然后用这个值控制LED小灯

模拟信号输入: 使用电位器来控制LED的闪烁。

模拟信号输出[Mega]: 使用Arduino Mega板让12个LED一个接一个亮度逐渐减弱。

模拟信号的校准: 设置传感器输出模拟信号的最大、最小值来达到预期效果。

LED亮度渐隐:使用脉宽引脚(PWM pin)来让一个LED的亮度渐弱。

信号平滑:让多个模拟引脚的输入值变得更加均匀平滑。


更新进程

日期 日志 译者
2016年5月9日 创建并翻译文档 唐家勋

译者:唐家勋

邮箱:[email protected]

QQ:649196486

转载请注明出处,一切只因为热爱。

希望您能指出宝贵意见,谢谢。

时间: 2024-11-07 20:48:07

【Arduino官方教程第一辑】示例程序 3-2 模拟信号输入的相关文章

【Arduino官方教程第一辑】示例程序 3-3 模拟信号输出[Mega]

模拟信号输出[Mega] 本例会使用Arduino Mega 或 Genuino Mega 板让12个LED一个接一个的进行亮度渐变.使用Mega的原因由于它有更多支持PWM操作的引脚. 完成本例所需要的硬件 Arduino Mega 或 Genuino Mega 板 12个红色LED 12个220Ω电阻 跳线 面包板 杜邦线/电路连接线 电路连接 将12个LED的阳极(长脚)通过220Ω限流电阻分别连接到2-13号引脚.将12个LED的阴极(短脚)连接到GND. 原理图 例程代码 在setup

【Arduino官方教程第一辑】示例程序 3-5 模拟信号的校准

模拟信号的校准 本例向你展示校准传感器的一个技巧:在启动时先读取传感器值5秒钟,然后寻找其最大.最小值.校准后的最大.最小值将在map函数有用. 完成本例所需的硬件设备 Arduino板或Genuino板 LED 模拟信号的传感器(光敏电阻就OK) 10kΩ电阻 220Ω电阻 跳线 面包板 杜邦线/面包板线 电路搭建 模拟信号传感器(例如:电位器/光线传感器等)连接到A2,LED连接到9号引脚. 用220Ω限流电阻串联LED到9号引脚.将光敏电阻一脚连接到5V,另一个脚连接到A0,并加一个10k

创建ArcGIS API for JavaScript的第一个示例程序

原文:创建ArcGIS API for JavaScript的第一个示例程序 在上一篇博客中已经介绍了如何搭建ArcGIS API for JavaScript开发环境,如果您还没有搭建好开发环境的话,参考博客:http://blog.csdn.net/zdw_wym/article/details/48678913. 如果开发环境搭建好了的话,那么今天我们继续来搭建我们的第一个ArcGIS API for JavaScript应用程序. 下面首先将代码贴出来,复制到VS2012中新建的html

PyTorch 1.0 中文官方教程:对抗性示例生成

译者:cangyunye 作者: Nathan Inkawhich 如果你正在阅读这篇文章,希望你能理解一些机器学习模型是多么有效.现在的研究正在不断推动ML模型变得更快.更准确和更高效.然而,在设计和训练模型中经常会忽视的是安全性和健壮性方面,特别是在面对欺骗模型的对手时. 本教程将提高您对ML模型安全漏洞的认识,并将深入探讨对抗性机器学习这一热门话题.您可能会惊讶地发现,在图像中添加细微的干扰会导致模型性能的巨大差异.鉴于这是一个教程,我们将通过一个图像分类器上的示例来探索这个主题.具体来说

log4j教程 5、示例程序

前面我们已经看到了如何创建一个配置文件.本教程将讲解如何生成调试信息和日志在一个简单的文本文件. 下面是我们的例子中创建了一个简单的配置文件.这里再重复一次: 下载最新的Log4j库:http://logging.apache.org/log4j/2.x/download.html 根记录器的级别定义为DEBUG并连接appender命名为FILE. appender FILE文件被定义为 org.apache.log4j.FileAppender 并写入到一个名为“log.out”位于 log

Spring Roo 实站( 一 )部署安装 & 第一个示例程序

转自:http://blog.csdn.net/jun55xiu/article/details/9380213 一:安装 注:可以参与官网spring-roo: static.springsource.org/spring-roo/reference/html/intro.html#intro-exploring-sampleROO_OPTS http://static.springsource.org/spring-roo/reference/html/intro.html#intro-ex

DotNetBar for Windows Forms 12.2.0.7_冰河之刃重打包版原创发布-带官方示例程序版

关于 DotNetBar for Windows Forms 12.2.0.7_冰河之刃重打包版 --------------------11.8.0.8_冰河之刃重打包版---------------------------------------------------------基于 官方原版的安装包 + http://www.cnblogs.com/tracky 提供的补丁DLL制作而成.安装之后,直接就可以用了.省心省事.不必再单独的打一次补丁包了.本安装包和补丁包一样都删除了官方自带

DotNetBar for Windows Forms 12.7.0.10_冰河之刃重打包版原创发布-带官方示例程序版

关于 DotNetBar for Windows Forms 12.7.0.10_冰河之刃重打包版 --------------------11.8.0.8_冰河之刃重打包版---------------------------------------------------------基于 官方原版的安装包 + http://www.cnblogs.com/tracky 提供的补丁DLL制作而成.安装之后,直接就可以用了.省心省事.不必再单独的打一次补丁包了.本安装包和补丁包一样都删除了官方自

DotNetBar for Windows Forms 12.5.0.2_冰河之刃重打包版原创发布-带官方示例程序版

关于 DotNetBar for Windows Forms 12.5.0.2_冰河之刃重打包版 --------------------11.8.0.8_冰河之刃重打包版--------------------------------------------------------- 基于 官方原版的安装包 + http://www.cnblogs.com/tracky 提供的补丁DLL制作而成. 安装之后,直接就可以用了. 省心省事.不必再单独的打一次补丁包了. 本安装包和补丁包一样都删除了