Arduino学习之路:三、一盏会“呼吸”的灯

        Hello!uu们,这是Arduino学习之路的第三次学习,今天我们将会接触到Arduino的用for循环来控制重复动作和用脉冲宽度调制变化LED的亮度,同时也会讲一些在作品中遇到的一些元器件,为接下来的学习打好基础,千里之堤,溃于蚁穴,所以我们要打好学习的基础才是重要的。加油!!!

一、利用循环语句做重复的动作

        嘿嘿,正如博主所说,Arduino的语言还是需要C语言来支撑的,所以不要急,我们先来看看这些循环。

1.while循环

       当while之后的条件成立时,执行括号内的程序代码。while循环将会连续、无限循环,直到括号()内的表达式变为false。或者使用break语句跳出循环,否则while就是死循环。

示例:

2.do…while循环

       这个语句和while 十分相似,不同的是while前的那段程序代码会先被执行一次,才会判断特定的条件式为真或为假。如果为真则继续执行,如果为假则跳出循环。因此若有一段程序代码至少需要被执行一次,就可以使用do…while架构。它的框架就是先执行在循环的过程。

示例:

3.for循环

        如果需要运行代码多次,且每次使用不同的值,那么for循环则非常适用,就比如第一章讲的小灯一样,节约了大量空间,它的特点是每一次循环完一次都会执行更新语句 只要还满足循环条件就会一直进行循环(for是不是有点呆?).

它的结构如下:

for (循环变量类型 循环变量名称;循环条件;更新语句)

示例:
 

4.break语句

        这是一个很BUG的语句,当 break 关键字用于 while、for循环时,就会终止循环而执行整个循环语句后面的代码。break 关键字通常和 if 语句一起使用,即满足条件时便跳出循环,一个 break 语句只向外跳一层。

示例:

5.continue语句

         continue 语句的作用是跳过循环体中剩余的语句而强制进入下一次循环。continue语句只用在 while、for 循环中,常与 if 条件语句一起使用,判断条件是否成立。

示例:

       接下来我们也介绍一点C语言中的一些相关的语法符号

 6.语法符号

  • ; 语句分隔符
  • {} 代码块
  • // 单行注释
  • /* 在这个范围内你可以写一整首诗 */ 多行注释

比如这样,也可以这样:

          讲完这些后,我们绝不贪多,之后的判断语句和其他语句我们后面还会继续讲到。接下来要开始讲讲小作品。

二、循环语句在作品中的展示

       在第一节中的代码里,我们所打的代码就是循环语句的应用,如果真正的将每一个端口一个一个敲下来,将会是下面的这样:

而用了循环的则是:

是不是少了很多?所以在大多数情况下,我们如果要做重复的动作,我们将优先考虑循环语句。

三、学会用PWM调制变化LED的亮度

1)什么是PWM?

        PWM(Pulse Width Modulation)简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在测量、通信、工控等方面。

2)PWM的频率

       是指在1秒钟内,信号从高电平到低电平再回到高电平的次数,也就是说一秒钟PWM有多少个周期,单位Hz。

3)PWM的周期

       T=1/f,T是周期,f是频率,如果频率为50Hz ,也就是说一个周期是20ms,那么一秒钟就有 50次PWM周期。

4)占空比

       是一个脉冲周期内,高电平的时间与整个周期时间的比例,单位是% (0%-100%)

一个周期的长度,如下图所示。

  图3.1    PWM的单个周期

 图 3.2  不同的PWM占空比

         如图3.1所示,周期是一个脉冲信号的时间,1s内的周期T次数等于频率f,脉宽时间是指高电平时间。脉宽时间占总周期时间的比例,就是占空比。打个比方说,设定周期的时间是10ms,脉宽时间是8ms,那么占空比是8/10= 80%,这就是占空比为80%的脉冲信号,简单说PWM就是脉冲宽度调制,通过调节占空比就可以调节脉冲宽度。在一定的频率下,通过不同的占空比即可得到不同大小的输出模拟电压,PWM就是通过这种原理实现数字模拟信号转换的。(如图3.2)

        所以接下来,我们将会利用PWM来制作一个会“呼吸”的灯。

四、PWM应用

  1.LED呼吸灯

       原理解释:因为一般人眼睛对于80Hz以上刷新频率则完全没有闪烁感,那么我们平时见到的LED灯,当它的频率大于50Hz的时候,人眼就会产生视觉暂留效果,基本就看不到闪烁了,而是误以为是一个常亮的LED灯,所以由于频率很高时看不到闪烁,占空比越大LED越亮,占空比越小LED越暗。所以,在频率一定时,可以用不同占空比改变LED灯的亮度,使其达到一个呼吸灯的效果。

2.源代码

将代码敲入Arduino IDE中,编译后上传到板子上后,你就可以得到一盏会呼吸的灯了!

3.搭建电路

如图搭建:

      如此我们就做好了我们的第二个作品,uu们,让我们下节再见!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值