精华内容
下载资源
问答
  • WS2811

    2020-12-28 12:44:15
    m having an issue with WS2811 strips from BTF-LIGHTING. The thing is, I have several ESP12 boards, Wemos D1 minis and one nodemcu v2. And these strips only works with NodeMCU. No matter what I do, it ...
  • WS2811驱动

    2018-06-21 19:38:43
    WS2811驱动代码,WS2811驱动代码WS2811驱动代码WS2811驱动代码WS2811驱动代码
  • ws2811 用于控制Alitove WS2811 RGB灯串的简单python代码 警告:这是废话 电路的有用链接: : 安装python库的有用链接: : sudo apt-get install python3-pip然后安装以下库: rpi_ws281x Adafruit-电路python...
  • 欧米茄2-ws2811-lkm 用于Onion Omega2Linux内核模块,用于控制WS2811 / WS2812 LED。 它使用的是位冲击,因此您可以使用任何GPIO引脚。 此外,它同时支持多个引脚并同时写入它们,因此您可以将多个LED链连接到不同...
  • WS2811数据手册

    2019-03-02 10:10:45
    WS2811__V1.4_EN_18112019092521.pdf是ws2811数据手册
  • esp8266-ws2811-rgb-led-strip 基于 NodeMCU 的代码,用于基于 HTTP 的 WS2811 LED 控制 特征: 支持多种WIFI设置; 自动在 WiFi 之间跳跃,直到找到第一个可用的 WiFi 使用 HTTP 服务器和基于查询参数的请求对 ...
  • WS2811规格书 PDF

    2019-04-21 09:49:01
    WS2811规格书 PDF WS2811 单线 256 级灰度三通道 恒流 LED驱动 IC
  • WS2811资料及方案.rar

    2021-04-21 20:21:35
    WS2811恒流LED驱动IC中文PDF+WS2811幻彩灯条内置灯条介绍
  • WS2811-膨胀机-源码

    2021-02-17 08:26:18
    “#WS2811-Expander”
  • WS2811_C51程序

    2016-12-22 15:53:18
    WS2811_C51程序
  • ws2811 blink randomly

    2020-11-24 14:24:45
    <div><p>ws2811 blink randomly ,see video https://goo.gl/photos/QYTVuNe7evucHtU38</p> <p>Can you add a metod to stop spi dma? And suggest hardware modification to better ws2812 compliant.</p><p>该提问...
  • WS2811_201705_17101023171528

    2018-12-05 14:36:56
    ws2811灯条程序控制 灯条模式,调节色彩,网上看到这个资源比较少,上传共享一下。
  • 三通道LED驱动WS2811

    2018-05-05 09:35:11
    WS2811 是三通道LED驱动控制专用电路,适合LED彩屏开发。
  • WS2811 中文手册

    2019-01-17 16:49:44
    WS2811 是三通道LED驱动控制专用电路,芯片内部包含了智能数字接口数据锁存信号整形放大驱动电路,还包含有高精度的内部振荡器和15V高压可编程定电流输出驱动器。 同时,为了降低电源纹波,3个通道有一定的延时导通...
  • <div><p>There seems to be a segmentation fault when calling ws2811_fini in the nodejs bindings. Any tips on how to fix that ? <p>Thanks ! <pre><code>c++ void finalize(const Nan::...
  • WS2811/12B support

    2020-12-30 21:19:27
    Recently a guy named Jeremy Graff wrote a lib to support WS2811/12B directly from the raspberry pi. So keeping this in mind I thought I share it with you. Might be interesting to implement this as ...
  • WS2811B驱动使用及使用说明

    千次阅读 2020-07-15 17:52:09
    WS2811 使用时需要注意的东西: 1.发送0 1时的高低点平时间,建议使用逻辑分析仪或示波器进行波形查看,精准时间大小。 2.WS281特性为发送数据后保存数据信息,若灯不更换其他颜色,请勿输入数据。 3.注意代码使用...

    WS2811 使用时需要注意的东西:
    1.发送0 1时的高低点平时间,建议使用逻辑分析仪或示波器进行波形查看,精准时间大小。
    2.WS281特性为发送数据后保存数据信息,若灯不更换其他颜色,请勿输入数据。
    3.注意代码使用过程的规范。精准定位问题出现原因

    此处只给出了WS2811的驱动代码。
    整个工程请转至我的个人github:https://github.com/lengmudemao/WS2811
    在这里插入图片描述
    在这里插入图片描述
    WS2811.h

    #ifndef _WS2811_H
    #define _WS2811_H
    #include "sys.h"
    
    #define WS2811_CONTROL PAout(0)   	
    #define HIGH 1
    #define SEND_TIMES 20
    #define LIGHT_TIME 500         单位:秒
    
    //控制函数声明/
    void WS2811_Init(void);
    void TIM3_Int_Init(u16 arr,u16 psc);
    void l_dat0(void);
    void l_dat1(void);
    void Reset(void);
    void send_single_data(const u8 *data);
    void send_string_data(const u8 *data,u8 size);
    void RGB_open(const u8 *data);
    void RGB_Lighting(void);
    void RGB_ALARM(void);
    /
    #endif
    

    WS2811.c

    #include "WS2811.h"
    
    static void delay(unsigned long int us);
    
    static u8 Gard[3]={0};  // BLUE RED GREEN
    static u16 TIM3_count=0;
    static u8 Light_blue=0;
    static u8 Light_red=0;
    static u8 Light_green=0;
    
    //==================================WS2811初始化======================================//
    void WS2811_Init(void)
    {
    	GPIO_InitTypeDef  GPIO_InitStructure;
    
    	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);//使能GPIOA时钟
    
    	//GPIOA0初始化设置
    	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
    	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式
    	GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出
    	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
    	GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;//下拉拉
    	GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化
    	
    	Reset();
    	
    	TIM3_Int_Init(1000,84);                   //TIM3 1KHZ
    }
    //==================================通用定时器3初始化================================//
    //arr:自动重装值sc:时钟预分频数     定时器溢出时间计算方法:Tout=((arr+1)*(psc+1))/Ft us.
    void TIM3_Int_Init(u16 arr,u16 psc)
    {
    	TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
    	NVIC_InitTypeDef NVIC_InitStructure;
    	
    	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);  ///使能TIM3时钟
    	
    	TIM_TimeBaseInitStructure.TIM_Period = arr; 	//自动重装载值
    	TIM_TimeBaseInitStructure.TIM_Prescaler=psc;  //定时器分频
    	TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up; //向上计数模式
    	TIM_TimeBaseInitStructure.TIM_ClockDivision=TIM_CKD_DIV1; 
    	
    	TIM_TimeBaseInit(TIM3,&TIM_TimeBaseInitStructure);//初始化TIM3
    	
    	TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE); //允许定时器3更新中断
    	TIM_Cmd(TIM3,ENABLE); //使能定时器3
    	
    	NVIC_InitStructure.NVIC_IRQChannel=TIM3_IRQn; //定时器3中断
    	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x01; //抢占优先级1
    	NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x03; //子优先级3
    	NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
    	NVIC_Init(&NVIC_InitStructure);
    	
    }
    
    //定时器3中断服务函数
    void TIM3_IRQHandler(void)
    {
    	if(TIM_GetITStatus(TIM3,TIM_IT_Update)==SET){ //溢出中断
    		TIM3_count++;
    		if((TIM3_count%(LIGHT_TIME*3))==0){
    			Light_blue=1;
    			Light_red=0;
    			Light_green=0;
    		}
    		else if((TIM3_count%(LIGHT_TIME*3))==(LIGHT_TIME*1)){
    			Light_blue=0;
    			Light_red=1;
    			Light_green=0;
    		}
    		else if((TIM3_count%(LIGHT_TIME*3))==(LIGHT_TIME*2)){
    			Light_blue=0;
    			Light_red=0;
    			Light_green=1;
    		}
    		else if(TIM3_count>(LIGHT_TIME*3))
    		TIM3_count=0;
    	}
    	TIM_ClearITPendingBit(TIM3,TIM_IT_Update);  //清除中断标志位
    }
    
    //===============高速编码模式BIT0(高电平时间:0.5us 低电平时间:2us )===============//
    void l_dat0(void)
    {
    	WS2811_CONTROL|=HIGH;
    	delay(3);
    	WS2811_CONTROL&=~HIGH;
    	delay(15);
    }
    
    //===============高速编码模式BIT1(高电平时间:5us 低电平时间:0.5us)================//
    void l_dat1(void)
    {
    	WS2811_CONTROL|=HIGH;
    	delay(16);
    	WS2811_CONTROL&=~HIGH;
    	delay(2);
    }
    
    //===================================RGB复位====================================//
    void Reset(void)
    {
    	WS2811_CONTROL&=~HIGH;
    	delay(2000);
    }
    
    //============================发送RGB灰度数据===================================//
    void send_single_data(const u8 *data) 											//数据格式:R7~R0~G7~G0~B7~B0
    {
    	s8 i=0,j=0;
    	for(i = 0; i < 3; i++){
    		for(j = 7; j > -1; j--){
    			if((*(data+i)&(HIGH<<j))==(HIGH<<j)) 
    				l_dat1(); 
    			else 
    				l_dat0();
    		}
    	}
    }
    
    void send_string_data(const u8 *data,u8 size) 											
    {
    	u8 i=0;
    	for(i=0;i<size;i++){
    		send_single_data(data);	 
    	}
    	Reset();
    }
    //==================================RGB常亮=====================================//
    void RGB_open(const u8 *data) //RGB常亮
    {
    	send_single_data(data);
    }
    
    //=================================RGB闪烁========= BLUE RED GREEN ===============//
    void RGB_Lighting(void)
    {
    	if(Light_blue){
    		Gard[0]=255;
    		Gard[1]=0;
    		Gard[2]=0;
    		send_string_data(Gard,SEND_TIMES);              //发送次数与灯管长度有关
    		Light_blue=0;
    	}
    	else if(Light_red){
    		Gard[0]=0;
    		Gard[1]=255;
    		Gard[2]=0;
    		send_string_data(Gard,SEND_TIMES); 
    		Light_red=0;
    	}
    	else if(Light_green){
    		Gard[0]=0;
    		Gard[1]=0;
    		Gard[2]=255;
    		send_string_data(Gard,SEND_TIMES); 
    		Light_green=0;
    	}
    }
    
    //=================================延时========= BLUE RED GREEN ===============//
    static void delay(unsigned long int us)
    {
    	unsigned long int j;
    	for (j = 5*us; j> 0; j--) ;
    }
    
    
    展开全文
  • ws2811LED灯驱动程序

    2016-05-18 10:34:44
    本代码可以用来控制ws2811驱动的灯带,控制灯带中任意灯的亮灭。
  • WS2811驱动代码,使用外部20MHz晶振,炫彩灯控制程序,自带几种流水灯效果,带注释可自行理解以后修改为自己想要的效果。
  • WS2811 使用时需要注意的东西: 1.发送0 1时的高低点平时间,建议使用逻辑分析仪或示波器进行波形查看,精准时间大小。 2.WS281特性为发送数据后保存数据信息,若灯不更换其他颜色,请勿输入数据。 3.注意代码使用...

    WS2811 使用时需要注意的东西:
    1.发送0 1时的高低点平时间,建议使用逻辑分析仪或示波器进行波形查看,精准时间大小。
    2.WS281特性为发送数据后保存数据信息,若灯不更换其他颜色,请勿输入数据。
    3.注意代码使用过程的规范。精准定位问题出现原因

    此处只给出了WS2811的驱动代码。


    WS2811.h

    #ifndef _WS2811_H
    #define _WS2811_H
    #include "sys.h"

    #define WS2811_CONTROL PAout(0)       
    #define HIGH 1
    #define SEND_TIMES 20
    #define LIGHT_TIME 500         单位:秒

    //控制函数声明/
    void WS2811_Init(void);
    void TIM3_Int_Init(u16 arr,u16 psc);
    void l_dat0(void);
    void l_dat1(void);
    void Reset(void);
    void send_single_data(const u8 *data);
    void send_string_data(const u8 *data,u8 size);
    void RGB_open(const u8 *data);
    void RGB_Lighting(void);
    void RGB_ALARM(void);
    /
    #endif
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    WS2811.c

    #include "WS2811.h"

    static void delay(unsigned long int us);

    static u8 Gard[3]={0};  // BLUE RED GREEN
    static u16 TIM3_count=0;
    static u8 Light_blue=0;
    static u8 Light_red=0;
    static u8 Light_green=0;

    //==================================WS2811初始化======================================//
    void WS2811_Init(void)
    {
        GPIO_InitTypeDef  GPIO_InitStructure;

        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);//使能GPIOA时钟

        //GPIOA0初始化设置
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;//下拉拉
        GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化
        
        Reset();
        
        TIM3_Int_Init(1000,84);                   //TIM3 1KHZ
    }
    //==================================通用定时器3初始化================================//
    //arr:自动重装值sc:时钟预分频数     定时器溢出时间计算方法:Tout=((arr+1)*(psc+1))/Ft us.
    void TIM3_Int_Init(u16 arr,u16 psc)
    {
        TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
        NVIC_InitTypeDef NVIC_InitStructure;
        
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);  ///使能TIM3时钟
        
        TIM_TimeBaseInitStructure.TIM_Period = arr;     //自动重装载值
        TIM_TimeBaseInitStructure.TIM_Prescaler=psc;  //定时器分频
        TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up; //向上计数模式
        TIM_TimeBaseInitStructure.TIM_ClockDivision=TIM_CKD_DIV1; 
        
        TIM_TimeBaseInit(TIM3,&TIM_TimeBaseInitStructure);//初始化TIM3
        
        TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE); //允许定时器3更新中断
        TIM_Cmd(TIM3,ENABLE); //使能定时器3
        
        NVIC_InitStructure.NVIC_IRQChannel=TIM3_IRQn; //定时器3中断
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x01; //抢占优先级1
        NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x03; //子优先级3
        NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
        NVIC_Init(&NVIC_InitStructure);
        
    }

    //定时器3中断服务函数
    void TIM3_IRQHandler(void)
    {
        if(TIM_GetITStatus(TIM3,TIM_IT_Update)==SET){ //溢出中断
            TIM3_count++;
            if((TIM3_count%(LIGHT_TIME*3))==0){
                Light_blue=1;
                Light_red=0;
                Light_green=0;
            }
            else if((TIM3_count%(LIGHT_TIME*3))==(LIGHT_TIME*1)){
                Light_blue=0;
                Light_red=1;
                Light_green=0;
            }
            else if((TIM3_count%(LIGHT_TIME*3))==(LIGHT_TIME*2)){
                Light_blue=0;
                Light_red=0;
                Light_green=1;
            }
            else if(TIM3_count>(LIGHT_TIME*3))
            TIM3_count=0;
        }
        TIM_ClearITPendingBit(TIM3,TIM_IT_Update);  //清除中断标志位
    }

    //===============高速编码模式BIT0(高电平时间:0.5us 低电平时间:2us )===============//
    void l_dat0(void)
    {
        WS2811_CONTROL|=HIGH;
        delay(3);
        WS2811_CONTROL&=~HIGH;
        delay(15);
    }

    //===============高速编码模式BIT1(高电平时间:5us 低电平时间:0.5us)================//
    void l_dat1(void)
    {
        WS2811_CONTROL|=HIGH;
        delay(16);
        WS2811_CONTROL&=~HIGH;
        delay(2);
    }

    //===================================RGB复位====================================//
    void Reset(void)
    {
        WS2811_CONTROL&=~HIGH;
        delay(2000);
    }

    //============================发送RGB灰度数据===================================//
    void send_single_data(const u8 *data)                                             //数据格式:R7~R0~G7~G0~B7~B0
    {
        s8 i=0,j=0;
        for(i = 0; i < 3; i++){
            for(j = 7; j > -1; j--){
                if((*(data+i)&(HIGH<<j))==(HIGH<<j)) 
                    l_dat1(); 
                else 
                    l_dat0();
            }
        }
    }

    void send_string_data(const u8 *data,u8 size)                                             
    {
        u8 i=0;
        for(i=0;i<size;i++){
            send_single_data(data);     
        }
        Reset();
    }
    //==================================RGB常亮=====================================//
    void RGB_open(const u8 *data) //RGB常亮
    {
        send_single_data(data);
    }

    //=================================RGB闪烁========= BLUE RED GREEN ===============//
    void RGB_Lighting(void)
    {
        if(Light_blue){
            Gard[0]=255;
            Gard[1]=0;
            Gard[2]=0;
            send_string_data(Gard,SEND_TIMES);              //发送次数与灯管长度有关
            Light_blue=0;
        }
        else if(Light_red){
            Gard[0]=0;
            Gard[1]=255;
            Gard[2]=0;
            send_string_data(Gard,SEND_TIMES); 
            Light_red=0;
        }
        else if(Light_green){
            Gard[0]=0;
            Gard[1]=0;
            Gard[2]=255;
            send_string_data(Gard,SEND_TIMES); 
            Light_green=0;
        }
    }

    //=================================延时========= BLUE RED GREEN ===============//
    static void delay(unsigned long int us)
    {
        unsigned long int j;
        for (j = 5*us; j> 0; j--) ;
    }

     

    展开全文
  • WS2811彩带驱动库函数

    千次阅读 2016-08-05 17:18:12
    http://bbs.elecfans.com/jishu_508459_1_1.html WS2811.h #ifndef __WS2811_H #define __WS2811_H #include "sys.h" #define White 0xFFFFFF // 白色 #define Black 0x000000 // 黑色 #defin
    http://bbs.elecfans.com/jishu_508459_1_1.html
    
    WS2811.h
    #ifndef __WS2811_H
    #define __WS2811_H         
    #include "sys.h"
    
    
    #define White       0xFFFFFF  // 白色
    #define Black       0x000000  // 黑色
    #define Red         0x00ff00  // 红色
    #define Green       0xff0000  // 绿色
    #define Blue        0x0000ff  // 蓝色
    
    
    #define nWs 16                // 有多少颗WS2811级联
    
    extern unsigned long WsDat[];
    
    extern void WS_Init(void);
    extern void WS_SetAll(void);
    extern u32 ColorToColor(unsigned long color0, unsigned long color1);
    
                                                         
    #endif



    WS2811.c
    /****************************************************************************************
    * WS2811 彩灯驱动函数
    *
    * 调用方法:
    *        修改宏定义: #define nWs 1        // 有多少颗WS2811级联
    *        WS_Init();        // IO初始化
    *        WsDat[0] = 0x808080;//显存赋值
    *        WS_SetAll();  // 发送数据
    *        ColorToColor(unsigned long color0, unsigned long color1);// 颜色渐变算法
    *
    * 作者:星希望(已校验)
    * 日期:2015年6月24日
    ****************************************************************************************/
    #include "sys.h"
    #include <stm32f10x.h>
    #include "WS2811.h"
    #include "delay.h"
            
    /* 显存 */
    unsigned long WsDat[nWs];
    
    
    /**************************************************************************************
    * IO初始化(移植时请修改)
    **************************************************************************************/
    void WS_Init()
    {
            GPIO_InitTypeDef  GPIO_InitStructure;        
            
            //端口时钟,使能
            RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE );         
    
            // 端口配置
            GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;                                // PIN
            GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                 // 推挽输出
            GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                // IO口速度为50MHz
            GPIO_Init(GPIOA, &GPIO_InitStructure);                                        // 根据设定参数初始化 
    }
    
    /**************************
    * 内部延时
    ***************************/
    void delay2us()
    {
            unsigned char i;
            for(i=0; i<12; i++);
    }
    void delay05us()
    {
            unsigned char i;
            for(i=0; i<1; i++);
    }
    
    /***************************
    * 发送一比特
    ****************************/
    void TX0()          { PAout(0) = 1; delay05us(); PAout(0) = 0; delay2us(); } // 发送0
    void TX1()          { PAout(0) = 1; delay2us();  PAout(0) = 0; delay05us(); } // 发送1
    void WS_Reset() { PAout(0) = 0; delay_us(60);  PAout(0) = 1; PAout(0) = 0; }
    
    /**************************************************************************************
    * 发送一字节
    **************************************************************************************/
    void WS_Set1(unsigned long dat)
    {
            unsigned char i;
            
            for(i=0; i<24; i++)
            {
                    if(0x800000 == (dat & 0x800000) )        TX1();
                    else                                                                TX0();
                    dat<<=1;                                                        //左移一位
            }
    }
    
    /**************************************************************************************
    * 发送所有字节
    **************************************************************************************/
    void WS_SetAll()
    {
            unsigned char j;
            
            for(j=0; j<nWs; j++)
            {
                    WS_Set1(WsDat[0]);  // j / 0
            }
            WS_Reset();
    }
    
    
    
    
    
    
    
    
    
    /********************************************
    * 求绝对值
    ********************************************/
    unsigned char abs0(int num)
    {
            if(num>0) return num;
            
            num = -num;
            return (unsigned char) num;
    }
    
    /***********************************************************************************
    * 颜色渐变算法
    * 误差 <= 2
    ************************************************************************************/
    u32 ColorToColor(unsigned long color0, unsigned long color1)
    {
            unsigned char Red0, Green0, Blue0;  // 起始三原色
            unsigned char Red1, Green1, Blue1;  // 结果三原色
            int                          RedMinus, GreenMinus, BlueMinus;        // 颜色差(color1 - color0)
            unsigned char NStep;                                                         // 需要几步
            float                  RedStep, GreenStep, BlueStep;                // 各色步进值
            unsigned long color;                                                        // 结果色
            unsigned char i;
            
            // 绿 红 蓝 三原色分解
            Red0   = color0>>8;
            Green0 = color0>>16;
            Blue0  = color0;
            
            Red1   = color1>>8;
            Green1 = color1>>16;
            Blue1  = color1;
            
            // 计算需要多少步(取差值的最大值)
            RedMinus   = Red1 - Red0; 
            GreenMinus = Green1 - Green0; 
            BlueMinus  = Blue1 - Blue0;
            
            NStep = ( abs0(RedMinus) > abs0(GreenMinus) ) ? abs0(RedMinus):abs0(GreenMinus);
            NStep = ( NStep > abs0(BlueMinus) ) ? NStep:abs0(BlueMinus);
            
            // 计算出各色步进值
            RedStep   = (float)RedMinus   / NStep;
            GreenStep = (float)GreenMinus / NStep;
            BlueStep  = (float)BlueMinus  / NStep;
            
            // 渐变开始
            for(i=0; i<NStep; i++)
            {
                    Red1   = Red0   + (int)(RedStep   * i);
                    Green1 = Green0 + (int)(GreenStep * i);
                    Blue1  = Blue0  + (int)(BlueStep  * i);
                    
                    color  = Green1<<16 | Red1<<8 | Blue1;         // 合成  绿红蓝
                    WsDat[0] = color;
                    WS_SetAll();                                                        // 输出
                    delay_ms(1);                                                // 渐变速度
            }
            // 渐变结束
            
            return color;
    }


    展开全文
  • STM32驱动WS2811

    千次阅读 2018-04-10 23:34:00
    源:Driver and test routine for WS2811 RGB-LED
    展开全文
  • RemoteLight是用于WS2811 / WS2812(又称Neopixel)和其他一些可寻址LED灯条的基于Java的控制软件。 它提供了一个现代的,用户友好的用户界面以及许多功能。 产品特点 易于使用 支持Arduino和Raspberry Pi Artnet...
  • WS2811S chipset Support

    2021-01-11 00:52:10
    ve a strip led with WS2811S (note the "S"). Is the chipset supported from the library? With the following code (blink.ino) <p>` <h1>include "FastLED.h" <p>// How many leds in your...
  • WS2811.h #ifndef __WS2811_H #define __WS2811_H #include "sys.h" #define White 0xFFFFFF // 白色 #define Black 0x000000 // 黑色 #define Red 0x00ff00 // ...
  • wemos-d1-mini-neopixel:esp8266控制ws2811和ws2812b ic的一些草图
  • <div><p>This will allow putting in definition within the target files for setting up the WS2811 LED strips. <p>Top of the STM32F4xx file for WS2811 demonstrates the defines needed. <p>At some stage in...
  • WS2812实际上是一个RGB LED,其中WS2811内置在LED中。 储存库内容 /固件-示例Arduino草图 /硬件-所有Eagle设计文件(.brd,.sch) /生产-测试台文件和生产面板文件 文献资料 -WS2812 Breakout的基本连接指南。 -...

空空如也

空空如也

1 2 3 4 5 ... 16
收藏数 313
精华内容 125
关键字:

ws2811