RGB(附源码)

1.1 看原理图

数据从输入引脚输入,依次传递到下一个RGB灯的地方,这里的输入引脚相对于主控来说是输出。

RGB灯这个模块的名称是WS2812B,我们得去了解这个模块。

1.2 WS2812

每个灯都是独立的,每个灯需要24位数据才能正常显示,数据在经过灯的时候会自动被截留24位数据。

在使用之前需要280us以上的复位时间。

​​​​​​​1.3 RGB24位数据组成

本身比例就是R:G:B=8:8:8

​​​​​​​1.4数据怎么发送??

 

 

发送数据0:数据线持续220ns~380ns的高电平,然后再持续580ns~1us的低电平,此时就是数据0。

发送数据1:数据线持续580ns~1us的高电平,然后再持续220ns~420ns的低电平,此时是数据1。

复位:280us以上的低电平。

话不多说,直接上代码:

​​​​​​​2.1 RGB应用与配置​​​​​​​​​​​​​​

#include "rgb.h"
#include "systick.h"

/**************************************************
*函 数 名:RGB_IOInit
*函数功能:RGBIO口初始化
*返 回 值:无
*入口参数:无
*出口参数:无
*备    注:
**************************************************/
void RGB_IOInit(void)
{
	GPIO_InitTypeDef  GPIO_InitStruct;
	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE);
	//初始化IO口 设为推挽输出
	GPIO_InitStruct.GPIO_Pin = GPIO_Pin_15;
	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;
	GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
	GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOB,&GPIO_InitStruct);
	
	RGB=0;             //复位
	RGB_SendColor(0);  //RGB1默认熄灭
	RGB_SendColor(0);  //RGB2默认熄灭
	RGB_SendColor(0);  //RGB3默认熄灭
	RGB_SendColor(0);  //RGB4默认熄灭
	
}
/****************************************
 * 函 数 名:WS2812_Reset
 * 函数功能:复位RGB灯的数据
 * 入口参数:无
 * 出口参数:无
 * 备    注:拉低数据线280us以上就是复位信号
 ****************************************/
void WS2812_Reset(void)
{
	RGB = 0;
	delay_us(300);	//复位,拉低280us以上
}
/**************************************************
*函 数 名:RGB_WriteByte
*函数功能:WBS2812发送一个字节,先发高位
*返 回 值:无
*入口参数:dat 颜色值
*出口参数:无
*备    注:RGB PB15 内部调用,所以使用static修饰
**************************************************/
static void RGB_WriteByte(u8 dat)
{
	u8 i=0;
	for(;i<8;i++)
	{
		if(dat&0x80)//发送1码 使高电平保持至少1us,低电平保持220ns~420ns
		{
			RGB = 1;
			delay_us(1);
			RGB = 0;
			for(u8 j=0;j<11;j++) ;
		}
		else//发送0码 使高电平保持220ns~380ns,低电平至少保持1us
		{
			RGB = 1;
			for(u8 j=0;j<8;j++) ;
			RGB = 0;
			delay_us(1);
		}
		dat<<=1;//左移一位继续比较
	}	
}

/**************************************************
*函 数 名:RGB_SendColor
*函数功能:发送一种颜色 24位数据
*返 回 值:无
*入口参数:color 颜色像素 例:0x0000FF 发送纯蓝色
*出口参数:
*备    注:先发绿色再到红色、蓝色,一次发八位,先发高位数据
**************************************************/
void RGB_SendColor(u32 color)
{
	RGB_WriteByte(color>>16);//G
	RGB_WriteByte(color>>8);//R
	RGB_WriteByte(color);   //B
}

嵌不入
关注 关注
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WS2812 RGB带控制例程代码
01-12
WS2812 RGB带控制代码,可移植性强
STM8 RGB控制源代码(支持红外遥控)
01-28
源码是用于一个发光LED椅子项目的完整源码,支持市面上通用RGB红外遥控器,有渐变,闪烁,褪变,颜色选择等功能。使用STM8 TIM1 PWM调制RGB,其中白色使用的是白色LED,在使用锂电池时可以省电些。(注意STM8控制字需要使能TIM1的4个PWM通道) GPIOD口支持接入5个触发变色器件,低电平触发RGB变色。(项目中使用霍尔磁性传感器)
RGB红绿——Arduino
最新发布
qwsbcjendb的博客
08-05 454
RGB红绿——Arduino
用c写一段控制rgb亮度的代码
weixin_42603332的博客
02-18 616
int brightness = 100;// 设置RGB的亮度 void setRGBLightBrightness(int brightness) { analogWrite(redPin, brightness); analogWrite(greenPin, brightness); analogWrite(bluePin, brightness); }// 调整亮度 void...
RGB颜色代码大全
cary20220411的博客
01-19 1433
https://tool.oschina.net/commons?type=3
YUV422 --> RGB 代码
zhongnanjun_3的专栏
02-27 1799
/*R = Y + 1.4075 *(V-128) G = Y – 0.3455 *(U –128) – 0.7169 *(V –128) B = Y + 1.779 *(U – 128)*/unsigned char GetYUVR(int nY,int nU,int nV){    int nR;    //V=nV-128    nR = nY + (nV-128)+((nV-128)*10
RGBLED编程,显示全部颜色
ic2121的博客
01-29 5183
对了相信很多小伙伴们通过对电路图的接线了解一定已经会了,就是公共端和开发板电源相连,共阳极就连开发板的vcc共阴极就连开发板的GND,然后将RGB这三个引脚分别连入开发板的模拟量输出端口,之前已经介绍过了如何选择端口这里就不再赘述了。这样一来我们的硬件连接部分就轻松的搞定了,然后打开米思齐编程软件找到输入输出模块中的模拟量输出模块,这里需要三个这个模块进行设置,因为有三个引脚,这里还有一件事要注意那就是编写程序前一定要先写注释后再编程,点击注释模块输入备注,,因为厂家的不同,它生产出来的顺序是不一样的。
各种颜色RBG对照
11-15 6919
  颜色表(LightWave) 黑色 R G B 黑色 0 0 0 象牙黑 41 36 33 灰色 R G B 泠灰 128 138 135 灰色 192 192 192 石板灰 112 128 144 暖灰色 128 128 105 白色 R G B 古董白 250 235 215 天蓝色 240 255 255 桔黄色 255 228 196 白杏仁 255 235
常用RGB颜色代码
11-25
给网页制作人员提供准确的颜色代码表,和相对应的RGB颜色代码
nv12转rgb转bmp格式,亲测可用源码
11-16
源码通常包含读取NV12数据、进行YUV到RGB转换、构建BMP文件头和写入BMP文件等功能模块。由于你提供的压缩包中包含"bmp"文件,可能是一个已经转换好的BMP示例,或者是一个包含了源码的文件,具体要看文件内容。 了解...
python:实现YUV转RGB(完整源码)
希望我的博客,能帮上你解决学习中工作中所遇到的问题
03-29 512
python:实现YUV转RGB(完整源码)
USB 可编程RGB LED条显示控制器(硬件+源码+设计说明等)-电路方案
04-21
USB 可编程RGB LED条显示控制器描述: 该电路设计主要应用于可编程RGD LED条,控制板上自带电源插孔。为可编程LED条提供便捷的USB控制。USB 可编程RGB LED条控制器与Linux(包括Raspberry Pi),Mac和Windows平台兼容,并且能够以高帧率驱动多达700个LED RGBRGB LED条显示基于Python的软件库BiblioPixel支持AllPixel Mini,实现对RGBLED条动画创建和控制。 USB 可编程RGB LED条显示控制器特性和支持的LED芯片组: 所有流行的LED条芯片组,包括:LPD8806,WS2801,WS2811 / WS2812(NeoPixel),WS2811 400kHz,APA102(DotStar),TM1809,TM1803,TM1804,UCS1903,P9813,SM16716,LPD1886 使用方便。无需担心芯片组协议,电平转换器或电源。只需插入电源,连接您的LED,设置芯片组代码,然后就可以显示 LED 条! 通过USB端口控制,并通过BilbioPixel库支持Python 。 驱动超过700像素与多个AllPixel Minis作为一个(BiblioPixel的一个功能)。 支持通过板载直流桶式插座(5A最大电流)为5V或12V LED类型供电。 通过安装带的保护二极管,直接从USB电源驱动少量LED。 件内容我们提供了动画库例子,让您快速启动并运行。 USB 可编程RGB LED条控制器效果图展示: USB 可编程RGB LED条控制器实物截图: USB 可编程RGB LED条显示控制器电路PCB截图: 新版本注意事项: 不需要焊接 - 所有零件都预先焊接 较小尺寸 - 1.6 x 1.2英寸(40.6 x 30.5 mm) 100%向后兼容:为AllPixel编写的任何代码将在Mini版本上运行 USB Micro连接器:更常见的连接器 所有件内容截图:
STM32F407 USART1控制RGB实验
01-06
STM32F407–USART1 控制 RGB实验 编程的大部分函数都是在 c 文件里写的,头文件是一个声明 c 文件里函数的地方。 USART1 控制 RGB实验的 c 文件里主要包括两个函数 void Debug_USARTx_Config(void) 、 void Usart_SendByte( USART_TypeDef * pUSARTx, uint8_t ch) 函数名字很随意,能突出函数的功能就行。 void Debug_USARTx_Config(void) 函数 编程要点: 一、配置彩的GPIO; 二、配置USART。 一、配置 GPIO: 1.定义一个 GP
WS2812B RGB 51单片机 STC15W 驱动代码
03-23
STC15W单片机在33MHz下只用一个引脚来驱动WS2812B串,含多个Keil工程文件。 单个红色旋转效果程序 红绿蓝三色旋转效果程序 七彩覆盖/渐变/切换效果程序 双色渐变彩带旋转效果程序 以及一个综合程序。所使用引脚详见代码及注释。
STM32实验RGB控制.zip
08-06
STM32 在led显示RGB三色的led,并进行颜色及亮度控制。
编程中常遇到的一些颜色的RGB
12-09
网上经常能找到,但是都要转化,这个很方便,即用即写!
Go:HEX与RGB互转算法(完整源码)
希望我的博客,能帮上你解决学习中工作中所遇到的问题
09-19 366
Go:HEX与RGB互转算法(完整源码)
JavaScript:实现RGB和HSV相互转换算法(完整源码)
希望我的博客,能帮上你解决学习中工作中所遇到的问题
09-13 306
JavaScript:实现RGB和HSV相互转换算法(完整源码)
vb调色板 调节RGB三原色 控制字体颜色 源码
07-13
为了提供源码,一个简单的VB程序可能包含以下部分: ```vb Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click If ColorDialog1.ShowDialog() = ...
yv12转rgb opencv源码
08-02
yv12转rgb是一种像素格式的转换方法,它将YUV颜色空间中的图像数据转换为RGB颜色空间中的图像数据。...以上是利用OpenCV的源码实现yv12转rgb的方法,可以根据具体的使用场景进行相应的调整和优化。
写文章

热门文章

  • LCD文字和图片取模软件的使用 3692
  • 串口收发数据 3213
  • 陀螺仪MPU6050(IIC&源码) 2506
  • IIC及配置应用(SHT30读取温湿度) 2446
  • 串口简括及配置(寄存器版、源码) 1927

最新评论

  • IIC及配置应用(SHT30读取温湿度)

    步步晚: 你好,可以发我一下源码吗表情包

  • LCD文字和图片取模软件的使用

    CSDN-Ada助手: 非常感谢您分享关于LCD文字和图片取模软件的使用,这篇博客相信对读者们有很大的帮助。在此基础上,我们期待您能够继续分享更多有关嵌入式系统开发的技术,例如介绍如何使用嵌入式系统设计开发板、基于嵌入式系统的物联网应用开发等等,帮助读者们更好地掌握相关技术。期待您的下一篇博客! 2023年博客之星「城市赛道」年中评选已开启(https://activity.csdn.net/creatActivity?id=10470&utm_source=blog_comment_city ), 博主的原力值在所在城市已经名列前茅,持续创作就有机会成为所在城市的 TOP1 博主(https://bbs.csdn.net/forums/blogstar2023?typeId=3152981&utm_source=blog_comment_city),更有丰厚奖品等你来拿~。

  • LCD文字和图片取模软件的使用

    2301_77710637: 有取模软件吗

  • GPIO简解即配置(寄存器版)

    嵌不入: 很高心能回答你的问题,本人也正在学习嵌入式,请多多指教。在我老师的教授,我所理解的嵌入式是:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。应用领域范围很广阔,军工、民用、商业都会涉及,具体在工业控制、信息家电、交通管理等应用较多。

  • GPIO简解即配置(寄存器版)

    CSDN-Ada助手: 嵌入式系统有哪些特点,可应用在哪些领域?

大家在看

  • SSM黑河学院校友交流网站k1xxu 点赞收藏
  • 基于docker运行Jenkins
  • 【前缀和&&哈希表】----LeetCode例题实战(配图+解析) 524
  • TwinCAT 3/2 编码器方向和轴旋转方向不一致 230
  • 谷粒商城の订单服务&分布式事务 348

最新文章

  • LCD文字和图片取模软件的使用
  • LCD简括
  • SPI&W25Q64(硬件编程)
2023年18篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

玻璃钢生产厂家上海商场美陈市场报价宣威市玻璃钢雕塑设计价格玻璃钢雕塑设计平台排名南昌学校玻璃钢雕塑批发郑州做玻璃钢雕塑电话潍坊玻璃钢树脂雕塑玻璃钢雕塑茶几厂五华区玻璃钢雕塑的设计制作咨询镇江白色玻璃钢花盆商场美陈就是dp杭州生产玻璃钢面包雕塑商场美陈雕塑设计价格南京玻璃钢雕塑多少钱常州动物玻璃钢雕塑价格永州玻璃钢牛雕塑北京常见商场美陈批发新荣玻璃钢花盆花器大型玻璃钢定制雕塑安庆定制玻璃钢雕塑报价中山玻璃钢香蕉雕塑厂家玻璃钢仿铜雕塑公司电话多少舟山个性化玻璃钢雕塑哪家便宜郑州玻璃钢雕塑厂家制作铜陵动物玻璃钢雕塑优势供销树脂玻璃钢花盆长沙景观园林玻璃钢人物雕塑甘南景区玻璃钢雕塑公司玻璃钢动物雕塑值得信赖河北商场美陈厂家供应清远玻璃钢雕塑别具一格香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化