现在我们开始尝试用代码控制一个真正的直观的硬件设备。
第一个例子:让Arduino开发板上的一个LED小灯周期性的打开、关闭。
第二个例子:让LED灯亮度逐渐的变亮变暗。
Arduino开发板上,都会有两个LED指示灯。不同的开发板,LED指示灯的位置、颜色略有不同。
电源指示灯。当开发板连接上电源(或者通过USB线供电)后,用来指示电源是否接通。这个LED灯旁边肯定有一个“On”标记;
测试用指示灯。这是一个用来做内部测试的指示灯,也正是本示例要使用到的指示灯。在这个LED灯旁看到个‘L’标记;
前面的章节中,我们介绍了Arduino开发板提供了3类引脚。其中数字引脚D13就控制着这个测试用指示灯。因此我们只需要在代码中控制好这个引脚就好了。
没有可外接的LED模块时,就用D13引脚来做测试。
通过菜单栏创建一个叫做LEDTest.ino
的文件,启动这个示例。
任何引脚在使用之前,都要在setup()
中对它进行初始化,告知这个引脚用来输出-OUTPUT
,还是用来输入-INPUT
。这里是要初始化D13引脚,让它作为输出。
//定义引脚的编号,这里使用的是数字引脚13。
//设置该引脚类型为输出
通过
digitalWrite()函数,让指示灯变亮一秒,然后变暗一秒,如此往复,
loop()
执行之后,会被循环再次执行,我们设计的效果就是LED灯一秒亮、一秒暗的不停的循环。
digitalWrite()
函数专门用来为数字引脚设置高低电平,
//将该引脚设置成高电平
//将该引脚设置成低电平
将工程编译部署到开发板上,就能看到D13连接到LED指示灯,一秒亮、一秒暗的不停闪烁。
数字引脚只能输出高电平HIGH或低电平LOW两种,但是通过脉冲宽度调制(Pulse Width Modulation简称PWM)就能让数字端口模拟输出多级的电压(通常是0级~255级,0级代表没有,255级代表最高电压)。
数字引脚上的电压,可以看成是一个个脉冲方波,当引脚一直处于高电平的时候,输出为V,
当引脚电压的脉冲方波周期中,有50%的时间中处于高电平的时候,平均输出就为V/2;
当引脚电压的脉冲方波周期中,有33.3%的时间中处于高电平的时候,平均输出就为V/3;
*更官方的表述请参考。如下:
脉宽调制(PWM)是一种通过数字方式获得模拟结果的技术。数字控制用于创建方波,即在开和关之间切换的信号。此开关模式可以通过改变信号消耗的时间部分(相对于MKR板上的5 V,MKR板上的3.3
V)和断开(0伏特)之间的电压进行仿真。信号消耗的时间。“接通时间”的持续时间称为脉冲宽度。要获得变化的模拟值,您可以更改或调制该脉冲宽度。例如,如果用LED足够快地重复此开关模式,结果就好像信号是一个介于0到Vcc之间的稳定电压,控制着LED的亮度。
在下图中,绿线代表固定时间段。该持续时间或周期是PWM频率的倒数。换句话说,在Arduino的PWM频率约为500Hz的情况下,绿线将分别测量2毫秒。调用()的范围为0-255,从而analogWrite(255)请求100%的占空比(始终打开),而analogWrite(127)则是50%的占空比(一半时间),用于例。
一旦运行了此示例,请抓住您的arduino并来回摇动它。您在这里所做的基本上是在整个空间上映射时间。在我们看来,运动模糊了每个LED闪烁成一条线。随着LED淡入淡出,这些细线的长度将逐渐增加和缩小。现在您将看到脉冲宽度。
Arduino开发板提供的数字引脚中,有的引脚就具备了PWM的能力:能够设置这些数字引脚的电压输出级数。
//设置成输出10级电压,电压强度从0~255
通过官网给出的,可以看出Arduino MEGA开发板的D13引脚,是具备PWM功能的。所以我们可以让测试指示灯渐变明暗。
不过Arduino UNO开发板上的D13引脚并不具备PWM功能,因此要在它上面进行灯光强弱调整的实验,必须要在其他的引脚上,外接一个LED灯硬件。这部分内容,我们将在后面介绍。
在
setup()中对它进行初始化,告知这个引脚用来输出-OUTPUT
,或者用来输入-INPUT
。这里是要初始化D13引脚,让它作为输出。
//定义引脚的编号,这里使用的是数字引脚13
通过
analogWrite()函数,让指示灯逐级变亮,然后逐级变暗,如此往复,
loop()
执行之后,会被循环再次执行,我们设计的效果就是LED灯逐渐变亮,再逐渐变暗。
这里使用了analogWrite()
函数向数字引脚设置电压0级~255级
中的任何一级,
//将该PWM引脚设置成0~255级中的任何一级
可见
analogWrite()函数并不像它的名字那样只是模拟引脚的专利,它对支持PWM的引脚同样适用。
将工程编译部署到开发板上,就能看到D13连接到LED指示灯,一会儿亮一会儿暗的逐渐变化。
11。将LED灯接到这些引脚上面,就能同样的实现对LED灯的控制。
你的LED模块可能是单色的:只能发出一种颜色的光,这种模块有3个引脚,标注字符S的是控制灯光强度的引脚、VCC或者+是电源引脚、GND或者G是接地引脚,例如中提供的单色LED灯模块,
LED灯也可能支持3种基础颜色-红绿蓝,这种模块有4个引脚,例如中提供的三色LED灯模块,
这里我们先用单色的LED灯模块举例。
MEGA开发板,2-13引脚都支持PWM,随便选一个都可以。
UNO开发板,3,5,6,9,10,11引脚支持PWM,可以在开发板上看到引脚数字边上有个’~’。
这里我们选择D9
引脚来连接LED灯。
早期的开发板,为了防止电压不稳定击穿电子器件,需要连接个电阻。
现在的开发板,只在接马达时才需要增加电阻,惯常的做法是增加一块扩展板。
在实际的硬件连接当中,我们通常用扩展板来连接LED模块和开发板。
这里我们使用传感器扩展板,
可以看到扩展板上已经印制出了每个引脚的含义,
对于数字引脚扩展槽来说,
GND或者G:接地引脚
VCC或者V:供电引脚
D或者S:被扩展出的引脚,其下方的数字代表该引脚的编号
对于模拟引脚扩展槽来说,
GND或者G:接地引脚
S:被扩展出的引脚,其下方的数字代表该引脚的编号
所以,对于这里的情况,我们选择标注了9
的数字引脚扩展插槽。
因为这次我们使用了D9引脚,所以需要修改前面使用的D13引脚为D9,
//定义引脚的编号,这里使用的是数字引脚9
//将该引脚从0级逐步设置到255级,指示灯逐渐变亮
//延时100毫秒,LED灯状态不变
//将该引脚从255级逐步设置到0级,指示灯逐渐变暗
//延时100毫秒,LED灯状态不变
将工程编译部署到开发板上,就能看到D9连接到LED指示灯,一会儿亮一会儿暗的逐渐变化。
使用三色的LED灯模块,与使用单色的LED灯模块一样。在硬件连接时,要同时把红R、绿G、蓝B三种颜色对应的引脚连接到PWM接口上。例如使用数字引脚D9、D10、D11,分别对应红、绿、蓝三种颜色,就要多使用几个扩展板的插槽,将对应的R G B引脚插在标注了9
10
11
编号的数字扩展口上,
在代码中要初始化三个PWM接口。
//定义引脚的编号,这里使用的是数字引脚D9、D10、D11,
//分别对应红、绿、蓝三种颜色
//将该引脚从0级逐步设置到255级,指示灯逐渐变亮
//延时100毫秒,LED灯状态不变
//将该引脚从255级逐步设置到0级,指示灯逐渐变暗
//延时100毫秒,LED灯状态不变
本系列课程使用到的Arduino开发板、扩展板以及其他相关的传感器,各位可以根据我们文章中介绍的硬件在选购。
您也可以在我们的网店中购买,这些相关硬件都由我们为您把关购买,为大家节省选择的精力与时间。同时也感谢大家对我们这些码农的支持。
空调对我们的生活帮助很大,现在基本上每个家庭都有自己的空调器在使用,格力空调器是很好的品牌之一,格力柜机器不仅使用效果稳定,而且格力柜机器的产品性价比也比较高。但是有时候,当我们使用空调时,我们发现格力柜机的显示器在跳动,让人怀疑空调是否有故障。以下小编就为大家介绍一下格力柜机显示器乱跳的原因。
格力柜机显示器乱跳是因为显示屏有故障,不影响使用。有的时候,格力柜式空调在制冷模式下,外机及内机都正常,对遥控器的操作也正常,但柜机面板显示器上显示的温度数字不断变化,速度非常快,就像秒表一样快速跳动。上述现象,可能有的用户遇到过,但不知道具体原因。像温度数字乱跳这样的问题,本身不影响空调的各项功能,就是显示屏上存在问题,可修可不修,唯一的缺陷就是不知道当前实际温度是多少,设置温度又是多少。看完解释大家是不是就不担心格力柜机显示器乱跳的问题了呢。
除格力柜机显示器乱跳的原因外,小编还带给大家格力空调室内机异响的原因。异常噪音是由于内部电气设备产生的一些电磁噪音,听起来很不舒服。如果内部机器的一些部件不好,也可能产生共振。也可能是制冷剂在管道中流动产生的噪音。由于室内机可能要截流,即控制制冷剂的流速,因此在流速快的时候可能会产生噪音。
上述就是小编带给大家的格力柜机显示器乱跳的原因及解决方案,希望对您有所帮助。
我刚刚把电脑的机箱搬到另外一个地方去
怎么接上显示器就一直闪烁啊?
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。