111 proyectos con bloques · Arduino · ESP32 · Pico
Programación por bloques con Arduino, ESP32 y Pico
En lugar de leer el código línea a línea, sigue bloques de colores. 111 proyectos de BlueGrays ya tienen su versión en bloques, y cada bloque corresponde a una línea del código real que se carga en la placa.
¿Qué es la programación por bloques?
Programar por bloques es construir un programa con piezas que encajan como un puzle en vez de escribirlo. «Configurar el pin como salida», «encender el LED» o «esperar 1 segundo» son bloques, y al apilarlos se forma el programa. Sin puntos y coma, sin paréntesis y sin erratas: toda la atención va a la lógica.
BlueGrays usa su propio conjunto de bloques y los muestra en tu idioma: si usas la app en español, los bloques también están en español. En los proyectos de Arduino y ESP32 los bloques equivalen a código C++; en los de Raspberry Pi Pico, a MicroPython.
La idea no es quedarse en los bloques, sino entender el código. Con los bloques y el código de un proyecto uno al lado del otro ves para qué sirve cada línea, y tras unos cuantos proyectos empiezas a leer el código sin bloques.
Cómo funciona la programación por bloques en BlueGrays
En la app, los bloques están en la sección de código de cada proyecto que los tiene. En cuatro pasos:
- 01
Elige un proyecto con bloques
Los proyectos con la insignia de bloques traen su versión en bloques. También puedes filtrar la lista para ver solo esos proyectos.
- 02
Activa «Ver en bloques»
Un interruptor en la sección de código convierte el código en bloques. Toca la imagen para verla a pantalla completa y ampliarla.
- 03
Entiende los bloques
La pestaña «Entiende los bloques» explica el programa paso a paso y en cada paso muestra solo sus bloques y lo que hacen.
- 04
Pasa al código real
Desactiva el interruptor y aparece el mismo programa en código. Cópialo en el IDE de Arduino (en Thonny si es una Pico) y cárgalo en tu placa.
Un mismo programa: bloques y código
A la izquierda, los bloques del proyecto; a la derecha, el código que se carga en la placa. Cada bloque tiene su línea de código.
Bloques

Código
1// ─────────────────────────────────────────
2// BlueGrays · bluegrays.com
3// Parpadeo de LED
4// ─────────────────────────────────────────
5// Hace parpadear un único LED, encendido y apagado cada 100 ms. Muestra el
6// uso básico de las funciones digitalWrite y delay.
7//
8// Pines:
9// D9 -> LED (con una resistencia de 220 ohmios)
10
11void setup() {
12 pinMode(9,OUTPUT); // Pin del LED como salida
13}
14
15void loop() {
16 digitalWrite(9,HIGH); // Encender el LED
17 delay(100); // Esperar 100 ms (1000 ms = 1 s)
18 digitalWrite(9,LOW); // Apagar el LED
19 delay(100);
20}
21Proyectos con bloques
Todos los proyectos con versión en bloques, por plataforma. Los gratuitos van primero: en 31 proyectos los bloques y el código son totalmente gratis.
Proyectos Arduino76 proyectos con bloques

Parpadeo de LED
El primer hola de la electrónica: encender y apagar un solo LED. El Arduino enciende y apaga el LED a intervalos cortos, así que la luz parpadea rápido. Ves de la forma más sencilla cómo la placa cont

Dos LED parpadeando alternadamente
Dos LED parpadean rápido por turnos: cuando uno se enciende, el otro se apaga, como si se pasaran una pelota. El Arduino deja cada luz encendida una quinta parte de segundo y luego le toca a la otra.

Semáforo
Una copia en miniatura del semáforo que ves cada día en la calle. El rojo se queda dos segundos, el amarillo brilla un instante, el verde se queda dos segundos y luego vuelve al rojo pasando otra vez

Luces de policía LED
Como las luces de un coche de policía: el LED rojo destella tres veces muy rápido, después el azul destella otras tres, y la secuencia se repite sin parar. Solo necesitas dos LED y dos resistencias co

Luz secuencial LED
Luces que se encienden una tras otra, como si corrieran. El Arduino enciende seis LED de uno en uno; cada uno brilla un instante y se apaga, así que la luz recorre la fila de principio a fin y vuelve

Efecto coche fantástico con LED
La clásica luz que va y viene: un punto de luz recorre seis LED de un extremo al otro y luego regresa. El Arduino enciende cada LED una décima de segundo antes de pasar al siguiente, da la vuelta en c

Luz secuencial LED con velocidad regulable
Seis LED se encienden uno tras otro y la luz parece correr de un extremo al otro. Al girar el mando del potenciómetro, la velocidad de esa carrera cambia al instante: hacia un lado la luz vuela, hacia

Efecto coche fantástico con velocidad regulable
Una luz recorre seis LED de un extremo a otro, da la vuelta y vuelve a correr. Girando el mando del potenciómetro cambias al instante la velocidad de esa carrera: con el mando a un lado la luz casi vu
Proyectos Arduino: todos los proyectos con bloques
- #9Encender un LED con pulsador (Push)Gratis
- #10Encender y apagar un LED con un botónGratis
- #11Medir la intensidad de luz con LDRGratis
- #12Luz nocturna con LDRGratis
- #13Uso del zumbadorGratis
- #14Ajuste de frecuencia con zumbadorGratis
- #27HC-SR04 Medición de distancia (pantalla en serie)Gratis
- #55Temperatura y humedad con DHT11Gratis
- #16Leer los códigos de un mando IR
- #17Encendido y apagado de leds con receptor de infrarrojos y mando a distancia
- #19Bombilla 220V con Pulsador (Push)
- #20Encender y apagar una bombilla de 220 V con un botón
- #21Encender una bombilla de 220 V con mando a distancia
- #22Sistema de alerta láser
- #23Sistema de seguridad láser
- #24Detector de movimiento con sensor de movimiento
- #25Timbre y luz con sensor de movimiento
- #26Piano sencillo con zumbador y botón
- #28Sensor de aparcamiento con HC-SR04
- #29Mostrar un mensaje en una pantalla LCD 2x16
- #30Texto que rebota de izquierda a derecha en LCD
- #31Medición de distancias mediante pantalla LCD
- #32Uso de la pantalla LCD con I2C
- #33Proyecto de medición de la altura
- #34Controlar un LED desde el móvil por Bluetooth
- #35Uso del servomotor
- #36Funcionamiento del servomotor con potenciómetro
- #37Lectura de un interruptor reed
- #38Sensor de puerta con interruptor reed
- #39Uso de Led RGB
- #40Transición de color suave con Led RGB
- #42Mostrar números del 0 al 99 en un display de 7 segmentos
- #43Contador con display de 7 segmentos y botones
- #44Medición de temperatura con NTC y pantalla LCD 2x16
- #45Configuración del módulo de reloj RTC DS1302
- #46Reloj RTC DS1302 con pantalla LCD
- #47Números 0-9999 en un display de 7 segmentos de 4 dígitos
- #48Reloj digital con display de 7 segmentos de 4 dígitos
- #49Animación de bomba con display de 7 segmentos de 4 dígitos
- #50Uso del sensor de llama
- #51Uso del sensor de gas
- #52Alarma con sensor de llama y gas
- #53Lectura de valores RFID
- #54Autenticación RFID
- #56Voltímetro digital con pantalla LCD
- #58Comunicación bidireccional entre 2 Arduino
- #59Control Led con Joystick
- #60Servocontrol con joystick
- #61Funcionamiento del teclado 3x4
- #62Control de LED con teclado 3x4
- #63Funcionamiento del teclado 4x4
- #64Cerradura con contraseña, teclado 4x4 y LCD
- #67Uso del motor paso a paso
- #68Construcción de servomotor de 360 grados a partir de motor paso a paso
- #69Uso de la tira LED WS2812B
- #70Luces de policía con WS2812B
- #71Luz secuencial con WS2812B
- #72Luz secuencial con WS2812B (efecto llenado)
- #73Efecto coche fantástico con WS2812B
- #74WS2812B Trueno negro 3 piezas
- #75WS2812B Animación 1
- #77Lectura de reflexión (proximidad) con TCRT5000
- #78TCRT5000 Detección de superficie blanca y negra
- #82Iluminación inteligente de escaleras y pasillos
- #83Estación de riego inteligente
- #96Ruleta Arduino
- #97Prueba de reacción con señal sonora con Arduino
- #99SG90 Servocontrol de ángulo con potenciómetro
Proyectos ESP3225 proyectos con bloques

LED Parpadeante con ESP32
Enseña el uso básico de la salida GPIO con ESP32. Conseguimos un efecto de parpadeo encendiendo y apagando un LED desde el pin digital. Versión para ESP32 del clásico proyecto blink en Arduino UNO; los comandos básicos de blink en el entorno Arduino son los mismos, pero la distribución de pines y los niveles GPIO de 3,3 V del ESP32 difieren de los del Arduino UNO.

Control de LED con pulsador en ESP32 (Push)
El LED se enciende cuando se pulsa el botón y se apaga cuando se suelta. Muestra cómo se utiliza el pin de entrada digital del ESP32 y la resistencia pull-up interna. Gracias al modo INPUT_PULLUP, no se necesita ninguna resistencia externa.

Control de LED con botón en ESP32 (Toggle)
Cada vez que se pulsa el botón, cambia el estado del LED: si está encendido se apaga, si está apagado se enciende. Patrón de conmutación clásico. Con debounce limpiamos el ruido mecánico del pulsador para garantizar una sola conmutación con una sola pulsación.

Parpadeo del LED interno del ESP32
Parpadeo del LED azul incorporado en el ESP32 DevKit V1. ¡No se necesitan componentes externos! El primer proyecto que debe probar cuando compra un ESP32. GPIO 2 está conectado al LED interno.

ESP32 Semáforo
Simulación de un semáforo real con 3 LED rojo-amarillo-verde. Los tiempos se aproximan a la lógica del tráfico real: rojo largo, amarillo corto, verde largo. Ejemplo clásico de control GPIO secuencial.

Lectura de la intensidad luminosa con el módulo LDR del ESP32
Visualización en tiempo real en el monitor serie del valor bruto del ADC del módulo LDR y del porcentaje relativo de luz calculado a partir de referencias de oscuridad y claridad. Este porcentaje no es una medición en lux. Explica el funcionamiento de la calibración del módulo. Es recomendable realizarlo antes del Proyecto 10, ya que se utiliza para determinar el valor umbral.

ESP32 HC-SR04 Medidor de distancia por ultrasonidos
El sensor ultrasónico HC-SR04 calcula la distancia midiendo el tiempo de vuelo (Time of Flight) de la onda sonora que emite al chocar contra un objeto y rebotar. En este proyecto, enviaremos un pulso de 10 microsegundos desde el ESP32 al pin TRIG del sensor y leeremos el tiempo de eco procedente del pin ECHO mediante `pulseIn()`. Mostraremos la distancia calculada en centímetros en una pantalla LCD I2C de 16x2. Dado que el HC-SR04 funciona a 5 V, es obligatorio utilizar un **divisor de tensión**

ESP32 DHT22 Temperatura y humedad (con pantalla LCD)
Se trata de un proyecto que mide la temperatura y la humedad ambientales mediante el sensor DHT22 y las muestra en tiempo real en una pantalla LCD I2C 16x2. Los datos del sensor se leen mediante el protocolo de un solo cable (one-wire) utilizando la biblioteca DHT de Adafruit. Este proyecto constituye la base para estaciones meteorológicas IoT, sistemas de automatización doméstica inteligente o sistemas de monitorización ambiental en invernaderos.
Proyectos ESP32: todos los proyectos con bloques
- #122Alarma de detector de gas/humo ESP32 MQ-2Gratis
- #123Lector de tarjetas RFID RC522 para ESP32 (con LCD)Gratis
- #108LED Secuencial ESP32 (Knight Rider)
- #109ESP32 Efecto de Luz Estroboscópica Policial
- #110ESP32 LED Fade con PWM
- #111Control de LED RGB con ESP32
- #112ESP32 Luz de Noche con LDR
- #114ESP32 Reproducción de melodías con zumbador
- #115Brillo de LED con Potenciómetro en ESP32 (Analógico → PWM)
- #118Servomotor ESP32 (control mediante potenciómetro)
- #119Pantalla LCD I2C para ESP32 (16x2)
- #120Reloj digital con ESP32 y RTC DS1307 (I2C + LCD)
- #121Iluminación automática con el sensor de movimiento PIR del ESP32
- #125ESP32 TM1637 Pantalla de 4 dígitos y 7 segmentos
- #126Control de la tira NeoPixel WS2812B con ESP32
- #139Sistema inteligente de riego de plantas ESP 32
- #140Alarma con sensor de movimiento ESP32
Proyectos Raspberry Pi Pico10 proyectos con bloques

Parpadeo LED Integrado Raspberry Pi Pico (GP25 LED Onboard)
¡El proyecto de apertura de la serie Raspberry Pi Pico! Hacemos parpadear el LED integrado (LED verde conectado a GP25) para verificar que la placa funciona — un experimento clásico "Hello World". SIN componentes externos, solo Pico y cable USB. El código está escrito en **MicroPython** (el lenguaje oficialmente respaldado por la Raspberry Pi Foundation). Aprende la clase `machine.Pin`, el modo `Pin.OUT`, los métodos `led.on()/off()` y `time.sleep()` en Thonny IDE. Sigue cada cambio en vivo en l

Encendido de un LED externo con la Raspberry Pi Pico (GP14 + placa de pruebas)
El siguiente paso tras el LED integrado de Pico: conectar un LED externo a la placa de pruebas y controlarlo a través del pin GP14. Con este proyecto aprenderás a utilizar cualquier pin GPIO de uso general del Pico como salida, la polaridad del LED (patilla larga = ánodo/+, patilla corta = cátodo/–) y por qué es imprescindible utilizar una resistencia limitadora de corriente (220 Ω). Si no colocas la resistencia, el LED recibirá una corriente excesiva y podría quemarse. El circuito es muy sencil

Raspberry Pi Pico Dos LEDs alternos (Flip-Flop, GP14 + GP13)
El siguiente paso después del LED único en el Pico: dos LEDs parpadean alternativamente en un patrón flip-flop clásico. Dos LEDs de diferentes colores (rojo en GP14, verde en GP13) intercambian estados cada 500ms. `Pin.toggle()` de MicroPython hace el código corto. Base de semáforos, luces de policía.

Simulador de Semáforo Raspberry Pi Pico (3 LEDs Secuenciales, GP11/GP12/GP13)
Simulamos un semáforo real con LEDs rojo, amarillo y verde. Verde 4 seg "pase", amarillo 1,5 seg "prepárese", rojo 3 seg "detenga" y rojo+amarillo 1 seg "arranque" (patrón europeo). Aprende definición de función, lógica de máquina de estados y sincronización multi-GPIO. Circuito simple: 3 LEDs en GP11/GP12/GP13.

Raspberry Pi Pico Efecto Luces Policía (Rojo + Azul Estroboscopio, GP11 + GP12)
¡Simulamos la barra de luces de un coche de policía con una Raspberry Pi Pico en su forma más sencilla! 🚨 Los LED rojo y azul se turnan (flip-flop): mientras el rojo está encendido el azul está apagado, y cada 0,3 segundos se intercambian, sin fin. El código escribe los dos pasos directamente en un único bucle `while True`; la velocidad se ajusta con la constante `WAIT_MS`.

Raspberry Pi Pico Flip-Flop Policía 3 Ráfaga (2 LED GP11 + GP12)
Variación rítmica del proyecto luces policía — flip-flop 3 ráfaga! 🚨 Mismo circuito 2 LEDs que #151, pero patrón diferente: LED rojo parpadea 3 veces rápidamente, luego azul 3 veces, indefinidamente.

Raspberry Pi Pico LED Controlado por Botón (Push, GP14 + GP2)
¡Primer proyecto de **entrada** con Pico — lectura de botón! 🔘 LED se enciende mientras el botón está presionado. Aprende `Pin.IN`, `Pin.PULL_UP` y `button.value()`. GP14 LED, GP2 botón con PULL_UP interno. Presionado = 0, liberado = 1 — estándar.

Raspberry Pi Pico Botón Toggle LED (GP14 + GP2)
¡Botón + LED — siguiente nivel! 🔁 A diferencia de #155, no necesitas mantener el botón presionado. Presiona y suelta → LED encendido. Presiona de nuevo → LED apagado (toggle). Mismo circuito que #155, gran diferencia de código. Aprende edge detection, state tracking y debounce.
Proyectos Raspberry Pi Pico: todos los proyectos con bloques
¿Para quién es?
Niños y familias
La programación para niños se recuerda mucho mejor cuando termina con un LED encendido sobre la mesa. Los bloques hacen legible el programa y el circuito lo montáis juntos.
Docentes y talleres
En una clase de robótica puedes explicar un proyecto primero con bloques y luego pasar al código. Cada proyecto incluye la lista de materiales y el esquema.
Principiantes
Con bloques entiendes la lógica de tus primeros proyectos de Arduino mucho más rápido. Empieza con bloques y pasa al código cuando te sientas listo.
Preguntas frecuentes
¿Qué es la programación basada en bloques?
Es una forma de programar en la que las instrucciones no se escriben, sino que aparecen como bloques que encajan entre sí como piezas de un puzle. Como no hay erratas posibles, los principiantes y los niños entienden la lógica del programa con más facilidad.
¿Cuántos proyectos de BlueGrays tienen bloques?
Ahora mismo 111: 76 de Arduino, 25 de ESP32 y 10 de Raspberry Pi Pico. La lista crece a medida que convertimos más proyectos.
¿La programación por bloques es gratis?
La app es gratuita. Los bloques y el código de 31 proyectos están abiertos a todos. En el resto, los bloques se desbloquean con Premium, igual que el código.
¿Puedo cargar los bloques directamente en la placa?
No. Los bloques sirven para leer y entender el programa; lo que se carga en la placa es siempre el código real del proyecto. Lo copias en el IDE de Arduino, o en Thonny para la Pico, y lo subes.
¿Puedo crear mis propios programas con los bloques?
Todavía no. Preparamos los bloques de cada proyecto y los hacemos coincidir uno a uno con el código, así que detrás de cada bloque hay un programa probado que funciona.
¿En qué se diferencia de Scratch o mBlock?
En Scratch y mBlock arrastras bloques en el ordenador para escribir tu propio programa. En BlueGrays cada proyecto con bloques viene con esquema, lista de materiales y código real, y los bloques son la versión legible de ese código. Se complementan bien.
¿Es apto para niños? ¿A qué edad se puede empezar?
Los niños de unos 9 o 10 años que ya leen con soltura pueden empezar acompañados de un adulto. Los primeros proyectos no necesitan soldadura: se montan en una protoboard con LEDs, botones y un zumbador.
¿En qué idiomas están los bloques?
En español, inglés, turco, alemán, francés e italiano. Los bloques aparecen en el idioma en que uses la app.
La app BlueGrays
Empieza a programar con bloques desde el móvil
Bloques, esquema, lista de materiales y código real en una sola pantalla. Gratis en iOS y Android.
Escanéalo con el móvil
Apunta la cámara al código y se abrirá la tienda de apps de tu teléfono.

