ESP32学习笔记
实训2 Python点亮小灯
- 三步口诀:导模块→设引脚→给电平
from machine import Pinled=Pin(2,Pin.OUT)led.value(1)# 高→亮 - 必记:GPIO号=板丝印数字,无需映射。
实训3 闪亮的小灯(延时)
- 延时唯二句:
import timetime.sleep(秒)# 浮点可0.1 - 轮流亮灭套路:亮→sleep→灭→sleep,for/while皆可。
实训4 一闪一闪(for循环)
- range三种
单参:range(5) → 0 1 2 3 4
双参:range(2,6) → 2 3 4 5
三参:range(0,10,3) → 0 3 6 9 - 同时闪:多灯value写同一循环体;
依次闪:循环内换灯号+sleep。
实训5 一直闪(while循环)
- 永久循环:
while True:
循环体 - 跳出手段:Ctrl+C(REPL)或条件break。
实训6 RGB灯带
- 固定引脚19,库neopixel
from neopixel import NeoPixelnp=NeoPixel(Pin(19),19)# 19颗 - 单灯语法:
np[i]=(R,G,B)# 0-255np.write()# 必须刷新才生效 - 全灯同色:
np.fill((0,0,255))np.write()
实训6-2 RGB流水灯(进阶)
- 流水=for序号+for颜色列表嵌套
colors=[(255,0,0),(0,255,0),(0,0,255)]for c in colors:
for i in range(8,19):
np[i]=c; np.write(); time.sleep(0.2)
实训7 OLED显示字符
- 先刷ssd1306.py到板子!
- 固定I²C:SDA=21 SCL=22 addr=0x3c
from machine import Pin,I2Cfrom ssd1306 import SSD1306_I2Ci2c=I2C(sda=Pin(21),scl=Pin(22))oled=SSD1306_I2C(128,64,i2c,addr=0x3c) - 显示三句:
oled.fill(0)# 清屏oled.text('str',x,y)# 左上角坐标oled.show()# 立即刷新 - 居中x算法:
(128 - 8*len(str))//2# 8×8点阵
实训8 OLED图形+中文
- 画线API:
oled.pixel(x,y,1)# 单点oled.hline(x,y,w,1)# 横线oled.vline(x,y,h,1)# 竖线 - 中文显示步骤:
① PCtoLCD2002取模→32字节
② 建字典:fonts={'中':[...],'文':[...]}
③ 逐字节逐位画点→oled.pixel()
④ 居中同理,中文宽16高16。
实训9 电压测量
- ADC引脚34/35,量程0-3.3 V
- 衰减必须11 dB:
adc=ADC(Pin(34))adc.atten(ADC.ATTN_11DB) - 公式背:
V=3.3*adc.read_u16()/65535-0.04# 误差修正 - OLED同步显示:
oled.text('{:.3f}V'.format(V),0,0)
实训10 温湿度传感器
(文档极简,仅留接口)
- 单总线→
import dht - 读取:
d=dht.DHT11(Pin(XX))d.measure()t=d.temperature(); h=d.humidity()
实训11 电机
- 直流电机需驱动板;实验用开关+可调电源
- 开关接线:上拉输入
sw=Pin(pin,Pin.IN,Pin.PULL_UP) - 电压阈值判转停:
if V>=3: motor.value(1) else: motor.value(0)
实训12 超声波测距
- 库:HCSR04.py 需提前刷入
from hcsr04 import HCSR04sonar=HCSR04(trig=Pin(x),echo=Pin(y)) - 读距:
d=sonar.distance()# cm,保留两位 - 联动电机:
if d<10: motor.on() else: motor.off()
实训13 霍尔传感器
- 任意ADC引脚,衰减11 dB
- 磁场特性:
正面靠近→电压↓;背面靠近→电压↑ - 实时显示:
val=ADC(Pin(x)).read()oled.text('{}'.format(val),0,0) - 综合案例:
if val>3000: 流水红灯 else: 全灭
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 运阳的小窝
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果