在树莓派 Pico 上用 PWM 实现 LED 呼吸灯

Pico 上的每个 GPIO 引脚都能够进行脉宽调制,通过改变引脚打开和关闭的频率,可以改变或调制这些脉冲的宽度实现模拟输出。

树莓派 Pico 上的模拟-数字转换器只能以一种方式工作,它将模拟信号转换为微控制器可以理解的数字信号。如果你想走另一种方式,并让你的数字微控制器创建一个模拟输出,你通常需要一个数字到模拟转换器(DAC),但有一种方法来「伪造」模拟信号,使用所谓的脉宽调制或 PWM。
微控制器的数字输出只能是 0 或 1。打开和关闭数字输出被称为脉冲,通过改变引脚打开和关闭的频率,你可以改变或调制这些脉冲的宽度,因此称为「脉宽调制」。

Pico 上的每个 GPIO 引脚都能够进行脉宽调制,但是微控制器的脉宽调制块是由八个切片组成的,每个切片有两个输出。如图所示,你会看到每个 Pin 都有一个字母和一个数字。数字表示 PWM 引脚的编号,而字母表示使用的哪一个 PWM 片来输出。

在树莓派 Pico 上用 PWM 实现 LED 呼吸灯

如果你在引脚 GP0 上使用 PWM_A[0],在引脚 GP1 上使用 PWM_B[0],一切都正常。如果你在引脚 GP2 上添加 PWM_A[1],依然正常运行。但是如果你尝试在引脚 GP0 和引脚 GP16 上使用 PWM 通道,你会遇到问题,因为它们都连接到 PWM_A[0]。

下面按照图示搭建电路,LED 和 330Ω 限流电阻,LED 正极通过 330Ω 电阻连接 Pico 的 GP16。LED 负极连接到 Pico 的 GND 引脚。

在树莓派 Pico 上用 PWM 实现 LED 呼吸灯

在 Thonny 中输入以下代码:


from machine import Pin, PWM
import utime

#将GPIO16设引脚置为PWM
led = PWM(Pin(16))
#设置频率
led.freq(1000)
led_val = 0
#步进值
led_step = 5

while True:
    #按步进值调整
    led_val += led_step
    if led_val >= 100:
        #到达最大值,设置步进为负值,逐步减小
        led_val = 100
        led_step = -5
    elif led_val <= 0:
        #到达最小值,设置步进为正值,逐步增加
        led_val = 0
        led_step = 5
    #设置PWM的值
    led.duty_u16(int(led_val * 500))
    utime.sleep_ms(50)
保存到Pico中(命名为main.py)


执行效果如下:

在树莓派 Pico 上用 PWM 实现 LED 呼吸灯

- 本文为本站原创文章,转载请保留出处。
- 文章链接:https://www.xpstem.com/article/10496

2023-10   阅读(199)   评论(0)
 标签: maker Pico PWM LED

涨知识
EDA

电子设计自动化(英语:Electronic design automation,缩写:EDA)是指利用计算机辅助设计(CAD)软件,来完成超大规模集成电路(VLSI)芯片的功能设计、综合、验证、物理设计(包括布局、布线、版图、设计规则检查等)等流程的设计方式。

评论:
相关文章
新品Raspberry Pi Pico 2,你想知道的都在这里了!

Pico 2采用了树莓派自主设计的新款高性能安全型微控制器 RP2350,核心时钟速度更高、内存翻倍、Arm 核心更强大、具有新的安全功能和升级的接口能力,相比前代产品性能和功能都有大幅提升,同时保持与 Pico 系列产品的硬件和软件兼容性。


MicroPython PWM类

machine.pwm是MicroPython中用于控制PWM输出的模块之一,它提供了一些方法和属性,用于设置和控制PWM输出的频率、占空比等参数,从而实现对各种应用场景的控制。


Raspberry Pi Pico参考资料和引脚说明图

Pico是一块大小和Arduino Nano差不多的板子。即可以单独使用,也可以作为SMD元件,直接焊接到印刷电路板上。


Pi Pico基于ArduinoIDE的C/C++开发环境搭建

本文介绍Pi Pico基于Arduino的C/C++开发环境搭建。


使用 Raspberry Pi Pico W 和 MicroPython 开发物联网应用

当我们提及物联网(IoT, Internet of Things)开发,可能首先想到的是Arduino或是ESP8266这样的微控制器开发板。然而,Raspberry Pi的微控制器开发板——Raspberry Pi Pico W,也是一个很好的选择。

搜索
小鹏STEM教研服务

专属教研服务系统,助您构建STEM课程体系,打造一站式教学环境。