「雕爷学编程」Arduino动手做(28)——RGB全彩LED模块
一、介绍
本篇文章将介绍如何使用Arduino控制RGB全彩LED模块。RGB全彩LED模块是一种能够输出红、绿、蓝三种颜色的LED模块,通过组合三种颜色可以输出各种颜色的光线。本篇文章将会介绍如何控制RGB全彩LED模块的颜色,并在实际环境中进行实验演示。
二、材料
- Arduino UNO控制板
- RGB全彩LED模块
- 面包板
- 杜邦线
三、原理
RGB全彩LED模块实际上是由三个独立的LED组成:红色LED、绿色LED和蓝色LED。通过控制三个LED的亮度可以输出各种颜色的光线。Arduino可以通过PWM输出控制三个LED的亮度,从而控制RGB全彩LED模块输出不同颜色的光线。
四、电路图
将RGB全彩LED模块的各个引脚连接到Arduino,并加入合适的电阻:
- R引脚连接到Arduino的9号引脚,加入220 Ω电阻
- G引脚连接到Arduino的10号引脚,加入220 Ω电阻
- B引脚连接到Arduino的11号引脚,加入220 Ω电阻
五、代码实现详解
代码分为三个部分:引入库、定义引脚和主函数。
引入库:
#include <Adafruit_NeoPixel.h>
我们需要引入Adafruit_NeoPixel库,这是一款处理各种LED灯的库。
定义引脚:
#define PIN 6 //指定控制灯带信号脚
#define NUM_LEDS 1 //指定LED数量,此时只有一个RGB全彩LED
首先定义LED带的信号脚为6号引脚,并且设定LED数量为1。
主函数:
//定义灯带对象,第一个参数指定LED数量,第二个参数指定信号脚,第三个参数指定灯光模式
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);
void setup()
{
pixels.begin(); //启动灯带
}
void loop()
{
pixels.setPixelColor(0, pixels.Color(255, 0, 0)); //设置第0个LED的RGB颜色(纯红)
pixels.show(); //刷新LED灯
delay(1000); //延迟1秒
pixels.setPixelColor(0, pixels.Color(0, 255, 0)); //设置第0个LED的RGB颜色(纯绿)
pixels.show(); //刷新LED灯
delay(1000); //延迟1秒
pixels.setPixelColor(0, pixels.Color(0, 0, 255)); //设置第0个LED的RGB颜色(纯蓝)
pixels.show(); //刷新LED灯
delay(1000); //延迟1秒
pixels.setPixelColor(0, pixels.Color(255, 255, 255)); //设置第0个LED的RGB颜色(纯白)
pixels.show(); //刷新LED灯
delay(1000); //延迟1秒
pixels.setPixelColor(0, pixels.Color(0, 0, 0)); //关闭LED灯
pixels.show(); //刷新LED灯
delay(1000); //延迟1秒
}
主函数中,我们首先定义了一个Adafruit_NeoPixel对象,指定LED数量和信号脚,并且在setup函数中启动了灯带。在loop函数中,我们通过setPixelColor函数设置LED的颜色,然后通过show函数刷新LED灯。其中,setPixelColor函数需要输入两个参数,第一个参数指定要控制的LED在LED灯中的位置(如果只有一个LED,输入0),第二个参数则需要使用pixels.Color函数指定LED的颜色,输入三个参数分别为红色、绿色和蓝色的亮度值,取值范围为0-255。最后,通过delay函数实现了每一种颜色的显示持续1秒的效果。
六、实验演示
将Arduino接入电脑,上传代码后即可看到RGB全彩LED依次输出红、绿、蓝、白和关闭的效果。如图所示:
七、总结
通过本篇文章,我们了解了RGB全彩LED模块的工作原理,并且用Arduino控制了RGB全彩LED模块的颜色,实现了红、绿、蓝、白和关闭五种颜色的输出。希望读者们通过本篇文章的学习,对Arduino控制LED模块有更深入的认识。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:「雕爷学编程」Arduino动手做(28)——RGB全彩LED模块 - Python技术站