Ilumina tu creatividad con un tutorial detallado sobre cómo hacer una lámpara respiratoria usando Python y Raspberry Pi

Prefacio

  En el artículo anterior, presentamos cómo encender una luz LED en la Raspberry Pi y hacerla parpadear en un intervalo de tiempo de 1 segundo. ¡Haz tu debut! Un método simple y detallado para encender la luz LED en Raspberry Pi_Blog de☞Black Heart Carrot Three Stripes☜ - Blog de CSDN . Ahora veremos cómo hacer una lámpara de respiración.

Introducción a PWM

  PWM es la abreviatura de Modulación de ancho de pulso. Al igual que el STM32, la Raspberry Pi también puede controlar componentes electrónicos a través de la salida PWM, como controlar la velocidad y dirección del motor, el brillo del LED, etc.

  La salida PWM en la Raspberry Pi generalmente se implementa a través del pin GPIO (Entrada/Salida de Propósito General). Hay algunos pines GPIO en Raspberry Pi específicamente para salida PWM, como GPIO18, GPIO19, etc. En el sistema Raspberry Pi Linux, puede utilizar el controlador GPIO y las funciones de biblioteca relacionadas para controlar la salida PWM y lograr el propósito de controlar componentes electrónicos.

  El sistema Raspberry Pi admite dos métodos de implementación: software PWM y hardware PWM. El software PWM simula señales PWM a través de programas. La implementación es relativamente simple y flexible, pero la precisión es relativamente baja. El hardware PWM se implementa mediante un controlador PWM dedicado en la Raspberry Pi. Tiene las características de alta precisión y buena estabilidad, pero requiere el uso de pines GPIO dedicados, el control es complejo y las funciones son relativamente limitadas.

Implementar control PWM del brillo del LED

  Python es un lenguaje de programación de alto nivel muy popular y uno de los lenguajes de programación más utilizados en muchos proyectos de Raspberry Pi. Podemos utilizar la biblioteca RPi.GPIO para implementar el control GPIO.
  Simule la conexión del LED en su diagrama esquemático y el diagrama de efectos es:
imagen-20230620121930339

  Los siguientes son los pasos detallados para implementar la salida de señal PWM basada en el lenguaje Python:

    1. Configure el método de codificación de pines de Raspberry Pi y cree una instancia de un objeto PWM;
    # 设置编码方式
    GPIO.setmode(GPIO.BCM)
    # 设置GPIO引脚
    GPIO.setup(GPIO_Pin, GPIO.OUT)
    # 实例化PWM对象
    pwmObject = GPIO.PWM(GPIO_Pin, frequency)
    1. Iniciar PWM;
    pwmObject.start(10)
    1. Utilice una función ChangeDutyCycle()para modificar el ciclo de trabajo de PWM para que las luces LED se enciendan gradualmente primero y luego continúen atenuándose.
    1. Cuando no se necesita la salida PWM, se puede llamar a la función stop()para detener la salida PWM;

A continuación se muestra el código fuente completo:

def pwmControlLed(GPIO_Pin: int, frequency: int):
    """
    使用PWM控制LED呼吸灯
    :param GPIO_Pin: 可控制的引脚
    :param frequency: PWM的频率
    :return:
    """
    # 设置编码方式
    GPIO.setmode(GPIO.BCM)
    # 设置GPIO引脚
    GPIO.setup(GPIO_Pin, GPIO.OUT)
    # 实例化PWM对象
    pwmObject = GPIO.PWM(GPIO_Pin, frequency)

    # 启动PWM
    pwmObject.start(0)
    try:
        while True:
            for dc in range(0, 101, 5):
                pwmObject.ChangeDutyCycle(dc)
                time.sleep(0.05)
            for dc in range(100, -1, -5):
                pwmObject.ChangeDutyCycle(dc)
                time.sleep(0.05)
    except KeyboardInterrupt:
        pass

    # 停止PWM
    pwmObject.stop()
    GPIO.cleanup()

resultados y análisis

  Podemos ver que en este ejemplo de control PWM del brillo del LED, el uso de PWM para lograr el efecto de una luz respiratoria garantiza que el brillo del LED cambie suavemente dentro de un rango determinado. Al modificar el ciclo de trabajo PWM, el brillo del LED puede lograr un efecto de respiración de oscuro a brillante y luego de regreso a oscuro.

Hacer una lámpara de respiración con Raspberry Pi

  Tenga en cuenta que cuando se utiliza PWM para controlar el brillo del LED, se recomienda utilizar PWM de hardware para obtener un efecto más estable. Al mismo tiempo, cuando utilice software PWM, debe considerar la carga de la CPU y los problemas de precisión para evitar afectar la estabilidad y precisión de la salida PWM.

  Finalmente, se recomienda que cuando utilice un controlador PWM, preste atención a parámetros como la frecuencia de salida y la amplitud del controlador para evitar daños a los componentes electrónicos debido a una salida inestable.

Supongo que te gusta

Origin blog.csdn.net/qq_53960242/article/details/131367342
Recomendado
Clasificación