Batería y LEDs
Sistema de batería
FujitoraBot2 funciona con baterías LiPo de 2 o 3 celdas (2S/3S) y detecta automáticamente la configuración conectada.
Medición de tensión
| Característica | Detalle |
|---|---|
| ADC | ADC2, canal 13 (PC3) |
| Resolución | 12 bits (0–4095) |
| LSB | 3.3 V / 4096 = 0.806 mV |
| Divisor | ×3.8673 (VOLT_DIV_FACTOR) |
| Filtro | Paso bajo α = 0.1 |
| Frecuencia | 1 kHz (SysTick) |
Cálculo
V_batería = lectura_ADC × (3.3 / 4096) × 3.8673
V_filtrada = 0.1 × V_actual + 0.9 × V_anterior
Rangos de detección
| Batería | Tensión nominal | Límite bajo | Límite alto |
|---|---|---|---|
| 2S | 7.4 V | 7.4 V | 8.2 V |
| 3S | 11.1 V | 11.1 V | 12.6 V |
flowchart TD
A[Leer V_batería] --> B{V en rango 3S?}
B -->|11.1–12.6V| C[Modo 3S: V_full = 12.6V]
B -->|No| D{V en rango 2S?}
D -->|7.4–8.2V| E[Modo 2S: V_full = 8.2V]
D -->|No| F[Voltaje fuera de rango]
C --> G[battery_level = map 0–100%]
E --> G
La detección se realiza en show_battery_level()
(battery.c:27-42).
Visualización de nivel de batería
Al encender, los LEDs de info muestran una barra de nivel de batería durante
750 ms usando set_leds_battery_level().
Tensión de referencia para control de motores
get_battery_full_voltage() devuelve la tensión nominal de la batería detectada
(8.2 V para 2S, 12.6 V para 3S). Este valor se usa en el cálculo de PWM para
compensar la caída de tensión durante la descarga.
Sistema de LEDs
FujitoraBot2 tiene tres tipos de LEDs:
| Tipo | Cantidad | Control | Descripción |
|---|---|---|---|
| LED de estado | 1 | GPIO | Indicador de corazón del sistema |
| LED RGB | 1 | TIM1 PWM (4 canales) | Información contextual de menú y calibración |
| LEDs de info | 10 | GPIO (PA0–PA7, PC4–PC5) | Indicadores de modo y configuración |
LED de estado
Controlado por GPIO. Modos disponibles:
| Modo | Función | Descripción |
|---|---|---|
set_status_led(true/false) |
On/Off | Estado binario |
toggle_status_led() |
Toggle | Alterna el estado |
warning_status_led(ms) |
Parpadeo | Parpadeo rápido de advertencia |
set_status_heartbeat() |
Latido | Señal de vida continua |
LED RGB
Controlado por TIM1 con 4 canales PWM a 4 kHz (resolución 1024 pasos):
| Canal TIM1 | Pin | Color |
|---|---|---|
| CH1 | PA8 | Rojo |
| CH2 | PA9 | Verde |
| CH3 | PA10 | Azul |
| CH4 | PA11 | — (reserva) |
Modos disponibles:
| Modo | Descripción |
|---|---|
set_RGB_color(r,g,b) |
Color fijo (0–255 por canal) |
warning_RGB_color(r,g,b,ms) |
Parpadeo de color |
set_RGB_rainbow() |
Arcoíris continuo (durante calibración) |
LEDs de info
| Índice | Pin | Significado en menú Run |
|---|---|---|
| 0–4 | PA0–PA4 | Velocidad seleccionada (barra) |
| 5 | PA5 | Velocidad adaptativa activa |
| 6 | PA6 | BiggerFilter activo |
| 7 | PA7 | Reserva |
| 8 | PC4 | Sensores digitales activos |
| 9 | PC5 | Control por encoders activo |
Modos de grupo:
| Modo | Descripción |
|---|---|
set_info_leds() |
Todos encendidos |
clear_info_leds() |
Todos apagados |
set_info_leds_wave(ms) |
Onda secuencial |
set_info_leds_blink(ms) |
Parpadeo sincronizado |
Apagado en carrera
Al iniciar la carrera, todos los LEDs se apagan (set_RGB_color(0,0,0),
set_status_led(false), clear_info_leds()) para evitar interferencias
con los sensores IR de línea.
Documento generado el 2026-06-25. Ver también Hardware, Menú.