Files
rotary_cotroller/README.md
Marco Gallegos cf81f96f15 Revise README for DC Motor Control Project
Updated project details and specifications for the DC motor control console, including author information, hardware specifications, and user interface enhancements.
2026-01-18 11:43:50 -06:00

144 lines
4.5 KiB
Markdown

# Proyecto de Control de Motor DC: Consola Digital v1.0
**Autor:** Marco Gallegos
**Fecha:** Enero 2024
---
## 1. Descripción General
Este proyecto consiste en una consola de control inteligente para un motor de corriente continua (DC). Utiliza un microcontrolador **ESP8266 (HW-364A)** para gestionar la potencia a través de un driver **DRV8871**, ofreciendo una interfaz de usuario profesional con pantalla **OLED**, encoder rotatorio y botones de dirección.
El sistema prioriza la **seguridad mecánica**, implementando rampas de aceleración y una **máquina de estados** que evita arranques accidentales o cambios de giro bruscos que puedan dañar engranajes o el motor.
---
## 2. Especificaciones de Hardware
### 2.1 Módulo de Control (Placa Azul)
La interfaz de usuario se centraliza en un módulo que incluye un **OLED de 0.96"**, un **encoder con botón** y **dos botones laterales**.
**Orden físico de los pines:**
```
CON | SDA | SCL | PSH | RTA | TRB | BAK | GND | VCC
```
---
### 2.2 Driver de Potencia (DRV8871)
* **Voltaje de Motor:** Hasta 45V (fuente externa)
* **Corriente:** Pico de 3.6A
* **Control:** PWM bidireccional (Puente H)
---
## 3. Conexiones y Pinout
### 3.1 Módulo de Interfaz a ESP8266
| Etiqueta PCB | Función | Pin ESP8266 | Observaciones |
| ------------ | --------------------- | ----------- | --------------------------------------- |
| CON | Confirmar / Adelante | D3 (GPIO0) | Pin de boot. No presionar al encender |
| SDA | I2C Data (OLED) | D2 (GPIO4) | — |
| SCL | I2C Clock (OLED) | D1 (GPIO5) | — |
| PSH | Botón Encoder (Start) | D7 (GPIO13) | — |
| RTA | Encoder Fase A | D5 (GPIO14) | — |
| TRB | Encoder Fase B | D6 (GPIO12) | — |
| BAK | Atrás / Reversa | D8 (GPIO15) | Pin de boot. Debe estar LOW al encender |
| GND | Tierra | G (GND) | — |
| VCC | Alimentación | 3V (3.3V) | — |
---
### 3.2 Driver DRV8871 a ESP8266
| Etiqueta PCB | Función | Pin ESP8266 | Observaciones |
| ------------ | ------------- | ----------- | ------------------------- |
| IN1 | Entrada PWM A | D0 (GPIO16) | PWM limitado por hardware |
| IN2 | Entrada PWM B | D4 (GPIO2) | Comparte LED azul interno |
---
## 4. Lógica de Operación
### 4.1 Máquina de Estados de Seguridad
Para prevenir daños y accidentes, el sistema implementa cuatro estados definidos:
* **WAITING_START (Armado):**
* Motor bloqueado
* Pantalla solicita pulsar **PSH** para iniciar
* **SELECT_DIR (Dirección):**
* Espera selección del sentido
* **CON** = Adelante
* **BAK** = Reversa
* **RUNNING (Operación):**
* Motor en giro
* Encoder ajusta `targetSpeed`
* **CHANGING_DIR (Transición):**
* Rampa baja progresivamente a 0%
* Pausa de seguridad
* Rampa sube en el nuevo sentido
---
### 4.2 Control de Velocidad Adaptativo
* **Giro lento:** Ajustes finos de ±1%
* **Giro rápido:** Ajustes de ±5% (intervalo entre pulsos < 50 ms)
* **Rampa de seguridad:** Incrementos de 0.5% por ciclo
---
## 5. Interfaz de Usuario (HMI)
La pantalla OLED presenta información crítica del sistema:
* **Iconos de sentido:** Flechas grandes indicando el giro
* **Velocidad real:** Porcentaje actual aplicado por la rampa
* **Velocidad objetivo:** Valor configurado por el usuario
* **Alertas del sistema:**
* `SISTEMA BLOQUEADO`
* `CAMBIANDO GIRO`
---
## 6. Hoja de Ruta — Versión 2 (V2)
### 6.1 Migración a ESP32
* Sustitución por **ESP32 DevKit V1**
* Eliminación de restricciones de GPIO
* PWM por hardware con mayor resolución
### 6.2 Indicadores de Estado Visuales (LED RGB)
| Color | Estado del sistema |
| ------------------ | ----------------------------- |
| 🟡 Amarillo | Sistema en espera (0%) |
| 🟢 Verde | Motor girando adelante |
| 🔴 Rojo | Motor girando en reversa |
| 🔵 Azul (parpadeo) | Cambio de dirección / frenado |
---
## 7. Limitaciones Técnicas Actuales
* **D3 / D8:** Pines sensibles al arranque por resistencias internas
* **PWM en D0:** Frecuencia no estándar, compensada por software
---
**Desarrollado por:** Marco Gallegos