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

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

3天内不再提示

NeoPixel的基本工作方式

454398 来源:工程师吴畏 2019-08-20 11:43 次阅读

第1步:什么是NeoPixel

NeoPixel的基本工作方式

在我们开始学习帮助我们控制它们的库之前,我们先来谈谈NeoPixels。

这些是可单独寻址的LED 所有安装在一根可以通过微控制器上的单引脚控制的字符串上。这意味着一个引脚可以控制所有LED颜色以及在任何给定时间LED都处于打开状态。与普通RGB LED 相比,您会注意到我们需要3个引脚来控制红色 绿色和蓝色值和所有LED必须保持 或关闭。因此,你可以看到使用单独可寻址可以帮助创建一些很酷的效果。

许多公司销售可寻址LED条,但最受欢迎的是Adafruit的 NeoPxiel 。 Adafruit生产一系列可寻址的LED灯条,并提供图书馆来控制它们,这被称为“Adafruit NeoPixel”,还有其他公司已经制作了控制这些可寻址LED的库,但在我看来,我发现Adafruits有最好的支持并且最容易上手

如果你还没有,你可以在这里获得NeoPixel

第2步:安装库

因此我们决定使用Adafruit库来控制我们的NeoPixel,我们如何安装它?

首先,您需要先在计算机上安装 Arduino IDE ,然后才能从此处下载。一旦完成所有加载并继续启动Arduino IDE并执行以下操作:

单击“草图”,然后将鼠标悬停在“包含库”上

点击“管理库”

您现在应该会看到一个弹出窗口打开,这就是我们所在的位置安装和更新新库。

在搜索栏中,搜索“Adafruit NeoPixel”

点击名为的那个Adafruit NeoPixel“

点击”安装“

一旦完成加载,NeoPixel库现在将在您的IDE中。您可以通过检查示例是否已加载到IDE中来测试:

单击“文件”,然后将鼠标悬停在“示例”

在列表中的某个位置,您应该看到“Adafruit NeoPixel”

点击“Adafruit NeoPixel”也看到所有示例

此时,库已成功加载到我们的Arduino IDE中,现在我们可以继续查看示例。

第3步:示例

现在,如果您点击任何一个示例,您可能会有点意外在获得其中一个点亮的过程中涉及多少代码。 “Standardtest”示例有6个额外的功能!控制其中一个绝对比仅仅将红绿色或蓝色引脚设置为高标准RGB条带更具挑战性,但它值得搞清楚,因为它可以让你做一些非常酷的东西。

“标准测试”实际上是更高级的示例之一,所以让我们从一个简单的示例加载开始,比“simple”示例更简单的示例:

点击“文件”,然后将鼠标悬停在“示例”

点击“Adafruit NeoPixel “

点击”简单“

现在我们可以在IDE中打开一个简单的示例。

第4步:简单示例

在这个例子中发生了很多重要的代码,所以我们将逐一看一下。

在示例的最顶层我们有以下代码:

#include

这告诉Arduino我们想要使用NeoPixel及其在此草图中带来的所有属性,如果没有这个草图,草图将无法运行。

接下来,我们看到以下内容:/p》 #ifdef __AVR__

#include

#endif

这说明如果我们使用的是AVR板,例如th e Trinket或Gemma包含与它们兼容的库。如果您使用的是Arduino,则无效。

接下来,我们会看到两行非常重要的代码:

#define PIN 6

#define NUMPIXELS 16

第一个名为“PIN的值“用于告诉草图我们要在微控制器上使用哪个引脚。如果您希望通过微控制器上的引脚8控制NeoPixel,则需要将“6”更改为“8”。

名为“NUMPIXELS”的值用于告诉字符串特定字符串上有多少个像素。例如,我的字符串有8个像素,所以我将值更改为8.此值有助于草图跟踪字符串上有多少像素,允许我们使用此值创建函数,稍后我们将对此进行处理。

接下来,我们有一行代码引用我们已经定义的值:

Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

这段代码实际上并没有为我们服务,它可以帮助微控制器进行通信与NeoPixel。你可能会注意到我们定义的那些值在这里,我们可以删除单词“NUMPIXELS”和“PIN”,如果我们愿意,只需用值替换它们。

接下来,我们有一个延迟值,我们稍后会参考。

int delayval = 500;

这很简单,只是声明“delayval” = 500 这是半秒

现在我们请参阅 Void Setup :

void setup() {

#if defined (__AVR_ATtiny85__)

if (F_CPU == 16000000) clock_prescale_set(clock_div_1);

#endif

pixel.begin();

}

前几行代码再次与该类的饰品和其他微控制器一起使用,因此我们真的不需要担心它。 “Pixel.begin”很重要,这会让草图初始化库。

接下来,我们看到 Void Loop 。这就是有趣的事情发生的地方。

for(int i=0;i

现在,这段代码非常复杂,用于创建一个函数,我们将在下一步回到这一点。

接下来,我们看到控制所有内容的代码

pixels.setPixelColor(i, pixels.Color(0,150,0));

代码以“pixels.setPixelColor”开头,所以似乎有理由相信这一点代码将允许我们更改像素的颜色。第一个值是“i”现在这是代码的一部分我们告诉它我们想要点亮哪个像素,现在它设置为“i”因为我们之前讨论过它的部分功能,但如果我将此值从“i”更改为“3”,然后将代码上传到字符串上的第三个像素会点亮。这就是我们控制个人像素的方法。

在此之后我们看到“pixels.Color(0,150,0)”这些是我们改变颜色的值,第一个值是红色第二个值是绿色,最终值是蓝色。现在,值设置为“(0 ,150,0)“表示条带为浅绿色(0表示颜色关闭,255表示颜色最亮)。如果我要将其改为“(0,0,255)”并上传它,那么条带会变得非常亮蓝色。我们也可以混合像“(150,0,15)”这样的颜色来违反。

接下来我们有最后一段代码:

pixels.show();

delay(delayval);

“pixels.show”将当前设置发送到像素,如果我们没有这个,它将永远不会更新像素,它将保持不变。 “延迟”可以阻止像素更新太快,并且会在我们下一步要做的功能中扮演一个双重角色。

这是一个非常长时间停止,但我们学习了如何控制NeoPixel的关键基础知识,在这一步中,我们了解了如何开启或关闭各个LED以及如何设置这些单个NeoPixel的颜色。

步骤5:简单示例函数

现在将所有基本设置代码放在一边让我们来看看在我之前谈到的基本功能中。

我们要创建的功能会在每个NeoPixel之后打开,所以第一个会点亮,然后会发生短暂的延迟,然后第二个会点亮,然后是另一个短暂的延迟,一直到第8个NeoPixel。

为此,我们使用以下代码:

for(int i=0;i

并且:

pixels.setPixelColor(i, pixels.Color(0,150,0));

你会注意到这封信 “i”在应该有一个用于设置NeoPixel打开的数字的空间中。您还会注意到“i”在第一段代码中也是“i = 0”和“i ++”。

这里发生的事情是我们说“i”=字符串上的第一个NeoPixel(i = 0)(字符串上的第一个NeoPixel是0,第二个是1,第三个是2 。..。.第八个是7)然后我们说我们需要每个循环增加“i” 1 “i ++”然后当我们被问到我们想要点亮哪个NeoPixel时,我们给它赋值“i”所以每次循环运行时“i”的值增加1下一个NeoPixel点亮。

继续上传,你应该看到第一个Neopixel点亮,然后是第二个,然后是第三个点亮,直到它们全部点亮。

现在看一下这段代码:

for(int i=7;i

在这个版本的代码“i”从7开始,并且“我 - ”这将使每个循环的“i”的值减少1,这意味着最后一个Neopixel将亮起,然后是第二个最后一个,直到“i = 0 “第一个会点亮。

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

    评论

    相关推荐

    微软高管谈AI将如何改变工作方式

    企业领导者们渴望了解AI将如何改变工作方式,微软愿意为他们提供所需的帮助。在整个公司范围内,智能 Copilot 副驾驶(国际版)已成为我们提升工作效率、重塑涵盖客户服务至销售等多个环节的业务流程的重要工具。而自主智能体技术的引入,无疑将进一步加速这一变革进程。
    的头像 发表于 11-15 14:00 112次阅读

    PNP传感器输出信号的特点和工作方式

    PNP传感器的输出信号是其工作过程中的关键环节,它决定了传感器如何与外部电路或控制系统进行交互。以下将详细解释PNP传感器的输出信号,包括其特点、工作方式、应用场景以及相关的接线和注意事项。
    的头像 发表于 09-13 17:32 1369次阅读

    串行口的四种工作方式各有什么特点

    串行通信是计算机硬件和外设之间常用的通信方式之一。串行口(Serial Port)是实现串行通信的硬件接口。在计算机系统中,串行口通常用于连接鼠标、调制解调器、打印机等设备。串行口有四种工作方式
    的头像 发表于 08-22 17:37 781次阅读

    放大器的非线性工作方式

    放大器的非线性工作方式是一个复杂而广泛的主题,它涉及到电子学、信号处理以及电路设计等多个领域。在非线性工作方式下,放大器的输出信号不再是输入信号的简单线性放大,而是会引入各种非线性效应,如失真、频率变换、谐波产生等。
    的头像 发表于 08-08 17:32 479次阅读

    三相步进电机有哪几种工作方式

          三相步进电机是一种常见的电机类型,广泛应用于各种自动化设备和精密控制系统中。它具有结构简单、控制方便、运行可靠等优点。三相步进电机的工作方式主要有以下几种:       1.全步工作方式
    的头像 发表于 06-23 16:26 753次阅读
    三相步进电机有哪几种<b class='flag-5'>工作方式</b>?

    永磁同步电动机的结构与工作方式

    永磁同步电动机(Permanent Magnet Synchronous Motor,简称PMSM)作为一种高效、节能的电动机类型,在现代工业、交通、家电等领域得到了广泛应用。其独特的结构和工作方式
    的头像 发表于 06-21 11:15 712次阅读

    PLC的CPU工作方式详解

    Processing Unit,中央处理器)作为其核心组件,其工作方式直接影响到PLC的性能和稳定性。本文将详细探讨PLC的CPU工作方式,包括其工作原理、主要模式以及实际应用中的注意事项,以期为相关技术人员提供参考和借鉴。
    的头像 发表于 06-13 18:20 1537次阅读

    三相步进电机有哪几种工作方式

    三相步进电机是一种常见的电机类型,广泛应用于各种自动化设备和精密控制系统中。它具有结构简单、控制方便、运行可靠等优点。三相步进电机的工作方式主要有以下几种: 全步工作方式 全步工作方式是三相步进电机
    的头像 发表于 06-12 09:20 932次阅读

    斩波器的定频调宽工作方式

    斩波器的定频调宽工作方式是一种电力电子控制技术,用于调节输出电压或电流。
    的头像 发表于 05-24 16:12 567次阅读

    DC电源模块的原理及工作方式

    BOSHIDA  DC电源模块的原理及工作方式 DC电源模块是一种将交流电转换为直流电的设备,它将交流电输入端转换为稳定的直流电输出,以供电子设备使用。DC电源模块的工作原理及工作方式如下。  DC
    的头像 发表于 04-24 10:37 625次阅读
    DC电源模块的原理及<b class='flag-5'>工作方式</b>

    最常见的直流负载工作方式

    最常见的直流负载工作方式  直流负载工作方式是指在直流电路中使用的各种负载方式。直流负载是用于测试和测量直流电源输出能力和能效的设备,可以模拟真实负载条件下的电流和功率需求。本文将详细介绍最常
    的头像 发表于 01-18 15:12 676次阅读

    POE工业交换机的原理和工作方式是什么?

    POE工业交换机是现代工业网络通信中不可或缺的一部分。该工业级交换机的完整名称是“PoweroverEthernet(以太网供电)”,其主要特点是能够通过网络连接线同时传输数据和电力。在这篇文章中,我们将详细讨论一下POE工业交换机的原理和工作方式
    的头像 发表于 12-21 15:50 1264次阅读

    热敏电阻的工作原理 热敏电阻工作方式

    热敏电阻的工作原理 热敏电阻工作方式  热敏电阻是一种利用温度变化来改变电阻值的电子元件。它的工作原理基于材料的温度特性,通常由某种半导体材料制成。热敏电阻的工作方式可以分为负温度系数
    的头像 发表于 12-20 10:34 1238次阅读

    RC和RCD缓冲电路的工作方式、区别和优缺点?

    RC和RCD缓冲电路的工作方式、区别和优缺点? RC和RCD缓冲电路是电子系统中常用的两种电路,用于解决信号的延时和冲击波的衰减问题。它们在工作方式、区别和优缺点方面有一些不同。 首先,我们来了
    的头像 发表于 11-20 17:05 2400次阅读

    三相升压器的原理、工作方式、应用领域

    三相升压器的原理、工作方式、应用领域 三相升压器是一种电力设备,用于将输入的低压三相电流转换为高压三相电流。它是电力输电和配电系统中不可或缺的部分,广泛应用于工业、农业、交通等领域。本文将详细介绍
    的头像 发表于 11-20 14:44 1203次阅读