1012|21

72

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

在淘宝买了几个很小巧的数码管,测试了一下很有意思 [复制链接]

 
 

3位7段数字,带一个小数点和四个图标

6个引脚,分为两排,针距2.54,排距8.55,外径13mm,厚度4mm,很小巧

一开始以为是内置了芯片的模块,但是6个引脚又有点多,就买回来实际测试了一下发现是纯粹的io驱动,这样一来成本就很漂亮了

网上搜到的图纸和规格,基本和我手头的样品一致,买到的样品

找到的图纸资料

 
 
 
 
实物接线图,原本esp32打算用相连的六个引脚,实际测试2脚和5脚分别有上下拉,程序驱动前,会有微量的笔段,所以换成了0
led1----esp32-0
led2----esp32-5
led3----esp32-18
led4----esp32-23
led5----esp32-19

led6----esp32-22

下面是显示效果,没有做录像用手机拍摄闪的比较严重,肉眼看很清晰稳定,手机拍摄照片时效果也不好,这个是用慢速拍摄的,所以有点糊

 

 

 

最新回复

这个怎么卖的,可以做什么?  详情 回复 发表于 2024-11-3 21:13
点赞(1) 关注(1)
 
 

回复
举报

72

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
import time
from machine import Pin, I2C, Timer
#因为micropython的定时器回调时间精度有限,所以主程序中不能存在大延迟的原子操作。
#比如读写文件,大型流数据收发都会导致显示出现闪烁,这种数码管在micropython上驱
#动效果不理想,但是用来调试显示程序的逻辑还是非常方便的
#显示查找表,这个是按照单段显示优化的表格,缺点是效率较低,优点是显示亮度是均匀的
tab=[(4, 3), (5, 3), (0, 3), (1, 3), (2, 3), (3, 4), (5, 4),
     (0, 4), (1, 4), (2, 4), (3, 5), (4, 5), (0, 5), (1, 5),
     (2, 5), (3, 0), (4, 0), (5, 0), (1, 0), (2, 0), (3, 1),
     (3, 2), (0, 1), (2, 1), (4, 1), (5, 1)]
#数字笔段转换表
digi_seg=[0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F]
#符号查找表
Symbol=["dot","v","w","%","om"]
#根据需要按照实际顺序调整
P_list=[Pin(0),Pin(5),Pin(18),Pin(23),Pin(19),Pin(22)]
seg=[]
count=0
d_buff=0
#显示实现完全在定时器回调中完成,每次中断显示一个笔段,总共26个段,
#刷新率25hz视觉上有点闪烁,50hz(定时器频率1300)视觉上比较完美
def t_cb(tim):
    global count, P_list, tab, d_buff
    P_list[tab[count][0]].init(mode=Pin.IN, pull=None)
    P_list[tab[count][1]].init(mode=Pin.IN, pull=None)
    count+=1
    if count>=26:
        count=0
    if d_buff&(1<<count):
        P_list[tab[count][0]].value(1)
        P_list[tab[count][0]].init(mode=Pin.OUT)
        P_list[tab[count][1]].value(0)
        P_list[tab[count][1]].init(mode=Pin.OUT)
tim1 = Timer(1)
tim1.init(freq=1300, mode=Timer.PERIODIC, callback=t_cb)
#设置一个启动全亮动作
d_buff=0xffffffff
time.sleep(0.6)
d_buff=0
time.sleep(0.2)
#生成显示的排列内容
def gen_seg(digi,string):
    global d_buff
    d_buff=0
    #判断传入的字符串包含哪些符号,并作出显示
    for s in range(5):
        if Symbol[s] in string:
            d_buff += 1<<(21+s)
    #个位
    i=digi%10
    d_buff += digi_seg[i]<<14
    #十位
    t=digi//10%10
    #如果小数点不是点亮的,则前两位为0不显示
    if not ((d_buff&(1<<21))==0 and digi//10 == 0):
        d_buff += digi_seg[t]<<7
    #百位,大于999的高位被截掉
    p=digi//100%10
    #如果为0不显示
    if p != 0:
        d_buff += digi_seg[p]
#以下是显示调用的例子,数字不包含小数点发送到第一个变量,需要显示的符号加到字符串里面显示,符号顺序无关
for i in range(110):    
    gen_seg(i,"vdot")
    time.sleep(0.05)
time.sleep(0.6)
d_buff=0
for i in range(110):    
    gen_seg(i,"w")
    time.sleep(0.05)
time.sleep(0.6)
d_buff=0

测试程序

 

 

点评

   详情 回复 发表于 2024-10-28 21:48
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
wangshujun72 发表于 2024-10-28 21:44 import time from machine import Pin, I2C, Timer #因为micropython的定时器回调时间精度有限,所以主 ...
find.py (986 Bytes, 下载次数: 0, 售价: 1 分芯积分)

conv.py (1.75 KB, 下载次数: 0, 售价: 1 分芯积分)

3dig.py (2.67 KB, 下载次数: 0, 售价: 1 分芯积分)

 

点评

混一点下载积分,大家应该都有吧  详情 回复 发表于 2024-10-28 21:49
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(中级)

4
 

混一点下载积分,大家应该都有吧

 
 
 

回复

6807

帖子

0

TA的资源

五彩晶圆(高级)

5
 

数码管封装的越来越好用了

 
 
 

回复

704

帖子

0

TA的资源

纯净的硅(高级)

6
 

直接连管脚吗,都不用加个电源或来个上拉吗,这功耗这么低的吗

 
 
 

回复

7170

帖子

2

TA的资源

版主

7
 

6根引脚就能驱动,引脚还复用,这想法是挺有意思的。

 
 
 

回复

6449

帖子

9

TA的资源

版主

8
 

看着挺小的,是不是那种保温杯里的显示温度的那种数码管?

个人签名

在爱好的道路上不断前进,在生活的迷雾中播撒光引

 
 
 

回复

320

帖子

0

TA的资源

纯净的硅(初级)

9
 

有点意思,看起来很小巧啊,用在小玩具上也不错

 
 
 

回复

7608

帖子

18

TA的资源

五彩晶圆(高级)

10
 

这个原本是哪个产品上的?看着 还有百分比,欧姆符号

点评

符号是表面的一个贴膜,可以拆下来,残胶用酒精可以洗掉,这样如果自己做面板符号就可以任意换了,符号位置是长方形的发光区,差不多可以照亮2个字母的区间  详情 回复 发表于 2024-11-1 17:32
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(中级)

11
 

不知道,淘宝看到3元10个,就买了测试一下,估计是回收货拿来卖的

个头比保温杯的显示感觉更小,搜了一下类似的一般单个价格在3块左右

 

 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(中级)

12
 
本帖最后由 wangshujun72 于 2024-10-30 12:29 编辑
测试了多段显示模式,减少了中断次数,显示闪烁明显降低,至少手机拍摄能进行了
同时显示共阳的一个组,会随着同时限量的笔段数量出现亮度的差异,视觉上能接受,不算明显
 
3dig_fast.py (2.88 KB, 下载次数: 0, 售价: 1 分芯积分)

 

led

 

 

 
 
 

回复

1659

帖子

0

TA的资源

五彩晶圆(初级)

13
 

有点创新技术啊,6个IO口可以带动这么多LED,这样有点费驱动啊

 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(中级)

14
 

还可以软件压力不大,罗嗦点,但是实际执行压力很小,如果用c实现效率会很高。

程序比传统数码管罗嗦一点,但是对于最终调用没啥区别,驱动三位数码管节省5个io,对于小封装的mcu还是很有吸引力的

 
 
 

回复

363

帖子

3

TA的资源

纯净的硅(初级)

15
 

2个脚的双色LED也是这个原理,就是管脚通过正反向来点亮不同的LED。这种数码管不像通用数码管那种有公共端,所以以前的通用数码管驱动IC也点不了这种管子,还得是单片机来驱动。

 
 
 

回复

1万

帖子

24

TA的资源

版主

16
 

这种不错,用在DIY上很好。

 
 
 

回复

225

帖子

2

TA的资源

一粒金砂(高级)

17
 

还挺不错的,不知道是在什么开发板上用microPython实现的。

个人签名

波光潋滟.~

 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(中级)

18
 

esp32板子做的测试,就用到了gpio和定时器,切换到不同的板子基本不需要做改变

 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(中级)

19
 
freebsder 发表于 2024-10-29 16:42 这个原本是哪个产品上的?看着 还有百分比,欧姆符号

符号是表面的一个贴膜,可以拆下来,残胶用酒精可以洗掉,这样如果自己做面板符号就可以任意换了,符号位置是长方形的发光区,差不多可以照亮2个字母的区间

 
 
 

回复

32

帖子

0

TA的资源

一粒金砂(初级)

20
 
这个怎么卖的,可以做什么?
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表