• ESP32 Micropython编程(Thonny)02---- Wokwi仿真及数码管使用


    本文在上文的基础上,进一步体验一下micropython的使用,如果大家手上没有硬件也不要紧。
    给这里大家介绍一个免费在线仿真网站,以及用这个网站搭建一个Micropython+esp32+数码管的一个电路
    
    • 1
    • 2

    一. Wokwi

    WOKWI 是一个很酷的支持Arduino、ESP32、树莓派Pico在线仿真学习的网站。 :
    官网
    官方帮助文档
    支持大部分arduino框架的板子,以及micropython。
    在这里插入图片描述
    具体使用大家自己摸索一下就ok,网站上还有很多有意思的例程,大家可以进去学习,很快就可以掌握这个网站的使用方法。

    二 Micropython+esp32+数码管

    这是我搭建的一个电路,大家可以参考。
    在这里插入图片描述

    1.数码管

    数码管也就是由几个led组成,数码管显示数字本质上,就是点亮led,在图形上构成数字。
    在这里插入图片描述
    如图:我们想要显示1,那么 adefg dp数码管灭,bc数码管亮就ok了,代码也很简单,接下来我没们来分析代码。

    1. 管脚
      对应8个led,给他们在esp32上分配管脚,你可以根据你的爱好改变。
    import machine
    import time
    A = machine.Pin(13, machine.Pin.OUT)   
    B = machine.Pin(12, machine.Pin.OUT)   
    C = machine.Pin(14, machine.Pin.OUT)   
    D = machine.Pin(27, machine.Pin.OUT)  
    E = machine.Pin(26, machine.Pin.OUT) 
    F = machine.Pin(25, machine.Pin.OUT)   
    G = machine.Pin(33, machine.Pin.OUT)   
    H = machine.Pin(32, machine.Pin.OUT)   
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    2.显示数组

    看下面代码,为什么这样呢?
    想一下,如果我们要显示9,我们分别对8个led进行操作,那么显示一个数字就需要8行代码,还很麻烦,但如果我们提前把每一个数字所对应led的状态列出来,当需要的时候通过提前存放的这样一个关系进行点亮,是不是就很方便了呢,可能我描述的不是很清晰,那请仔细看一下代码吧。

    number_led = [A, B, C, D, E, F, G, H]
    number_dict = {
        0: "11111100",
        1: "01100000",
        2: "11011010",
        3: "11110010",
        4: "01100110",
        5: "10110110",
        6: "10111110",
        7: "11100000",
        8: "11111110",
        9: "11110110",
        "open": "11111111",
        "close": "00000000"
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    3.来显示一个数字9吧

    仔细体会一下,很方便的一种方式。

    #共阳数码管
    import machine
    import time
    A = machine.Pin(13, machine.Pin.OUT)   
    B = machine.Pin(12, machine.Pin.OUT)   
    C = machine.Pin(14, machine.Pin.OUT)   
    D = machine.Pin(27, machine.Pin.OUT)  
    E = machine.Pin(26, machine.Pin.OUT) 
    F = machine.Pin(25, machine.Pin.OUT)   
    G = machine.Pin(33, machine.Pin.OUT)   
    H = machine.Pin(32, machine.Pin.OUT)   
    
    number_led = [A, B, C, D, E, F, G, H]
    number_dict = {
        0: "11111100",
        1: "01100000",
        2: "11011010",
        3: "11110010",
        4: "01100110",
        5: "10110110",
        6: "10111110",
        7: "11100000",
        8: "11111110",
        9: "11110110",
        "open": "11111111",
        "close": "00000000"
    }
    def show_num(num):
        if number_dict.get(num):
            i = 0
            for bit in number_dict.get(num):
                if bit == "0":
                    number_led[i].value(1)
                else:
                    number_led[i].value(0)
                i += 1
    
    def main():
        for i in range(0,10):
            show_num(i)
            time.sleep(0.3)
        
    
    if __name__ == "__main__":
        main()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45

    这一篇就到这里喽,下面会更新esp32的特色,网络方面的内容,以及使用电脑通过udp控制esp32led的亮灭。

  • 相关阅读:
    bootStrap-switchery插件状态回显问题
    Self-paced Multi-grained Cross-modal Interaction Modeling for Referring Expression Comprehension论文阅读
    uniapp开发小程序—picker结合后台数据实现二级联动的选择
    python使用memory_profiler分析代码运行内存占用
    设计模式之装饰器模式
    还得是GPT-4o真强呀:单例模式在libsrt中的运用
    Educational Codeforces Round 154 (Rated for Div. 2)【A-E】【详细题解,F未完待续】
    数据治理-数据模型计分卡
    多个JDK版本可以吗:JDK17、JDK19、JDK1.8轻松切换(无坑版)小白也可以看懂
    编写结构化程序 - Go语言从入门到实战
  • 原文地址:https://blog.csdn.net/amimax/article/details/127826015