0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

这个控制LED的经典算法 你会用吗?

得捷电子DigiKey 来源:未知 2023-04-13 02:40 次阅读
Q A &问:什么是查理复用算法(Charlieplexing )? 这算法可以用来做什么? 查理复用算法(Charlieplesing),具备控制多个LED的能力,即可以用较少数量的微控制器输出端来控制较多数量的 LED(微控制器输出端少于LED数量)。在1995年,Maxim公司的 Charles Allen 首次提出这一想法,并命名为 Charlieplesing。

查理复用算法使用微控制器的所有三种逻辑状态以及LED的单向导电性来控制矩阵。如果你试图显示不同进程的状态,并且不想占用多个微控制器引脚,那么这可能很有用。

以下是一组使用查理复用算法LED的最简单例子。

99b966cc-d960-11ed-bfe3-dac502259ad0.png

注意,在上面的例子中,它使用了一组互补的 LED。基于 LED 如何允许电流在一个方向流动并阻止电流在另一个方向上流动,它允许我们根据输入/输出的设置来控制两个 LED。要使用此例子,可以通过更改引脚的输出类型来控制具有两个引脚的两个 LED。如果你将引脚2设置为高电平,引脚1设置为低电平,则L1 -LED将点亮。如果将引脚1设置成高电平,而引脚2设置成低电平,那么L2 -LED将会点亮。

以下是如何在 Arduino 设置。

void setup() {Serial.begin(9600);

}

void loop() {pinMode(1,OUTPUT);pinMode(2,OUTPUT);

pinMode(3,INPUT);

digitalWrite(2,HIGH);digitalWrite(1,LOW);

delay(1000);

Serial.println("1");

pinMode(1,OUTPUT);pinMode(2,OUTPUT);

pinMode(3,INPUT);

digitalWrite(1,HIGH);digitalWrite(2,LOW);

delay(1000);

Serial.println("2");}

现在看这个示意图,你可能会想,“这怎么有用?我们只使用两个引脚控制两个LED。”让我们看看当我们添加第三个引脚时会发生什么。

以下是如何设置3个引脚的LED。

99c986ba-d960-11ed-bfe3-dac502259ad0.png

通过此设置可以看到,你可以使用3个引脚控制6个 LED。要在此设置中控制LED,你需要使用微控制器的所有三种状态。如果你想打开L1- LED而不打开其他LED,则必须将引脚2设置为高,将引脚1设置为低,将引脚3设置为输入。引脚3必须设置为输入的原因是将该引脚设置为高阻抗。这基本上从电路上断开了引脚。此外,如果我们将引脚3设置为LOW,LED L4也会亮起。

现在,如果你想打开L2-LED,用户可以将引脚1设置为高,将引脚2设置为低,将引脚3设置为输入。再次注意,如果我们没有将引脚3设置为输入,则L4-LED也将打开。

然后,用户可以完成此过程,直到他们按顺序成功点亮每个LED。

如果你想用 Arduino 编写代码, 请查看这里

现在我们已经探索了2个引脚和3个引脚,你可以看到查理复用算法如何成为一个有用的工具。让我们再为4个输入引脚进行一次设置。

在我们展示4个输入引脚的设置之前,你能猜出我们能够控制多少个 LED 吗?

通过将要使用的I/O数量乘以相同的I/O数量减1,可以计算出可以控制的LED数量。因此,例如,如果我们想使用4个I/O引脚,我们将该数字乘以3,这将让我们知道,我们可以用4个I/O控制多达12个LED。

以下是如何设置4个 I/O 的 LED。

99e1e0de-d960-11ed-bfe3-dac502259ad0.png

注意,我对这一个连接进行了颜色编码,以使连接更清晰。如你所见,通过在原理图中再添加一个引脚,我们可以再添加 6个 LED。为了控制LED,此设置与3个引脚的工作方式相同,但是,在这种情况下,我们将设置2个引脚作为输入。这里是 Arduino 代码,用于控制所有 12个LED。

正如你所看到的,如果你 I/O 引脚数量有限,这可能是一个有用的工具。

如果你想看到查理复用算法的其他选项,我看到的使用查理复用算法的最常见项目之一是 LED 立方体。如果你在网上搜索查理复用算法LED立方体,你会看到几个不同的版本。

9a015b9e-d960-11ed-bfe3-dac502259ad0.png

更多LED设计的技术信息请查看以下内容:
  • 用生长灯帮助植物茁壮成长

  • LED新设计技巧和驱动器选择浅析

  • 橱柜灯和普通照明灯带的组装指南

  • 了解如何避免LED被腐蚀

  • LED 应用:该选通孔还是表面贴装好
9a015b9e-d960-11ed-bfe3-dac502259ad0.png    最后,如果你喜欢这篇文章,快分享给更多的小伙伴吧!切记点个赞哦!

提示点击菜单设计支持:工程师锦囊,获取更多工程师小贴士


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 得捷电子
    +关注

    关注

    1

    文章

    255

    浏览量

    8595

原文标题:这个控制LED的经典算法 你会用吗?

文章出处:【微信号:得捷电子DigiKey,微信公众号:得捷电子DigiKey】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    公司大厅通常会用哪些LED显示屏?

    公司大厅通常会用到以下几种 LED 显示屏: 一、全彩 LED 显示屏 功能与特点: 色彩丰富鲜艳:能够呈现出 1600 多万种颜色,真实还原图像和视频的色彩,无论是公司的宣传视频、产品图片,还是
    的头像 发表于 11-15 14:51 26次阅读

    知道LED全息隐形屏是什么吗?

    在当今的科技时代,各种新型显示技术层出不穷,其中LED全息隐形屏是近备受关注的一种。 如果对这项技术还不是很了解,迈普光彩小编一起走进这个神秘的技术世界吧。 LED全息屏屏幕呈网格状
    的头像 发表于 10-28 14:13 107次阅读
    <b class='flag-5'>你</b>知道<b class='flag-5'>LED</b>全息隐形屏是什么吗?

    留言有奖| 这个七夕,寻找属于的Aigtek“挚爱”

    工程师们的心!就让我们一起来看看那些广大工程师心目中的“经典挚爱”,相信总有一款适合~寻找属于的Aigtek“挚爱”爱就要马上行动!信号高速响应,绝不仅是嘴上
    的头像 发表于 08-09 08:01 216次阅读
    留言有奖| <b class='flag-5'>这个</b>七夕,寻找属于<b class='flag-5'>你</b>的Aigtek“挚爱”

    机器学习的经典算法与应用

    关于数据机器学习就是喂入算法和数据,让算法从数据中寻找一种相应的关系。Iris鸢尾花数据集是一个经典数据集,在统计学习和机器学习领域都经常被用作示例。数据集内包含3类共150条记录,每类各50个数
    的头像 发表于 06-27 08:27 1562次阅读
    机器学习的<b class='flag-5'>经典</b><b class='flag-5'>算法</b>与应用

    BLDC电机控制算法详解

    算法。本文将详细介绍BLDC电机的控制算法,包括电速算法、电流环控制算法、磁场导向
    的头像 发表于 06-14 10:49 854次阅读

    运动控制算法有哪些

    运动控制算法是机器人学和自动化领域中的核心技术之一,它们负责规划和执行机器人或自动化设备的精确运动。以下是一些常见的运动控制算法,以及它们的基本原理和应用场景。 PID
    的头像 发表于 06-13 09:17 2030次阅读

    常用的电机控制算法有哪些

    在电机控制领域,选择合适的控制算法对于实现高效、精确且稳定的电机运行至关重要。以下将详细介绍几种常用的电机控制算法,并通过具体的分析和实例,
    的头像 发表于 06-05 16:31 2029次阅读

    如何给CyBootProgrammer.Img这个固件添加一条控制led状态的指令?

    我想对CyBootProgrammer.Img这个固件添加一条控制led状态的指令,我是小白,我想知道怎么写配置能控制引脚的高低电平
    发表于 05-27 08:28

    Led显示屏控制系统怎么使用 led显示屏控制器怎么设置

    Led显示屏控制系统是一种用于控制LED显示屏的硬件设备,通过它可以实现对LED显示屏的亮度、颜色、显示内容等参数的设置和
    的头像 发表于 02-03 14:03 7378次阅读

    AC电机控制算法是什么

    AC电机控制算法是一种用于控制交流电机运行的技术,它可以实现对电机的启动、停止、速度调节和位置控制等功能。本文将对AC电机控制
    的头像 发表于 01-11 11:21 955次阅读
    AC电机<b class='flag-5'>控制</b><b class='flag-5'>算法</b>是什么

    STM32控制中常见的PID算法总结

    在很多控制算法当中,PID控制算法又是最简单,最能体现反馈思想的控制算法,可谓
    发表于 12-27 14:07 1528次阅读
    STM32<b class='flag-5'>控制</b>中常见的PID<b class='flag-5'>算法</b>总结

    STM32按键控制LED的亮灭

    使用一个按键控制LED的亮灭,按键按下时LED亮起,按键松开时LED熄灭。通过按键控制实验来介绍下 IO 口作为输入的使用。本例中用到了GP
    的头像 发表于 12-11 14:19 3542次阅读
    STM32按键<b class='flag-5'>控制</b><b class='flag-5'>LED</b>的亮灭

    作为射频工程师,真的会用“dB”?

    作为射频工程师,真的会用“dB”?
    的头像 发表于 12-06 14:51 536次阅读
    作为射频工程师,<b class='flag-5'>你</b>真的<b class='flag-5'>会用</b>“dB”?

    飞行控制PID算法的作用解析

    PID控制器是一种线性控制器,它主要根据给定值和实际输出值构成控制偏差,然后利用偏差给出合理的控制量,目前,人们通过科学研究获得了诸多具有优异控制
    的头像 发表于 11-27 10:57 1648次阅读
    飞行<b class='flag-5'>控制</b>PID<b class='flag-5'>算法</b>的作用解析

    178个经典c语言源代码+算法大全

    电子发烧友网站提供《178个经典c语言源代码+算法大全.rar》资料免费下载
    发表于 11-21 10:19 6次下载
    178个<b class='flag-5'>经典</b>c语言源代码+<b class='flag-5'>算法</b>大全