Saludos! Aca un par de ejemplos testeando el neopixel que incorpora la board, en realidad es un led WS2812 aunque se controlan de la misma forma, para ello estare utilizando la libreria de adafruit. Ya en otro post he comentado los pasos basicos para poder usar ESP32 en arduino, asi que entiendo que ya deberia de estar todo listo.
Lo primero sera seleccionar la board que se usara en arduino. Para ello vamos a Herramientas >> Placa>>ESP32 Arduino y seleccionamos ESP32S2 Dev Module. Tambien doy por enterado que tienen ya instalado el driver se su board, asi quesolo seleccionamos el puerto COM.
Lo siguiente seria tener instalado la libreria de neopixel de adafruit.
Con esto ya podemos iniciar con el codigo, bueno la gran ventaja de esto que la libreria trae bastantes ejemplos asi que por ahi se puede iniar.
Circuito:
No mostrare un circuito porque no hay que armar nada previamente, simplemente conectar la board al puerto USB y cargar e firmware. Lo que si es importante mencionar, es que el LED esta conectado al pin 18 del ESP32.
Código 1 - Colores:
Para el primer ejemplo simplemente tenemos un array con los valores para los LEDs, al enviarlos provocara que vaya cambiando de color en color cada 500 milisegundos.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/******************************************************************************* | |
* | |
* ESP32: Manejo del LED RGB (WS2812) | |
* | |
******************************************************************************* | |
* FileName: ESP32-S2-Saola-1R_WS2812_RGBLed_Colors.ino | |
* Processor: ESP32-S2-WROVER | |
* Complier: Arduino IDE v1.8.19 | |
* Blog: http://mrchunckuee.blogspot.com/ | |
* Description: Pequeño ejemplo para testear LED RGB de la board | |
******************************************************************************* | |
* Rev. Date Comment | |
* v1.0.0 02/12/2024 - Creación y prueba de funcionamiento | |
******************************************************************************/ | |
#include <Adafruit_NeoPixel.h> | |
// ESP32S2 SAOLA 1R GPIO the WS2812 Led. | |
#define PIN 18 | |
//Single WS2812 config | |
Adafruit_NeoPixel pixels(1, PIN, NEO_GRB + NEO_KHZ800); | |
int colorCount = 0; | |
uint32_t patternColorsLED[] = {0x000000, 0x0000FF, 0x00FF00, 0x00FFFF, 0xFF0000, 0xFF00FF, 0xFFFF00, 0xFFFFF, }; | |
unsigned long previousMillis = 0; | |
const long interval = 500; // Time (in milliseconds) to pause between color change | |
void setup() { | |
pixels.setBrightness(50); | |
pixels.begin(); | |
pixels.show(); // WS2812 Led = Off | |
} | |
void loop() { | |
unsigned long currentMillis = millis(); | |
if (currentMillis - previousMillis >= interval) { | |
previousMillis = currentMillis; | |
//Set the new color | |
pixels.setPixelColor(0, patternColorsLED[colorCount]); | |
// Updated pixel colors | |
pixels.show(); | |
//Change the colors and limit the end | |
colorCount++; | |
if (colorCount > 7) | |
colorCount = 0; | |
} | |
} |
Código 2- Degradado de colores:
Para el segundo ejemplo he reutilizado un demo de ejemplo de la libreria, el cual va realizando un degradado en todos los colores casa 30 milisegundos.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/******************************************************************************* | |
* | |
* ESP32: Manejo del LED RGB (WS2812) | |
* | |
******************************************************************************* | |
* FileName: ESP32-S2-Saola-1R_WS2812_RGBLed_FaddingColors.ino | |
* Processor: ESP32-S2-WROVER | |
* Complier: Arduino IDE v1.8.19 | |
* Blog: http://mrchunckuee.blogspot.com/ | |
* Description: Pequeño ejemplo para testear LED RGB de la board, haciendo | |
* degradado de los colores. | |
******************************************************************************* | |
* Rev. Date Comment | |
* v1.0.0 02/12/2024 - Creación y prueba de funcionamiento | |
******************************************************************************/ | |
#include <Adafruit_NeoPixel.h> | |
// ESP32S2 SAOLA 1R GPIO the WS2812 Led. | |
#define PIN 18 | |
//Single WS2812 config | |
Adafruit_NeoPixel pixels(1, PIN, NEO_GRB + NEO_KHZ800); | |
int colorCount = 0; | |
unsigned long previousMillis = 0; | |
const long interval = 30; // Time (in milliseconds) to pause between color change | |
void setup() { | |
pixels.setBrightness(50); | |
pixels.begin(); | |
pixels.show(); // WS2812 Led = Off | |
} | |
void loop() { | |
unsigned long currentMillis = millis(); | |
if (currentMillis - previousMillis >= interval) { | |
previousMillis = currentMillis; | |
//Set the new color | |
pixels.setPixelColor(0, Wheel(colorCount)); | |
// Updated pixel colors | |
pixels.show(); | |
//Change the colors and limit the end | |
colorCount++; | |
if (colorCount > 255) | |
colorCount = 0; | |
} | |
} | |
// Input a value 0 to 255 to get a color value. | |
// The colours are a transition r - g - b - back to r. | |
uint32_t Wheel(byte WheelPos) { | |
WheelPos = 255 - WheelPos; | |
if(WheelPos < 85) { | |
return pixels.Color(255 - WheelPos * 3, 0, WheelPos * 3); | |
} | |
if(WheelPos < 170) { | |
WheelPos -= 85; | |
return pixels.Color(0, WheelPos * 3, 255 - WheelPos * 3); | |
} | |
WheelPos -= 170; | |
return pixels.Color(WheelPos * 3, 255 - WheelPos * 3, 0); | |
} |
Bueno por el momento es todo si tienes dudas, comentarios, sugerencias, inquietudes, traumas, etc. dejarlas y tratare de responder lo mas pronto posible. Puedes revisar el listado de material disponible sobre ESP32 en el blog.
Descargas:
Aquí el enlace directo para DESCARGAR los archivos disponibles, también puedes revisar o descargar la información desde mi repositorio en GitHub, si no sabes como descargarlo puedes checar aquí.
Donaciones:
Si te gusta el contenido o si los recursos te son de utilidad, comparte el enlace en tus redes sociales o sitios donde creas que puede ser de interés y la otra puedes ayudarme con una donación para seguir realizando publicaciones y mejorar el contenido del sitio. También puedes hacer donaciones en especie, ya sea con componentes, tarjetas de desarrollo o herramientas. Ponte en contacto para platicar, o puedes volverte uno de nuestros sponsors.
Pido una retroalimentación avisando cada que un enlace no sirva o tenga errores al momento de abrirlo, así también si una imagen no se ve o no carga, para corregirlo en el menor tiempo posible.
Links:
- MrChunckuee, "ESP32 DevKit v1: Primeros pasos para iniciar con esta board", https://mrchunckuee.blogspot.com/2023/11/esp32-devkit-v1-primeros-pasos-para.html
0 Comentarios