创客系列教程——认识LED灯
认识LED灯
一、初识LED灯#
LED灯
是一种能够将电能转化为可见光的固态的半导体器件,它可以直接把电转化为光。LED灯逐步融入到生活中的方方面面:室内外的照明、电子指示牌、酷炫的舞台灯光、车辆的转向灯等等都有LED
的存在。

从信息的视角看,LED灯
是一种输出装置
,除了可以照明以外,也可以作为机器表达信息的一种方式。本节我们就来学习使用LED灯
。
在开源硬件中LED灯的样式很多,如下图所示。为了便于低年级学生使用,在很多开源硬件套件中,LED灯的连接都采用RJ45接口
(俗称水晶头借口)封装。
二、控制LED灯#
LED灯
的基本使用无非是控制灯的开和关。有人会说这个简单啊,只需要将LED灯
的正负极连接到电源上,灯不就可以亮了,断开电路灯不就熄灭了。
确实如此,这种控制LED灯的方式是物理控制
。但LED灯
作为开源硬件
的一种输出设备
时,我们往往在连接好电路后,不会使用物理控制
,更高级的做法是利用编程指令来控制LED灯
线路上的高低电压,从而改变灯的明暗,即编程控制
。
要想进行编程控制
,首先要将LED灯连接到开源硬件主控板上,以OSTD主控板为例,连接方法如下图所示:
完成了LED灯的连接后,我们就可以通过编程指令来控制LED灯了。OSTD套装中的编程指令如下图所示,该指令有两个参数
需要填写。
- 第1个参数是接口,有六个选项,分别对应主板上的六个橙色
RJ45接口
。 - 第2个参数是电平,有两种选项(高/低),可以让设置的接口输出高/低电平。
- 高电平:会有较高的电流从相应接口输出,与之连接的LED灯会点亮。
- 低电平:不会有较高的电流从相应接口输出,与之连接的LED灯不会点亮。
三、LED灯编程#
到此你应该可以通过编程指令
来控制LED灯了吧。下面我们来通过两个编程任务来体会编程控制
与物理控制
相比的优势吧。
任务1.闪烁的LED灯#
任务介绍:LED灯作为一种输出装置,我们可以用它来表达信息,单个LED灯可以通过闪烁来表达信息,在不同的场景下可以有不同的含义,如火灾报警器上,LED灯的快闪可以作为警示信号;而LED灯在机器人眼部的闪烁可以作为机器人“眨眼睛”的信息表达。
任务要求:能够控制LED灯按照指定的时间间隔来闪烁。
编程脚本:
编程解析:程序开始运行后,反复切换高低电平,等待时间中的秒数可以根据实际需要修改,从而控制LED灯的闪烁频率。
任务2.流光溢彩的流水灯#
任务介绍:当有多个LED灯的时候,我们便可以制作流水灯的特效。这在电子指示牌、汽车转向灯等装置中可以增强指示信号的表达。
任务要求:能够控制LED灯组(3个或以上)按照一定的方向依次点亮,并循环往复。
编程脚本:
编程解析:每一时刻需要同时控制所有灯的状态。如一开始只有接口4的灯亮,下一个状态(当0.5秒后)只有接口5的灯亮,其他的要设置为低电平。
拓展任务:美轮美奂的呼吸灯#
任务介绍:当有多个LED灯的时候,我们便可以制作流水灯的特效。这在电子指示牌、汽车转向灯等装置中可以增强指示信号的表达。
任务要求:能够控制一个LED灯的亮度由暗到亮逐步变化,再由亮到暗逐步变化,类似呼吸的节奏。
难点提示:设置某一个接口输出电平的指令,输出的状态只有两种:高/低,计算机二进制中也常用1和0表示。我们把这种输出叫做数字输出
。
其实,设置高电平,就会给连接的LED灯较高的电压,从而点亮LED灯。那么问题来了,如果只是输出两种状态是无法改变LED灯的亮度变化的。要想改变LED灯的亮度,只有逐步改变输出的电压才能让LED亮度有变化。
在OSTD的机器人主控板中的指令并没有封装这一指令,但可以如下图所示,将控制板切换为Arduino Uno
来找到模拟输出的指令
。
模拟输出指令
可以输出连续变化的信号(电压),这种连续变化的信号状态就不只两种了,我把称之为模拟信号
。
xDing软件中模拟输出指令
的使用如下图:
需要特别注意的是:
-
参数1:是指输出的引脚,而不是橙色的
Rj45
端口。 -
参数2:数字越大,输出功率越大,灯就越亮。
编程脚本:
编程解析:通过亮度值
变量来改变模拟输出指令
中的输出参数,注意为了防止输出电压过大,亮度值最好不要到255。
微信关注字节杂谈公众号,更有视频演示及完整系列教材噢
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」