欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Arduino小白学习记录:用电位器控制LED灯的亮度

程序员文章站 2022-07-13 23:19:37
...

我是一个纯Arduino小白,为了完成老师安排的一个课题任务就开始了对Arduino的学习。上次看到一个观点:学习开发板,最好的方法就是自己把自己学到的东西写成技术文档,这样自己就必须把很多东西弄懂才能够写出来,这样也可以和别人分享自己的心得,还有就是可以让大家指处自己的错误。为了检验这个方法的有效性,也为了鼓励我自己继续学习Arduino,我开始了今天的这篇博客。

一、介绍

生活中,我们都见过一些可以调节亮度的小台灯,其实原理也比较简单,用一个简单的电位器就可以实现,下面我们就通过一个小实验来DIY一个吧。

二、材料准备

  • Arduino Uno 主板*1
  • 电位器模块*1
  • USB电缆*1
  • 面包板*1
  • LED灯*1
  • 300Ω电阻*1
  • 跳线若干

Arduino小白学习记录:用电位器控制LED灯的亮度

                                     图1.1  Arduino Uno 主板

Arduino小白学习记录:用电位器控制LED灯的亮度

                                         图1.2  电位器

Arduino小白学习记录:用电位器控制LED灯的亮度

                                        图1.3  USB电缆线

Arduino小白学习记录:用电位器控制LED灯的亮度

                                         图1.4  面包板

Arduino小白学习记录:用电位器控制LED灯的亮度

                                          图1.5  LED灯

大家应该都知道,LED灯的长引脚是正极,短引脚时负极,提醒大家接线的时候不要接反了哦。

Arduino小白学习记录:用电位器控制LED灯的亮度

                                       图1.6  300Ω电阻

Arduino小白学习记录:用电位器控制LED灯的亮度

                                          图1.7  跳线若干

三、实验原理

电位器其实就是我们初中就学过的一个变阻器而已,就是通过调节滑块的位置来决定接入电路的阻值,进而来控制输出电压的大小。

Arduino小白学习记录:用电位器控制LED灯的亮度

                                        图1.8  电位器的原理图

如图1.8所示,将电位器的一个引脚接5V的电压,另一个引脚接GND(0V),中间的引脚是电位器的输出引脚,通过调节中间一个滑块的位置就可以达到输出电压为0~5V变化的效果了。
我们知道,在额定电压下,流过LED灯的电流越大,LED的亮度越大,所以我们通过观察LED灯的亮度就可以大致知道电位器的位置了。

四、实验步骤

首先我们的电脑上要安装一个开发环境,因为Arduino的很多东西都是开源的,这就为我们进行开发提供了很多便利,没有安装的小伙伴这里提供了Arduino的官网,大家直接在上面下载安装即可。link.
接下来就是连线了,因为实物的连线图看着比较混乱,这里我用Fritzing软件画出了一个模拟的电路连线图。

Arduino小白学习记录:用电位器控制LED灯的亮度

                                   图1.9  模拟的电路连线图

如图1.9所示,从左边开始看,面包板上首先是一个电位器、一个LED灯和一个电阻(这里我选的是300Ω),大家都知道LED灯正向导通的时候电阻是很小的,所以这里面电阻的作用是保护电路,如果有小伙伴忘了串联电阻的话,那么恭喜你,你成功烧坏了一块板子……
接线的时候首先把电位器的上下的两个引脚分别接+5V和GND,然后将中间一个引脚作为模拟信号输出(实物图中这三个引脚的位置变化了,接线的时候大家注意一下)接到板子的A0接口,然后就是把LED灯接在面包板上,我们在板子右边找到013接口,其中数字前带有一个“”(模拟信号输入)的都可以作为作为LED的输入信号,然后其余的连线按照图1.9接好就可以了。
线全部接好后就是图1.10的样子了。
Arduino小白学习记录:用电位器控制LED灯的亮度

                                图1.10  电路连线实物图

完成了硬件部分的搭建,接着我们就需要进行软件部分的工作了。首先打开Arduino IDE软件,新建一个工程文件如图1.11所示

Arduino小白学习记录:用电位器控制LED灯的亮度

                                图1.11  新建一个工程文件

然后将代码输入这个窗口就可以了。插上板子之后,先将板子配置好(型号和串口号),接着点击“上传”就可以了进行程序的烧录了。

五、代码

/*可变电阻器的模拟信号输入*
   *功能:调节LED的亮度
   *编写:南友*/
  int Sensor=A0;//将A0引脚取名为Sensor
  int SensorRead=0;
  int newdata=0;

  void setup()
  {
    Serial.begin(9600);
  }
  void loop()
  {
    SensorRead=analogRead(Sensor);//读出Sensor的值并将它赋给SensorRead
    newdata=map(SensorRead,0,1023,0,225);
    Serial.println(newdata);
    analogWrite(3,newdata);
    delay(200);
  }

六、效果展示

首先我们打开右上角的串口监视器,然后通过旋动电位器上的旋钮就可以调节串口监视器上面的数字,大家可以发现,上面的数字每隔200毫秒刷新一次(代码里设置的延时时长),上面数字的变化范围是0-255,这个是通过代码newdata=map(SensorRead,0,1023,0,225)进行控制的,目的就是把这个原本是0-1023变化的数字改成了0-255,便于大家的观察。

Arduino小白学习记录:用电位器控制LED灯的亮度

                                   图1.12  串口监视器

Arduino小白学习记录:用电位器控制LED灯的亮度

                                       图1.13  结果1

Arduino小白学习记录:用电位器控制LED灯的亮度

                                     图1.14  结果2

将旋钮旋到不同的位置时,如图1.13和1.14,我们可以观察到LED灯的亮度发生了明显的变化,另外串口监视器上的数值也随之在变化。并且亮度越大,串口监视器上的数值越大。

七、总结分析

这是我第一次用Arduino的板子去完成一个实例,总体感觉并不是很难,因为在这之前我接触过51单片机和FPGA开发板,这些开发板的入门都相对比较难,尤其是FPGA,需要进行很多文件的配置和引脚的约束,而Arduino入门的确要简单很多。首先硬件电路的搭建基本都没问题,关于软件,一般学过C语言的同学基本的代码也都能看懂,如果看不懂的话可以先选择去看看C语言的基础代码。
另外Arduino的语言比较简洁,代码里面就集成了很多函数,例如在51单片机里面的延时函数是需要自己编写再调用的,但在Arduino中就直接用可以,这大大节省了开发的时间,也提高了开发效率。
本次实验中需要注意的地方是模拟信号的一些知识,接线的时候注意一下就好了,使用引脚的时候需要看该引脚上有没有“~”的标识,有的话就可以作为模拟信号输入,也才可以达到调节LED灯亮度的效果。
以上就是本次实验的全部内容,大家对实验内容有什么问题的话欢迎留言或者私信我哦。