277|18

61

帖子

0

TA的资源

一粒金砂(中级)

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

 

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

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

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

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

1.png

找到的图纸资料

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

led6----esp32-22

3.png

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

4.png

 

 

 

最新回复

还挺不错的,不知道是在什么开发板上用microPython实现的。   详情 回复 发表于 前天 15:24

回复
举报

61

帖子

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

测试程序

 

 

点评

   详情 回复 发表于 6 天前

回复

61

帖子

0

TA的资源

一粒金砂(中级)

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

点评

混一点下载积分,大家应该都有吧  详情 回复 发表于 6 天前

回复

61

帖子

0

TA的资源

一粒金砂(中级)

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


回复

6507

帖子

0

TA的资源

五彩晶圆(高级)

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


回复

684

帖子

0

TA的资源

纯净的硅(高级)

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


回复

6687

帖子

2

TA的资源

版主

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


回复

5957

帖子

6

TA的资源

版主

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

个人签名

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


回复

276

帖子

0

TA的资源

纯净的硅(初级)

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


回复

7419

帖子

18

TA的资源

五彩晶圆(高级)

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

点评

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

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


回复

61

帖子

0

TA的资源

一粒金砂(中级)

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

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

 


回复

61

帖子

0

TA的资源

一粒金砂(中级)

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

回复

1549

帖子

0

TA的资源

五彩晶圆(初级)

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


回复

61

帖子

0

TA的资源

一粒金砂(中级)

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

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


回复

351

帖子

3

TA的资源

纯净的硅(初级)

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


回复

1万

帖子

24

TA的资源

版主

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


回复

72

帖子

2

TA的资源

一粒金砂(中级)

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


回复

61

帖子

0

TA的资源

一粒金砂(中级)

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


回复

61

帖子

0

TA的资源

一粒金砂(中级)

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

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


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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
推荐帖子
PIC单片机各地售价收集(每天都有所更新)

杭州 PIC16C/F74: 20元 PIC16C72: 12元 PIC16C711: 8.5元 PIC16C57: 6.5元 PIC16C54: 5元

几个硬件设计经验

鸡毛蒜皮之一:成本节约 现象一:这些拉高/拉低的电阻用多大的阻值关系不大,就选个整数5K吧 点评:市场上不存在5K的阻值, ...

ADC/DAC应用设计宝典

第一章 ADC与DAC概念 ⋯⋯ 1 第二章 ADC与DAC原理 ⋯⋯ 1-3 第三章 ADC与DAC基础知识详解 ⋯⋯ ...

「ADI模拟大学堂」运算放大器和专用放大器的应用和常识

143655「ADI模拟大学堂」运算放大器和专用放大器的应用和常识(Amplifier_Fundamentals)(2014.3.8) (每日一份资料) 「ADI模拟 ...

树莓派蓝牙基础——bluezero库的使用

本帖最后由 lb8820265 于 2021-8-8 22:50 编辑 linux系统中有很多操作蓝牙的库,这里介绍一个我认为最好的,bluezero库。 ...

闯大祸!日本惠普公司误删京都大学超算系统77TB重要数据

据京都大学主页的公报显示,本次数据丢失事件发生在 12 月 14 日 到 12 月 16 日之间,一共删除了/LARGE0 目录下的 3400 多万个 ...

检波电路、滤波电路、选频电路、门限比较电路、带通电路之间的异同

检波电路、滤波电路、选频电路、门限比较电路、带通电路之间的异同 学电路那么久,一直还没 用过检波电路!一般是用在什么场 ...

stm32单片机实现串口1(115200)同时接收/发送数据给串口2(9600)

stm32g030芯片 实现功能串口1 给串口2 发送数据,同时接收串口2数据 串口2给串口1 发送数据,同时接收串口1数据 ...

有没有方法从OLED显示中反推出使用的字体

在做一个项目,使用的是OLED屏,客户要求显示字体跟以前一样,但是客户又不知道字体是什么。 可以从样品看出显示内容,如图( ...

得捷电子Follow me第2期】+任务3:控制WS2812B

项目介绍:使用按键控制板载Neopixel LED的显示和颜色切换 最开始要导入以下2个库 750230 这里我选择板载的按 ...

关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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