只因为那次手欠捡了那颗平平无奇的LED灯. 撸代码就再也停不下来了

一、入坑

众所周知,嵌入式编程学习入门的第一课为打印“Hello World!”,第二课就是我们今天的实验点亮LED。

LED的应用场景在嵌入式领域无处不见,有做电源指示灯、跑马灯、呼吸灯、信号通信灯、工作指示灯和网络灯等等,要实现这些功能,首先得把LED点亮。

用C、C++或者Java的方法相信大家已经见多了吧,那么接下来我们来学下如何使用QuecPython的方法点亮LED。近几年,Python的热度一直居高不减,是目前最受欢迎的编程语言之一,语法简洁且可读性强,chatGPT也是这么认为。QuecPython不仅保留了Python的优点,而且还能在移远通信模组上面运行,给物联网开发者提供了极大的便利。

我们言归正传,想要点亮LED,首先要搭建硬件环境。硬件接线可参考下图,供电采用单独的电源,模组的IO驱动能力较弱,不建议将IO接到LED供电或者负极,R34为限流电阻,Q2作为一个开关,通过模组IO输出高低电平实现打开关闭的效果。

硬件搭建完成后接下来就是软件编写了,我们先看看用C的方法是如何实现的,这里参考了STC89C51单片机的写法,定义LED驱动引脚和延时函数,接着在主函数里面调用,

如下图所示:

那么再看看用Python的方法是如何实现,首先导入GPIO和utime的库,定义需要控制的Pin.GPIO,接着定义一个方法,在这个方法里面对LDE的控制脚输出高低电平,实现LED灯的亮灭。代码如下图所示,在之前的文章里有提到过如何将Python脚本下载到模组,咱们不需要编译,主打的就是方便快捷。

实验结果如下图所示,PWM指示灯实现1S亮灭:

二、进阶玩法

以上我们已经成功将LED点亮,接下来我们实现LED进阶的玩法,流水灯、呼吸灯等等。

1、流水灯实验

首先第一个是实现流水灯效果。想要实现流水灯效果,得需要两个以上的LED,正巧EC600X_QuecPyhton_EVB开发板上就有两个可以自定义的LED,硬件条件有了,接下来我们来编写驱动脚本。把LED驱动引脚放到一个List,再定义一个PIN方法,往里面传LED驱动引脚和输出的高低电平,实验代码和实验结果如下图所示:

2、呼吸灯实验

所谓呼吸灯,就是指LED灯在MCU的控制下完成由亮到暗再由暗到亮的逐渐变化,感觉就像是人在呼吸。实现的原理是将使能引脚电压逐渐减小再逐渐增加,普通的GPIO引脚只能输出0和1实现“眨眼睛”的效果,因此这里我们需要用到PWM的功能,当我们随着时间不断改变PWM的占空比就能实现呼吸的效果,以下是用QuecPython实现的代码和结果:

3、网络灯功能

很多小伙伴们拿到移远小内存的模组(EC800MCNLF/EC800ECNLE)刷了QuecPyhton固件后,发现网络灯不亮了,或者变成了常亮。心里是不是想着,“我才入坑第一步啊!咋就出问题了“。

莫慌,这是正常的现象,小内存方案的模组资源有限,网络灯功能就没有加到固件。但是,今天学了LED进阶后,是不是可以自己实现网络灯功能?

写一个判断当前网络状态的脚本,并且定义两种LED显示的方式,当网络状态正常时调用一种LED的状态,当网络异常时调用另一种状态,网络灯的显示是否已经有眉目了,那么这个就当作今天的“作业“咯。

  • 22
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值