智能家居基础教程5-模拟输入传感器-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 862|回复: 0

智能家居基础教程5-模拟输入传感器

[复制链接]
发表于 2022-1-20 17:39 | 显示全部楼层 |阅读模式
[md]## 简介

上一章节我们讲解了数字传感器及其使用,本节我们举例说明模拟传感器。相对于数字传感器,模拟传感器输出的电压是一个0~5V之间的一个电压值(举例:2.5V)。

01.jpg


而这个电压值是通过wifiduino主板的一个ADC通道经过转换,才能得到一个模拟值(0~1023),这个模拟值就用于用于程序中的判断等操作。

而wifiduino提供单个ADC通道(也就是A0)。而在程序使用analogRead(A0)函数可用于读取ADC引脚的模拟值或者将其转化成对应的电压值。

02.jpg

(模拟输入电压范围为0 – 5.5V,对应的模拟值为0 – 1023)

本节我们主要一个常用的模拟传感器,来制作一个调节灯光的实现。

03.jpg

## 旋钮电位器

04.jpg

电位器是一个可调电阻,其原理如图所示。通过旋转旋钮改变2号脚位置,从而改变2号脚到两端的阻值。实验中,我们需要将电位器1、3脚分别接到5V和GND,再通过模拟输入引脚读取电位器2号脚输出的电压,根据我们旋转电位器的情况,2号脚的电压会在0V至5V间变化。

## 示例程序
[/md]
  1. int ledPin = D13;  // D13号引脚控制LED
  2. int pot=A0;    // A0引脚读取电位器输出电压
  3. void setup(){}
  4. void loop(){
  5. // LED逐渐变亮
  6. for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5)
  7. {
  8. analogWrite(ledPin, fadeValue);
  9. // 读取电位器输出电压,除以5时为了缩短延时时间
  10. int time=analogRead(pot)/5;
  11. delay(time);  // 将time用于延时
  12. }
  13. // LED逐渐变暗
  14. for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5)
  15. {
  16. analogWrite(ledPin, fadeValue);
  17. delay(analogRead(pot)/5);  // 读取电位器输出电压,并用于延时
  18. }
  19. }
复制代码

[md]
## 图形化程序

05.jpg

## 连接硬件

06.jpg

LED模块连接在D13接口中

电位器模块连接在A0接口上

## 观察现象

下载该程序后,你便可以通过电位器来调节呼吸灯的呼吸频率了。[/md]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-27 14:26 , Processed in 0.076504 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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