Todas las tarjetas tienen un LED RGB integrado. Puedes utilizar a CircuitPython para controlar el color y la intensidad de este LED. Hay dos tipos diferentes de LEDs RGB integrados, los DotStar y los NeoPixel. Esta sección los cubre a ambos y explica cual tarjeta tiene cual tipo de LED.

Este primer ejemplo de muesta como cambiar de color e intensidad en el LED RGB integrado.
Copia y pega el código dentro de code.py utilizando tu editor favor y salva el archivos.
# SPDX-FileCopyrightText: 2018 Kattni Rembor for Adafruit Industries # # SPDX-License-Identifier: MIT """CircuitPython Essentials Internal RGB LED red, green, blue example""" import time import board if hasattr(board, "APA102_SCK"): import adafruit_dotstar led = adafruit_dotstar.DotStar(board.APA102_SCK, board.APA102_MOSI, 1) else: import neopixel led = neopixel.NeoPixel(board.NEOPIXEL, 1) led.brightness = 0.3 while True: led[0] = (255, 0, 0) time.sleep(0.5) led[0] = (0, 255, 0) time.sleep(0.5) led[0] = (0, 0, 255) time.sleep(0.5)
Creando el objeto LED
Primero, creamos el objeto LED y lo conectamos con el pin o pines correctos. En el caso del NeoPixel, solo es necesario un pin, y lo hemos llamado NEOPIXEL
para facilidad de uso. Sin embargo, para el caso de un DotStar es necesario dos pines, así vamos a usar los pines nombrados como APA102_MOSI
y APA102_SCK
para configurarlo. Ya que estamos usando un solo LED integrado, ¡lo siguiente que queremos es decirle que la cantidad de LEDs es 1
!
En las Trinket M0, Gemma M0, ItsyBitsy M0 Express, y las ItsyBitsy M4 Express tienen su propio LED Dotstar integrado, por lo que no se requieren cambios a la versión inicial de este ejemplo.
Para las Feather M0 Express, Feather M4 Express, Metro M0 Express, Metro M4 Express, y Circuit Playground Express tienen su propio LED NeoPixel integrado, así que debes comentar import adafruit_dotstar
y led = adafruit_dotstar.DotStar(board.APA102_SCK, board.APA102_MOSI, 1)
, y descomentar import neopixel
y led = neopixel.NeoPixel(board.NEOPIXEL, 1)
.
Brillo
Para definir el brillo, simplemente utilice el atributobrightness
. El brillo se define con un número entre 0
y 1
, que representa un porcentaje de 0% a 100%. Así que, led.brightness = (0.3)
ajusta el brillo del LED a un 30%. El brillo por omisión es 1
o 100%, y ¡en su máximo el LED es demasiado brillante! Lo puedes bajar si así lo deseas.
Ciclo Principal
Los colores del LED se definen con una combinación de rojo (red), verde (green), y azul (blue), en la forma de una tupla (R, G, B). Cada miembro de la tupla es un número entre 0 y 255 que determina la cantidad de color presente. ¡Rojo, verde y azul en diferentes combinaciones pueden crear todos los colores del arcoiris! Así que por ejemplo, para prender el LED en rojo, la tupla sería (255, 0, 0), lo cual es el máximo de color para el rojo, y nada de verde o azul. Verde sería (0, 255, 0) y así. Para los colores intermedios, puedes definir una combinación como cían sería (0, 255, 255), con cantidades iguales de verde y azul.
El ciclo principal es muy sencillo. Define el primer LED en rojo utilizando (255, 0, 0)
, luego verde usando (0, 255, 0)
, y finalmente azul usando (0, 0, 255)
. Luego hacemos un llamado a time.sleep()
para que se quede en cada color un periodo de tiempo. Escogemos time.sleep(0.5)
, o medio segundo. ¡Sin el time.sleep()
va a parpadear los colores demasiado rápido y va a ser difícil de ver!
Observe que definimos led[0]
. Esto quiere decir el primero, en el caso de la mayoría de tarjetas, el único LED. En CircuitPython, los contadores inician en 0. ¡Así que el primero objeto de por ejemplo una lista, va a ser 0
!
Trata cambiando los números en las tuplas, para cambiar tu LED a cualquier color del arcoiris. O, puedes agregar más líneas con diferentes tuplas de color para agregar más colores a la secuencia. Siempre agrega time.sleep()
, ¡pero trata cambiando la cantidad de tiempo para crear diferentes animaciones de ciclo!
Programar efectos de arcoiris involucra un poquito de matemática y una función llamada wheel
. Para detalles de como funciona wheel, ¡observa esta explicación!!
El último ejemplo muestra como agregar la animación de arcoiris al LED RGB integrado.
Copia y pega el código en code.py utilizando tu editor favorito y salva el archivo. Recuerda comentar y descomentar las líneas apropiadas para tu tarjeta, según se explicó arriba.
# SPDX-FileCopyrightText: 2018 Kattni Rembor for Adafruit Industries # # SPDX-License-Identifier: MIT """CircuitPython Essentials Internal RGB LED rainbow example""" import time import board from rainbowio import colorwheel if hasattr(board, "APA102_SCK"): import adafruit_dotstar led = adafruit_dotstar.DotStar(board.APA102_SCK, board.APA102_MOSI, 1) else: import neopixel led = neopixel.NeoPixel(board.NEOPIXEL, 1) led.brightness = 0.3 i = 0 while True: i = (i + 1) % 256 # run from 0 to 255 led.fill(colorwheel(i)) time.sleep(0.01)
Vamos a agregar la función wheel
luego de setup, pero antes de nuestro ciclo principal.
Y justo antes de nuestro ciclo principal, asignamos a la variable i = 0
, así que está listo para usarse dentro del ciclo.
El ciclo principal contiene algo de matemática que cicla i
de 0
a 255
y de vuelta de nuevo de forma repetida. ¡Usamos esto para ciclar wheel()
alrededor del arcoiris!
El time.sleep()
determina la velocidad con la que el arcoiris cambia. ¡Trata un número mayor para un arcoiris más lento, y un número menor para uno más rápido!
Arcoiris en la Circuit Playground Express
Note que aquí usamos led.fill
en lugar de led[0]
. Esto significa que prendemos todo los LEDs, que en nuestro código actual es solo uno. ¿Para que preocuparnos con fill
? Bueno, es posible que tengas una Circuit Playground Express, la cual tiene DIEZ LEDs NeoPixel integrados. Los ejemplos hasta el momento solo han prendido el primero. Si deseas realizar un arcoiris con todos los diez LEDs, cambie el 1
en:
led = neopixel.NeoPixel(board.NEOPIXEL, 1)
por 10
para que lea:
led = neopixel.NeoPixel(board.NEOPIXEL, 10)
.
Esto le dice al código que busque 10 LEDs, en lugar de solo 1. Ahora salve el código y ¡observe como se mueve el arcoiris! Puede cambiar el mismo 1
por 10
en los ejemplos anteriores, y ¡utilizar led.fill
para prender los LEDs con los colores que escoja! Para más detalles, revise la sección de NeoPixel en la guía de CPX!
Page last edited January 22, 2025
Text editor powered by tinymce.