Wokwi硬件在线仿真
Wokwi
-
WoKwi是一个很酷的支持Arduino、ESP32、树莓派Pico在线仿真学习网站。
-
尤其适合手上没有硬件的,可以用这个网站搭建电路进行仿真,接下来介绍一个Micropython+esp32+数码管的一个电路。
支持大部分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)
- 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吧
来显示一个数字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()
人必有所执,方能有所成。