找回密码
 立即注册
查看: 2997|回复: 21

关于单片机做画面显示的探讨, 从点灯到点屏 | 增加【1线制硬件WS2812总线】

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:135
  • 最近打卡:2024-12-25 10:15:05

47

主题

1350

回帖

8058

积分

荣誉版主

冲哥视频教程和各种开源资料QQ交流群884047237,可群

积分
8058
QQ
发表于 2024-9-23 20:59:40 | 显示全部楼层 |阅读模式
点灯,规划增加专门的【1线制硬件WS2812总线】

截图202409231956221593.jpg

最近看到不少的小伙伴在讨论点灯、点屏的问题,随着STC单片机的迅猛发展,
其实目前能驱动的或者说能实现的点亮方式非常多,像上述的框图中的四种,每一种都有对应的专用MCU
(1)LED/数码管:STC8H4K64TL系列                                           (参考官网/论坛触摸电子琴等的代码:https://www.stcaimcu.com/forum.php?mod=viewthread&tid=1380
(2)OLED:STC8H,STC32,AI8051系类等所有带IIC/SPI接口的MCU  (参考官网屠龙刀/开天斧等的代码)
(3)TFT:STC8H,STC32,AI8051系类等所有带SPI/LCM接口的MCU     (参考老梁示波器/STC8H试验箱/STC32G试验箱/AI8051U试验箱等的代码)
(4)段码屏:STC8H4K64TLCD系列                                              (参考官网/论坛段码屏的代码:https://www.stcaimcu.com/forum.php?mod=viewthread&tid=7070

当然,上面列举的几种已经是烂大街的几种了,这里来讨论几个冷门赛道的点灯、点屏方式:
(1)WS2812的点灯/屏:
        例如论坛的这个雪花灯:https://www.stcaimcu.com/forum.php?mod=viewthread&tid=6591      
        又或者这个多花样的:https://www.stcaimcu.com/forum.php?mod=viewthread&tid=292
类似这样的灯其实可玩性非常高,他的优点就在于只要一个IO就可以控制几百上千个的LED,
但是缺点也非常明显,就是对时序要求极高,且成本略高。常用于灯条的控制和小彩屏的控制
截图202409232017199136.jpg
截图202409232018217615.jpg
截图202409232020112963.jpg

可以看到他只需要最少一个IO口无限级联就可以实现各种颜色花式的展示,
但点亮一个灯需要1.25us(±150ns)* 24 的时间,也就是30us左右一个灯,
所以在单IO驱动的时候,灯数越多,刷新的越慢!在STC单片机中,常见的几个点灯方式如下:
1.IO直接模拟时序逻辑(不推荐):因为这种方法太占用资源,通过不断的延时消耗,且容易受中断的干扰,在做低成本,灯珠少,功能少的项目的时候可以采用,比如小台灯等。
2.SPI接口直驱:可以兼容绝大多数带SPI接口的MCU,优点是可以释放很多的MCU资源,缺点是会额外占用MISO和SCLK的两个引脚。(可以配合DMA,有多大内存就可以完美刷新多少的灯)
    参考:WS2812彩灯@AI8051U,同时驱动2730个,DMA支持USART1-SPI或USART2-SPI或SPIhttps://www.stcaimcu.com/forum.php?mod=viewthread&tid=10810
3.PWM接口直驱:可以释放很多的MCU资源且只需要占用一个IO即可,缺点是单脉冲PWM模式下会频繁的进中断。(可以配合DMA,有多大内存就可以完美刷新多少的灯)
    参考:基于PWM的驱动ws2812视频效果实现https://www.stcaimcu.com/forum.php?mod=viewthread&tid=367
当然其实还有别的方式也可以驱动,但是相对来说在STC的MCU上上面的几种方式相对来说比较好用,当然尤其是最近的PWM+DMA的的方式爆火之后,其实完全可以用它来做64*32的桌面摆件,配和小的0606的灯珠可以做到像素屏的画质,以64*32来计算,需要2048个灯珠,分成4组(也就是四个PWM口驱动)的话每个端口512个LED,只需要512*30us = 15.36ms即可完成一屏幕的刷新,可以得到近乎60HZ的刷新率的小显示屏!做全彩的歌词显示或者胸牌非常合适。
截图202409232039587295.jpg
截图202409232040194374.jpg


(2)LCM接口通过8080接口点亮全彩LED单元屏:

截图202409232042535085.jpg

这种LED的单元板非常常见,路边的广告牌,门头牌,大屏幕均可使用他来做!
截图202409232048517998.jpg
截图202409232049426847.jpg
截图202409232051172517.jpg

其实这个屏幕的基本原理非常简单,就是控制RGB的三色灯,通过高刷实现全彩的显示,但是需要超高的速度才能实现全彩的效果,
https://www.stcaimcu.com/forum.php?mod=attachment&aid=NTc5NjF8Mjg3OGEwZjN8MTc0NjEwNzkwM3wwfA%3D%3D

上述这个小效果,甚至可以无限级联下去的效果就可以用这个屏幕分分钟的做出来~可以直接用LCM的8080口驱动!效果非常理想!

      



回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:135
  • 最近打卡:2024-12-25 10:15:05

47

主题

1350

回帖

8058

积分

荣誉版主

冲哥视频教程和各种开源资料QQ交流群884047237,可群

积分
8058
QQ
发表于 2024-9-23 21:09:30 | 显示全部楼层
点阵屏适合干这种大的广告牌,牌越长点阵屏幕越吃香,
数量少的灯就是ws2812的灯板更吃香。
32*32及以下的灯珠可以用ws2812的驱动更好,
大的就用全彩LED点阵屏

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15611
发表于 2024-9-23 21:38:39 | 显示全部楼层
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15611
发表于 2024-9-23 21:44:31 | 显示全部楼层
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15611
发表于 2024-9-23 21:46:12 | 显示全部楼层
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15611
发表于 2024-9-23 22:16:00 | 显示全部楼层
大家把 增加专门的【1线制硬件WS2812总线】,点灯,帮好好规划下

点评

要兼容4字节的SK6812(RGBW灯)和TM3130单总线数码管驱动器(还有TM18xx和TM19xx等单总线灯光控制芯片),配合DMA,大量节省IO口 [attachimg]57975[/attachimg] [attachimg]57976[/attachimg]  详情 回复 发表于 2024-9-23 23:32
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2024-9-23 23:32:56 | 显示全部楼层
神*** 发表于 2024-9-23 22:16
大家把 增加专门的【1线制硬件WS2812总线】,点灯,帮好好规划下

要兼容4字节的SK6812(RGBW灯)和
TM3130单总线数码管驱动器(还有TM18xx和TM19xx等单总线灯光控制芯片),
配合DMA,大量节省IO口

截图202409232317047130.jpg

截图202409232318208647.jpg


点评

我看TM1809好像有400K和800K两种驱动速度  详情 回复 发表于 2024-9-24 11:44
DebugLab
回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2024-9-23 23:45:23 | 显示全部楼层

接了一串TM3130单总线数码管,这么多用5V PPTC都保护了只能用3.3V

DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-04-01 23:18:33

15

主题

139

回帖

975

积分

高级会员

积分
975
发表于 2024-9-24 00:16:12 | 显示全部楼层
神*** 发表于 2024-9-23 22:16
大家把 增加专门的【1线制硬件WS2812总线】,点灯,帮好好规划下

建议增加PIO,不局限于特定专用接口。
回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:135
  • 最近打卡:2024-12-25 10:15:05

47

主题

1350

回帖

8058

积分

荣誉版主

冲哥视频教程和各种开源资料QQ交流群884047237,可群

积分
8058
QQ
发表于 2024-9-24 08:05:51 | 显示全部楼层
如果是要增加单总线接口的话,个人建议可以参考下友商的RMT接口的方案,
RMT单总线可以驱动

WS2812/DS18B20/DHT11/红外遥控/D-shot电机等等单线或者单总线设备。


点评

D-shot 600、D-shot 1200、Multi-shot、WBUS、SBUS、PPM  详情 回复 发表于 2024-9-24 11:53
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-1 21:58 , Processed in 0.242028 second(s), 119 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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