Retos de firmware embebido
Ejercicios de C embebido agrupados por tema. Cada reto se ejecuta en el navegador sobre una placa STM32, nRF52 o ESP32 emulada y se comprueba con pruebas a nivel de hardware. Muchos incluyen una solución escrita y un vídeo.
17 retos
Advanced Peripherals
Applied Integration
- Quiz Buzzer LockoutOn an Arduino Nano 33 BLE, run a three-team quiz buzzer: the first team to press lights its lamp, everyone else is locked out, and the quizmaster's reset opens the next round, even when a button is still held down.FácilNano 33 BLE · ArduinoSolución escrita
- Two-Hand Press ControlOn an Arduino Nano 33 BLE, start a stamping press only when both palm buttons are pressed within 500 ms of each other, stop it the moment either is released, and require both hands off before the next stroke.FácilNano 33 BLE · ArduinoSolución escrita
- Battery Module Cell Voltage CAN BroadcastRead four cell voltages from a UART bench harness, broadcast them and a computed pack summary on CAN1, and latch a fault output until a reset command arrives. Graded on the CAN frames a trusted node sees and the fault pin.MediaSTM32 · HAL
- Garage Door ControllerOn an Arduino Nano 33 BLE, run a garage door from one remote button, stop it at the limit switches, send a closing door back up when the photo-eye beam breaks, and raise a fault when the door jams.MediaNano 33 BLE · ArduinoSolución escrita
- Rocket Dual-Deploy Flight Computer (I2C)Wire an LIS2DS12 accelerometer over I2C and drive two pyro channels from it: payload separation at apogee, then a timed parachute deploy. Accelerometer telemetry and both output pins are checked.DifícilSTM32 · HAL
- Water Tank Pump ControlOn an Arduino Nano 33 BLE, fill a water tank between two float switches: filter out sloshing, keep the pump off between the floats, catch impossible float readings as a fault, and latch a dry-run fault if no water arrives within ten seconds.DifícilNano 33 BLE · ArduinoGratis
Data Handling & Algorithms
- Rotary Encoder Position CounterOn an Arduino Nano 33 BLE, decode a mechanical quadrature handwheel so that each full click counts once in the right direction, while contact chatter, rocking and invalid transitions never count, and a push button zeroes the position.MediaNano 33 BLE · ArduinoSolución escrita
- Machine Event Log Ring BufferOn an Arduino Nano 33 BLE, build a black-box recorder for a packaging machine: debounce jam and guard-door events, keep the 8 newest in a ring buffer with timestamps, dump them oldest first on request, and clear the log with a long press.MediaNano 33 BLE · ArduinoSolución escrita
- Simon Memory GameOn an Arduino Nano 33 BLE, build the classic Simon game: a colour sequence that grows by one random colour per round, played back on three LEDs with exact timing, checked against debounced button presses, with a timeout and a score.DifícilNano 33 BLE · ArduinoGratis
GPIO & Digital Outputs
Interconexión de sensores
Sensors
Timing & Program Flow
- Seatbelt Reminder LampOn an Arduino Nano 33 BLE, flash a belt warning lamp when the ignition is on and the belt stays unlatched for two seconds, and start the grace period over every time the situation begins again.FácilNano 33 BLE · ArduinoGratisSolución escrita
- Traffic Light With Night ModeOn an Arduino Nano 33 BLE, run a junction traffic light (red, red + yellow, green, yellow) on exact millis() timing that never drifts, and add a button that switches to a blinking-yellow night mode and back.MediaNano 33 BLE · ArduinoGratis
- Three-Floor Elevator ControllerOn an Arduino Nano 33 BLE, control a small three-floor lift: remember floor calls, keep the car's direction and stop at called floors on the way, time the travel and the door, and drive the indicator panel lamps correctly.DifícilNano 33 BLE · ArduinoSolución escrita
UART Communication
¿Nuevo en embebidos? Empieza por la hoja de ruta: Cómo aprender sistemas embebidos (en inglés)