为了账号安全,请及时绑定邮箱和手机立即绑定

Arduino基础入门篇10—电位器控制LED灯

标签:
Python

本篇介绍Arduino模拟输入功能,通过读取电位器输入的电压值来控制LED灯的亮度。

模拟输入引脚是带有ADC(Analog-to-Digital Converter,模数转换器)功能的引脚。它可以将外部输入的模拟信号转换为芯片运算时可以识别的数字信号,从而实现读入模拟值的功能。

Arduino 模拟输入功能有10位精度,即可以将0~5V的电压信号转换为0~1024的整数形式表示。

我们通过使用analogRead() 函数读取电位器输入的电压值,然后通过analogWrite()函数来控制LED灯亮度。

1. 实验材料

  • Uno R3开发板

  • 配套USB数据线

  • 面包板及配套连接线

  • 1个LED灯

  • 1个220Ω限流电阻

  • 1个电位器

电位器是一个可调的电阻,其原理如下图所示:

webp

电位器原理图

通过旋转旋钮改变2号脚位置,从而改变2号脚到两端的阻值。实验中将1脚和3脚分别接到开发板的5V的GND,再通过模拟输入引脚A0来读取电位器2号脚分得的电压,其范围在0V和5V之间。

2. 实验步骤

  1. 根据原理图搭建电路。

    直插LED灯正极连接限流电阻,电阻另一端连接开发板第10引脚,LED灯负极接开发板GND。电位器1号脚和3号脚分别连接开发板5V和GND,2号脚连接开发板A0引脚。

    实验原理图如下图所示:

    webp

    实验原理图

    实物连接图如下图所示:

    webp

    实物连接图

  2. 新建sketch,拷贝如下代码替换自动生成的代码并进行保存。

     /*
        AnalogRead
        通过电位器改变LED灯亮度
     */
     
     int ledPin = 10; 
     int readValue = 0; //保存读到的模拟值
     int ledValue = 0;  //保存LED灯占空比
     
     void setup()
     {
       pinMode(ledPin, OUTPUT);     //数字口要选择带~号的具有pwm功能的输出口
     } 
     void loop()
     {
       readValue = analogRead(A0);     //读取A0模拟口的数值(0-5V 对应 0-1204取值)
       ledValue = map(readValue, 0, 1024, 0, 255); //将0到1024之间的数据映射成0到255之间的数据
       analogWrite(ledPin, ledValue);   //PWM最大取值255  
     }
  3. 连接开发板,设置好对应端口号和开发板类型,进行程序下载。

    webp

    程序下载

3. 实验现象

通过旋转电位器旋钮,LED灯亮度改变。



作者:TonyCode
链接:https://www.jianshu.com/p/4cdd0b0eb1b5


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消