找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

STC8单片机ws2812b驱动程序

查看数: 12178 | 评论数: 21 | 收藏 21
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-8-6 18:34

正文摘要:

看见X宝 卖的ws2812灯带觉得挺好玩,闲来无事买了一条1米60灯的。自己写了个驱动 :功能 1 灯全亮(可调7色),2流水灯(可调7色),3 灯全亮闪烁(可调7色) 制作出来的实物图如下:

回复

ID:230500 发表于 2022-1-8 16:13
别的我没试  ,我主要是看到按键扫描没有去抖 没有延时,就对这个按键扫描函数比较感兴趣,我就试了按键扫描这个函数,发现是有问题的,根本就不工作!

/******************按键扫描******************************/
/* 功能 : 设置S6按键长短按识别小于20MS短按 长于3S长按 */       
void keyScan()
        {
                static unsigned char i;
    static unsigned int key_press_time = 0;  // ……请记得标为静态变量
                static unsigned int key_press_time2 = 0;  // ……请记得标为静态变量
    if(s6==0)
                        {
        if(++key_press_time <=0 ) --key_press_time;//计量按键时间,并避免数据溢出
        if(key_press_time==3000)
                                {
            //在此写下按键长按3s时要做的事情
                                        LED2_REV();
                                Loop_Speed=        Loop_Speed-15;                       
                                }
                        }
                        else
                        {
        if(10<=key_press_time && key_press_time < 3000)
                                {
            //大于20ms小于3s,视为短按,在此写下写短按的处理代码
                                        LED1_REV();
                                        i++;
                                        switch(i)  //s6按键LED7色控制
                                        {
                                                case 0 : {RR=0X00;GG=0X00;BB=0XFE; break;}
                                                case 1 : {RR=0X00;GG=0XFE;BB=0X00; break;}
                                                case 2 : {RR=0XFE;GG=0X00;BB=0X00; break;}
                                                case 3 : {RR=0XFE;GG=0XFE;BB=0X00; break;}
                                                case 4 : {RR=0X00;GG=0XFE;BB=0XFE; break;}
                                                case 5 : {RR=0XFE;GG=0X00;BB=0XFE; break;}
                                                case 6 : {RR=0XFE;GG=0XFE;BB=0XFE; break;}
                                                case 7 : {i=0;                                                                                 break;}
                                        }
        }
        key_press_time=0;
                        }




下面这段话大家来讨论看看 这完全行不通啊,24M的单片机跑起来
++key_press_time; key_press_time==3000,需要3秒钟?即使是6M的时钟跑起来 加到3000也不要3秒钟吧!




        if(++key_press_time <=0 ) --key_press_time;//计量按键时间,并避免数据溢出
        if(key_press_time==3000)
                                {
            //在此写下按键长按3s时要做的事情

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

ID:161164 发表于 2025-3-5 09:20
烈火 发表于 2025-3-4 21:05
参考了一下,单色没有实现。是什么原因?

30块包邮的逻辑分析仪,你值得拥有
ID:744327 发表于 2025-3-4 21:05
参考了一下,单色没有实现。是什么原因?
ID:107998 发表于 2024-5-3 16:11
大家都说有问题?那我只好下载下来研究和验证一下了。
ID:138155 发表于 2024-3-14 14:17
这个挺好的,我正想编辑这个程序驱动自己的彩灯,感谢楼主提供,我可以参考一下
ID:72088 发表于 2024-3-11 18:42

服了,就一个IO端口,要啥原理图,要啥自行车?
ID:977079 发表于 2024-3-11 18:32
师傅,测试的时候没有单色蓝光,检查下哪里出了问题?
ID:977079 发表于 2024-3-11 17:10
非常感谢,终于找到想要的了。
ID:1057598 发表于 2022-12-15 11:45
有原理图么
ID:1057598 发表于 2022-12-15 11:43
谢谢楼主分享,难得的好资料。
ID:19998 发表于 2022-9-15 08:28
一上电变全彩闪烁,mode初始化为0应该是关闭的状态,灯不亮,通过按下按键才亮的吧
ID:877505 发表于 2022-3-23 13:48
我看了下代码,发现好多变量都没初始化就开始累加计算了,真的无语,确定不会出错吗
ID:224782 发表于 2022-1-10 15:20
a399288395 发表于 2022-1-8 16:13
别的我没试  ,我主要是看到按键扫描没有去抖 没有延时,就对这个按键扫描函数比较感兴趣,我就试了按键扫 ...

下载完整程序好好看看再说话。。。。。。就看了一段直接判断程序不能用也是绝了。。。。。。。
ID:879348 发表于 2021-12-2 13:41
gaochen15159 发表于 2021-11-10 08:48
有没有原理图可以借鉴一下,我也想自己做一个玩一下

这东西是串行控制,灯是成品,控制随便啦个IO就行了
ID:421538 发表于 2021-12-1 22:08
谢谢楼主分享,难得的好资料,感谢,经过编译,正常点亮
ID:421538 发表于 2021-12-1 21:42
huping137 发表于 2021-11-4 09:27
这个程序里是不是少了发送0和1的时序了

时序在WS2812B.H里面
ID:399179 发表于 2021-11-19 21:01
几百个灯珠可以控制吗?
ID:94592 发表于 2021-11-10 08:48
有没有原理图可以借鉴一下,我也想自己做一个玩一下
ID:610610 发表于 2021-11-4 09:27
这个程序里是不是少了发送0和1的时序了
ID:620326 发表于 2021-11-1 13:24
用STC哪个型号的单片机?
ID:607312 发表于 2021-8-16 09:35
有原理图吗大师

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表