【得捷电子Follow me第1期】任务2:驱动led和蜂鸣器
[复制链接]
本任务主要包括三块,驱动led灯,蜂鸣器和oled显示屏,但是oled驱动有点问题,所以暂时放下,后续再整理。
1.驱动LED
PICO W板子上载有一颗LED灯,具体可以参考下面电路图,其位于usb接口左边。
LED是通过GPIO口控制,我们需要用machine模块中的Pin包来进行控制。使用Pin创建一个lED对象,然后通过管脚的电平高低来进行控制。
管脚电平有两种控制方式,一种是on和off函数,另外一种是value函数。
具体如下:
#点亮led
led.on()
#熄灭led
led.off()
#点亮led
led.value(1)
#熄灭led
led.value(0)
这里加了time模块循环控制灯。
Led.py文件如下:
from machine import Pin
import time
#Led = Pin(25,Pin.OUT)
#Led = Pin("WL_GPIO0",Pin.OUT)
Led = Pin("LED",Pin.OUT)
#Led = Pin("GP7",Pin.OUT)
while True:
#Led.on()
Led.value(1)
print("LED灯亮")
time.sleep(0.3)
#Led.off()
Led.value(0)
print("LED灯灭")
time.sleep(0.3)
效果如下:
led点亮
2.蜂鸣器驱动
蜂鸣器驱动需要用到PWM进行驱动,PWM引脚由管脚16控制,具体代码如下。
# Example using PWM to fade an BEEP.
import time
from machine import Pin, PWM
# Construct PWM object, with BEEP on Pin(16).
pwm = PWM(Pin(16))
# Set the PWM frequency.
pwm.freq(1000)
# Fade the BEEP in and out a few times.
duty = 0
direction = 1
for _ in range(4 * 256):
duty += direction
if duty > 255:
duty = 255
direction = -1
elif duty < 0:
duty = 0
direction = 1
pwm.duty_u16(duty * duty)
time.sleep(0.001)
效果如下:
驱动breez
|