commit ba4d39cb099916be149c6e80b2ead1873f3826ae
parent 93658f0e92f3d1c7c70f1730fe029b669bd5cb71
Author: Martin Kloeckner <mjkloeckner@gmail.com>
Date: Sun, 7 Jun 2026 15:27:06 -0300
Corregir número de figuras
Diffstat:
| M | MEMORIA.md | | | 53 | +++++++++++++++++++++++++---------------------------- |
1 file changed, 25 insertions(+), 28 deletions(-)
diff --git a/MEMORIA.md b/MEMORIA.md
@@ -330,7 +330,7 @@ módulo central y luego todos los demás módulos se conectan a este.
<div align="center">
<img style="padding: 10px" align=center src="img/diagrama_de_bloques.png" width="600">
- <p><em>Figura 3.1: Diagrama en bloques del proyecto</em></p>
+ <p><em>Figura 3.1: Diagrama en bloques del sistema.</em></p>
</div>
## 3.1 Hardware del sistema
@@ -342,7 +342,7 @@ como se ve en la figura 3.2.
<div align="center">
<img src="img/conexion_placas_perforadas_TA134.png" style="padding: 10px;" width="700">
- <p align="center"><em>Figura 3.2: Conexión placas perforadas</em></p>
+ <p align="center"><em>Figura 3.2: Conexión placas perforadas.</em></p>
</div>
La primer placa perforada se muestra en la figura 3.3 y hace de adaptador de los
@@ -350,7 +350,7 @@ pines de la placa NUCLEO a cable con conector IDC de 2x10.
<div align="center">
<img src="img/stm32_nucleo_expansion_board_cropped.png" style="padding: 10px;" width="600">
- <p align="center"><em>Figura 3.3: Placa perforada adaptador NUCLEO a conector IDC 2x10</em></p>
+ <p align="center"><em>Figura 3.3: Placa perforada adaptador NUCLEO a conector IDC 2x10.</em></p>
</div>
La segunda placa perforada, considerada la placa principal, se utilizó para unir
@@ -362,7 +362,7 @@ placa y al conector IDC.
<div align="center">
<img src="img/main_perf_board.png" style="padding: 10px" align=center width="400px">
- <p><em>Figura 3.4: Placa perforada principal</em></p>
+ <p><em>Figura 3.4: Placa perforada principal.</em></p>
</div>
### 3.1.1 Placa NUCLEO
@@ -408,12 +408,12 @@ las funciones para los que fueron utilizados.
<p align="center"><em>Tabla 3.1: Pinout del sistema</em></p>
-La placa NUCLEO se puede alimentar a través del USB (ST-Link) o por el pin de 5 V
-externo. Los 5 V externos provienen de un regulador LM7505 ubicado sobre la placa
-perforada principal, este regulador recibe alimentación de una fuente de 12 V
-externa. Para seleccionar que tipo de alimentación se desea utilizar se debe
-ajustar la posición del jumper JP5 en la placa NUCLEO, tal como lo indica la
-Tabla 8 del manual de usuario de la placa.[^1]
+La placa NUCLEO se puede alimentar a través del USB (ST-Link) o por el pin de 5
+V externo. Los 5 V externos provienen de un regulador LM7505 ubicado sobre la
+placa perforada principal, este regulador recibe alimentación de una fuente de
+12 V externa. Para seleccionar que tipo de alimentación se desea utilizar se
+debe ajustar la posición del jumper JP5 en la placa NUCLEO, tal como lo indica
+la Tabla 8 del manual de usuario de la placa.[^1]
[^1]: STMicroelectronics, "UM1724 User manual - STM32 Nucleo-64 boards (MB1136)"
Rev. 17, 2025. [En linea]. Disponible en: https://www.st.com/resource/en/user_manual/um1724-stm32-nucleo64-boards-mb1136-stmicroelectronics.pdf
@@ -654,7 +654,7 @@ la funcionalidad de los botones de acuerdo al estado.
<div align="center">
<img src="img/system_statechart.png" style="padding: 10px" align=center width="800px">
- <p><em>Figura 3.10: Diagrama de estados de tarea system. Version simplificada.</em></p>
+ <p><em>Figura 3.10: Diagrama de estados de tarea central. Version simplificada.</em></p>
</div>
Se tienen los siguientes estados:
@@ -683,23 +683,20 @@ Además en esta tarea se gestiona:
### 3.2.3 Tarea para botones
En la tarea `task_buttons` se implementa una máquina de estados de anti-rebote
-para cada uno de los botones. En la figura 3.9 a continuación se muestra un
+para cada uno de los botones. En la figura 3.11 a continuación se muestra un
diagrama de estados de la maquina.
<div align="center">
<img src="img/button_statechart.png" style="padding: 10px" align=center width="700px">
- <p><em>Figura 3.11: Diagrama de estados de tarea buttons.</em></p>
+ <p><em>Figura 3.11: Diagrama de estados para de botones.</em></p>
</div>
-<!--
-Al detectar una pulsación válida (flanco descendente confirmado), envía un
-evento a `task_system` y activa el buzzer (beep corto).
--->
-
-Además, no se muestra en la figura 3.11, pero esta tarea envía eventos
-directamente a `task_buzzer` para que inmediatamente luego de presionar el botón
-se active el buzzer, sin interactuar con la tarea central `task_system`. Esto se
-observa también en el diagrama de bloques del firmware de la figura 3.9.
+Al detectar una pulsación válida (flanco ascendente o descendente confirmado) se
+envía un evento a `task_system` y, aunque no se muestra en la figura 3.11, se
+envían eventos directamente a `task_buzzer` para que inmediatamente luego de
+presionar el botón se active el buzzer, sin interactuar con la tarea central
+`task_system`. Esto se observa también en el diagrama de bloques del firmware de
+la figura 3.9.
### 3.2.4 Tarea para el buzzer
@@ -710,11 +707,11 @@ calefactor).
Para controlar el buzzer se implementa una maquina de estados con los estados
`ST_BUZ_XX_OFF` y `ST_BUZ_XX_ON` con auto-apagado por timeout, tal como se
-observa en la figura 3.11 a continuación.
+observa en la figura 3.12 a continuación.
<div align="center">
<img src="img/buzzer_statechart.png" style="padding: 10px" align=center width="600px">
- <p><em>Figura 3.11: Diagrama de estados de tarea LEDs.</em></p>
+ <p><em>Figura 3.12: Diagrama de estados de buzzer.</em></p>
</div>
@@ -723,7 +720,7 @@ observa en la figura 3.11 a continuación.
En la tarea `task_leds` se controlan las luces indicadoras o LEDs (LD2, LD3)
permitiendo los modos: encendido, apagado, intermitente y un único pulso. Para
esto se implementa la maquina de estados cuyo diagrama de estados se muestra en
-la figura 3.11 a continuación, con los siguientes estados:
+la figura 3.13 a continuación, con los siguientes estados:
- `ST_LED_XX_OFF`: LED apagado.
- `ST_LED_XX_ON`: LED encendido fijo.
@@ -732,7 +729,7 @@ la figura 3.11 a continuación, con los siguientes estados:
<div align="center">
<img src="img/led_statechart.png" style="padding: 10px" align=center width="800px">
- <p><em>Figura 3.11: Diagrama de estados de tarea LEDs.</em></p>
+ <p><em>Figura 3.13: Diagrama de estados de luces indicadoras.</em></p>
</div>
El modo intermitente se utiliza para cuando el calefactor está activo, indicando
@@ -744,7 +741,7 @@ permaneces apagadas.
Esta tarea `task_menu`, gestiona la actualización del display LCD 16x2 según el
estado actual del sistema. Se implementa también una maquina de estados similar
a la implementada para el sistema, con estados similares, de manera tal que cada
-estado del sistema define su propio contenido de display. En la figura 3.12 se
+estado del sistema define su propio contenido de display. En la figura 3.14 se
muestran diferentes contenidos del display para diferentes estados del sistema.
Por ejemplo en estado reposo (estado del sistema `ST_SYS_IDLE`), con el
@@ -809,7 +806,7 @@ en el display se muestra:
</table>
-<em>Figura 3.12: Interfaces mostradas en el display LCD 16x2.</em>
+<em>Figura 3.14: Interfaces mostradas en el display LCD 16x2.</em>
</div>
La comunicación con el LCD es asíncrona: las operaciones se encolan y se