arduino程序-模拟输入(基础知识)

1-28 模拟输入1 - 学用电位器

在这里插入图片描述

电位器

不同电位器基本功能原理相似
在这里插入图片描述

旋钮,可以使用手来控制(收音机的旋钮一般也是通过电位器控制音量)
电阻值,在旋钮的上方一般印上字母和数字,标准1号和3号引脚间的电阻值

在这里插入图片描述

电位器符号如右上,3个引脚如右上(很像初中学的变阻器,电阻可变)

电位器的等效电路如下:

两个电阻串联在一起

在这里插入图片描述

旋转旋钮,可以改变12之间和23之间的电阻值,注意两者是同时发生改变的
在这里插入图片描述

原理讲解如下:

R(1-2) R(2-3)
两个电阻和为1000欧姆
在这里插入图片描述

旋转时R(1-2) 减小,R(2-3)增大,同时变化的,两者和还是1000欧姆
在这里插入图片描述

左旋到无法旋转时,R(1-2) =0,R(2-3)=1000,13之间的电阻值始终为1000欧姆
在这里插入图片描述

右旋按钮

在这里插入图片描述

在这里插入图片描述

口诀:

在这里插入图片描述

电位器实际应用

常用在分压电路

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2号引脚电压在0~5v之间变换

Arduino如何接电位器

个人喜欢将1号引脚接地,3号引脚接+5v,2号引脚接模拟输入引脚(向右旋转2号电位增大,向左旋转减小)
在这里插入图片描述

1-29 模拟输入2-analogRead

在这里插入图片描述

上节课电位器原理,此次模拟输入功能学习
在这里插入图片描述
在这里插入图片描述

电位器右侧3号引脚接+5v,左侧1号引脚接地GND,中间2号引脚接A0引脚

演示效果

在这里插入图片描述

向右旋转,右侧串口监视器的数字增大到(1023就停止了),向左扭就不断减小,变成0了

示例程序:

在这里插入图片描述

模拟输入数值,通过函数analogRead将A0引脚的数值读取进来

干扰问题

当旋钮调到最大到头的时候,在串口监视器看到的数值并不是很稳定的数值,有时1023,有时1022,电位器转到最小的时候也是如此,不是总保持到0

为什么?
Arduino使用0~1023的数字表示电压的变化

在串口监视器上看到的每一个数字,每一个数字变化的时候,代表的模拟输入引脚的电压变化是多少呢,只有0.005mv
在大自然中,会有干扰,如动一下导线,就会有变化如下:
在这里插入图片描述

有时做实验的时候,会出现与理论不太相符,干扰这些是正常的,好在此处的精确度并不用太高

工作要实际动手,理论与实践有差距的

AnalogRead()

在这里插入图片描述

http://www.taichi-maker.com/homepage/reference-index/arduino-code-reference/analogread/
在这里插入图片描述

通道:给arduino进行数据传输的通道
Arduino有多个模拟输入引脚的(多个10位数模转换通道)
数模转换:模拟信号转数字信号,数字信号转模拟信号

当输入信号不是05v,而是03v时,可以通过analogReference()进行调整的,这就涉及到高级的模拟输入操作了
在这里插入图片描述
在这里插入图片描述

0~5v的模拟信号中间有无数个数,必须将其转换离散的数字信号,控制器才能对其处理,在离散的时间采集数据,数据等级分割成了1024份

在这里插入图片描述

猜数字时,使用analogRead()读取空的引脚作为随机种子

1-30 模拟输入3-电位器控制LED亮度

在这里插入图片描述

上节使用arduino的模拟输入功能接收电位器的0~5V模拟信号

此节如何利用电位器的模拟信号,发出模拟输出信号PWM,控制led的亮度变化
在这里插入图片描述

电位器中间连接A0模拟输入引脚

Led等的正极连接9~号引脚(用于PWM输出)

实验演示

在这里插入图片描述

向右旋转按钮,灯就更亮了
在这里插入图片描述

示例程序

在这里插入图片描述

AnalogWrite模拟输出信号(0~255)

Map()

Map函数,等比映射()
AnalogInputVal存储的是电压数值,转换成了01023之间的数字,然而我们的输出PWM信号或者led灯亮的信号范围是0255之间的,此时需要将01023的范围等比例的缩小到0255范围

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

回顾

(1)电位器产生0~5V的模拟信号
(2)Arduino使用analogRead函数将05v模拟输入信号读取成01023共1024个数字信号
(3)arduino使用map函数将01023范围等比映射成0255范围
(4)arduino使用analogWrtie函数模拟输出PWM信号(0~255)
(5)led等接受0~255的变化
在这里插入图片描述

模拟输入和模拟输出方法不同

对于arduino UNO的模拟输入信号是电压,模拟输出信号是PWM。对于其他的开发板就不一定了(可能模拟输出信号不是PWM,可能是电压或者电流,这里是学习原理)

在这里插入图片描述

  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吾名招财

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值