NodeMCU 扩展74HC595 控制数码管

spi api

https://nodemcu.readthedocs.io/en/master/en/modules/spi/

引脚图

IMG_6250.JPG
timg.jpg
0a4.png
0a3.png

接法

  • SCLR(10脚): 低点平时将移位寄存器的数据清零。通常我将它接Vcc。
  • SCK(11脚):上升沿时数据寄存器的数据移位。QA-->QB-->QC-->...-->QH;
    下降沿移位寄存器数据不变。(脉冲宽度:5V时,大于几十纳秒就行了。我通常都选微秒级)
  • RCK(12脚):上升沿时移位寄存器的数据进入数据存储寄存器,下降沿时存储寄存器数据不变。通常我将RCK置为低电平,当移位结束后,在RCK端产生一个正脉冲(5V时,大于几十纳秒就行了。我通常都选微秒级),更新显示数据。
  • G(13脚): 高电平时禁止输出(高阻态)。如果单片机的引脚不紧张,用一个引脚控制它,可以方便地产生闪烁和熄灭效果。比通过数据端移位控制要省时省力。

youtube教学

单595连通led

image.png

https://gist.github.com/lucsmall/66d9b6539df7a0daa569

youtube此视频提供的代码:

latch_pin = 2
gpio.mode(3,gpio.INPUT)
gpio.mode(latch_pin, gpio.OUTPUT)
gpio.write(latch_pin,gpio.LOW)
result = spi.setup(1,spi.MASTER,spi.CPOL_HIGH,spi.CPHA_LOW,8,0)
print(result)  
index = 0x00ff
function next()
    print(index, string.format("0x%02X", index))
    spi.send(1,index) 
    gpio.write(latch_pin,gpio.HIGH)
    gpio.write(latch_pin,gpio.LOW)
    index = index+1
end  
next() 
gpio.trig(3,"up",next)

按照上面接线, 成功点亮, 但是貌似没有逻辑, 逻辑分析仪显示也和led亮灭相符

num bitcode led real led should correct ?
0 0000 - - right
1 0001 - 1 wrong
2 0010 - 2 wrong
3 0011 1,2 1,2 right
4 0100 - 3 wrong
5 0101 - 1,3 wrong
6 0110 3 2,3 wrong
7 0111 1,2,3 1,2,3 right
8 1000 - 4 wrong
9 1001 - 1,4 wrong
10 1010 - 2,4 wrong
11 1011 2 1,2,4 wrong
12 1100 3,4 3,4 wrong
13 1101 1,3,4 1,3,4 right
14 1110 3,4 2,3,4 wrong
15 1111 1,2,3,4 1,2,3,4 right

后来发现把spi的clock divide设置为1就正常了, 其他分频都不正常, 未知原因, 没有逻辑分析仪, 无法深入研究, 会的可以留言说明一下

双595级联

现在是正确的级联方案,

latch_pin = 2
gpio.mode(3,gpio.INPUT)
gpio.mode(latch_pin, gpio.OUTPUT)
gpio.write(latch_pin,gpio.LOW)
result = spi.setup(1,spi.MASTER,spi.CPOL_LOW,spi.CPHA_HIGH,16,8)
print(result)  
index = 0x00ff
function next()
    print(index, string.format("0x%02X", index))
    spi.send(1,index) 
    gpio.write(latch_pin,gpio.HIGH)
    gpio.write(latch_pin,gpio.LOW)
    index = index+1
--    if(index>255) then
--        index = 0
--    end
end  
next() 
gpio.trig(3,"up",next)

595级联压降问题

第二个595 led有高电平时, 第一个595对应的led压降为0.23~0-26
第二个595 led无高电平时, 第一个595对应的led压降为0.012
现象: 不管第一级led亮没亮, 第二级led都不会很亮

16灯全亮状态
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • SPI通信实验 SPI简介 串行外设接口(Serial Peripheral Interface Bus,SPI)...
    btskyrmb阅读 9,696评论 1 12
  • 什么是嵌入式 IEEE(Institute of Electrical and Electronics Engin...
    Leon_Geo阅读 3,777评论 1 20
  • 1、嵌入式系统的定义 (1)定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本...
    荣卓然阅读 1,871评论 0 5
  • ​​​本文主要介绍嵌入式系统的一些基础知识,希望对各位有帮助。 嵌入式系统基础 1、嵌入式系统的定义 (1)定义:...
    OpenJetson阅读 3,354评论 0 13
  • 2016年12月3日晚,深圳湾春茧体育馆,迎来了歌手李健全国巡演安可场的第一场。 “又见到你们了,好像已经隔了很远...
    知鱼君阅读 709评论 9 7