【中学生创客.Arduino】第5课 呼吸灯


在前面的实例当中,我们都是用基于Arduino控制器来控制LED灯的亮或的变化。但是并没有体现LED的电压由高到低或者由低到高的变化,即中间过程没有得到体现。但有时要有,比如在歌舞厅或演唱会上,为了达到很好的灯光效果,有时要使灯的亮暗变化是个渐渐的过程,即是个连续变化的过程。那我们能否实现呢?

【任务导航】

1.认识呼吸灯;

2.掌握PWM

3.掌握模拟输出;

4.掌握当循环。

【材料阅读】

    1.呼吸灯

     呼吸灯,顾名思义,就是灯光在微电脑控制之下完成由亮到暗的逐渐变化,感觉像是在呼吸。广泛应用于手机之上,并成为各大品牌新款手机的卖点之一。如果你的手机里面有未处理的通知,比如说未接来电,未查收的短信等等,呼吸灯就会由暗到亮的变化,像呼吸一样那么有节奏,起到一个通知提醒的作用。

    2.PWM

现今多数系统皆采用数字控制的方式,由核心微处理器接收回传的感测信息,并针对与目标的差值再调整输出。而数字信号只有01两种变化,怎么调整输出值的大小满足需求呢?这时我们可以将数字信号转化成模拟信号,这就需要我们的PWM了。

脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中,它可以将数字信号转化为模拟信号。

Arduino Romeo控制器的数字口上有6个针脚支持PWM信号,即35691011PWM的输出值为0~255LED发光模块接到这几个针脚上面,就可以控制LED的亮度,不会只有单纯的亮跟灭两种选择。这里要注意的是LED发光模块是可以调亮度的,有些LED发光模块不能调节亮度,即便插在这借个针脚上面,也无法控制LED的亮度。本书用的LED发光模块是可以调节亮度的。

   3.模拟针脚的输入

     

(1)功能:将指定的值给模拟口。

(2)参数:Pin是需要输入值的针脚号;Value的取值为0~255之间的任意值。

    3)实例:意思就是将模拟针脚3的值设定为255

4.当循环

前面介绍的选择结构只能判断一次,只有程序流程重新来过时,才会再次判断。而某些情况下还需要条件满足的时候不断地重复执行某些语句,这就需要循环型的控制语句如重复循环或当循环了。

当循环的基本形式:

 

功能描述:当条件成立即为真(1)的时候,执行循环体内的语句,且循环体会重复执行;当条件不成立的时候即为假(0)时,跳出循环体,结束循环。如果条件始终成立,则会进入死循环,循环体一直执行下去。

【动手操作】

    主题一:数值控制LED亮度

1.硬件搭建

在连接电路时,LED模块要接到数字口支持PWM信号的针脚上,即356910、和11

器材:Arduino Romeo控制器、LED发光模块以及数据线。

   2.参考程序

  

    主题二:制作呼吸灯

 

 

1.5.1 呼吸灯参考程序

【探究思考】

1.能否用按钮控制LED的亮度情况?如何实现?

2.你会使用条件语气制作呼吸灯?

3.还可以制作哪些效果的LED

【视野拓展】

1.PWM

    PWM,脉宽调制:即通过一系列脉冲的宽带来调制(或控制)来等效得到所需要的波形(包括形状和幅值),比如图1.5.2所示,咱们可以通过很多脉冲来恢复得到正弦波形。这也可以从高中所学积分的面积等效的原理解释。比如第1个脉冲所围的面积,等于第一个脉冲前由正弦波形围成的面积。通过改变方波的占空比,就可以改变等效的输出电压波形。试想一下,如果每个脉冲的宽度相等,则所等效的波形为一条直线,即为直流电压信号。PWM调制广泛应用与电机调速和阀门控制中。比如现在的电动车就是通过PWM调速的。

 

1.5.2 PWM

    2.数字信号和模拟信号

    数字信号:是指幅度取值离散的,其值被限制在有限域范围内,如二进制码就是一种离散信号。其特点是抗干扰能力强,易于数字信号处理。现在很多信号基本上都是数字信号,如手机信号,计算机处理信息等等。

模拟信号:是指其信号波形是连续变化的,咱们可以在任意的瞬间取值。由于模拟信号易受干扰影响,不容易处理,一般都是先将模拟信号离散成数字信号,以便处理。两者的区别如下图1.5.4所示:

 

1.5.4 A/D区别

【挑战自我】

前面我们已经学过了用按钮控制LED的亮灭,请同学们尝试用按钮控制呼吸灯。


关键词:Arduino

网友留言(0 条)

发表评论

验证码