本文在上文的基础上,进一步体验一下micropython的使用,如果大家手上没有硬件也不要紧。
给这里大家介绍一个免费在线仿真网站,以及用这个网站搭建一个Micropython+esp32+数码管的一个电路
一. Wokwi
WOKWI 是一个很酷的支持Arduino、ESP32、树莓派Pico在线仿真学习的网站。 :
官网
官方帮助文档
支持大部分arduino框架的板子,以及micropython。
具体使用大家自己摸索一下就ok,网站上还有很多有意思的例程,大家可以进去学习,很快就可以掌握这个网站的使用方法。
二 Micropython+esp32+数码管
这是我搭建的一个电路,大家可以参考。
1.数码管
数码管也就是由几个led组成,数码管显示数字本质上,就是点亮led,在图形上构成数字。
如图:我们想要显示1,那么 adefg dp数码管灭,bc数码管亮就ok了,代码也很简单,接下来我没们来分析代码。
- 管脚
对应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)
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"
}
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()
这一篇就到这里喽,下面会更新esp32的特色,网络方面的内容,以及使用电脑通过udp控制esp32led的亮灭。