¿Máquina de Mealy o de Moore?
Máquina de Moore: Las salidas dependen solo del estado actual.
Máquina de Mealy: Las salidas dependen del estado actual y de las entradas.
📌 Para un elevador, se prefiere una máquina de Moore, porque la salida (por ejemplo,
mover el motor o abrir la puerta) depende del estado en el que está (en qué piso está o hacia
dónde se dirige), y no directamente de las entradas (llamadas).
🧩 Componentes que puedes usar
1. Flip-flops (JK, D o T, según tu diseño): para almacenar el estado.
2. Contador (opcional, si quieres representar pisos de forma binaria).
3. Puertas lógicas (AND, OR, NOT): para lógica combinacional.
4. LEDs o displays de 7 segmentos: para mostrar el piso actual.
5. Pulsadores o interruptores: para simular las llamadas desde cada piso.
6. Motor o simulación de movimiento: opcional si trabajas solo a nivel lógico.
7. Protoboard y fuentes de alimentación.
8. Cables y resistencias.
🪜 Pasos para diseñar tu controlador de elevador de 3 pisos
1. Definir entradas y salidas
Entradas:
o PB0:Botón para llamar desde el piso 0.
o PB1:Botón para llamar desde el piso 1.
o PB2:Botón para llamar desde el piso 2.
o (Opcional: sensores de piso o sensores de puerta abierta)
Salidas:
o LED0, LED1, LED2: Indicador del piso actual.
o UP / DOWN: Indicadores de dirección.
o OPEN: Indica que la puerta está abierta.
2. Definir los estados
Puedes codificarlos así:
S0: En piso 0.
S1: En piso 1.
S2: En piso 2.
SUBIENDO: Transición entre pisos hacia arriba.
BAJANDO: Transición entre pisos hacia abajo.
O usar un contador binario de 2 bits para representar los pisos:
00: Piso 0
01: Piso 1
10: Piso 2
3. Diseñar el diagrama de estados (Moore)
Define cómo el sistema cambia de estado dependiendo de los botones presionados. Por
ejemplo:
Si estás en S0 y se presiona PB2, cambia a S1, luego a S2.
Si estás en S2 y se presiona PB0, cambia a S1, luego a S0.
4. Codificar la tabla de transición
Define:
Estado actual
Entradas
Siguiente estado
Salidas
5. Implementar el circuito
Usa flip-flops para mantener el estado y puertas lógicas para controlar transiciones.
6. Simulación (opcional)
Puedes simularlo en Proteus, Multisim, Logisim o en una FPGA (si usas VHDL/Verilog).
📌 Consejos adicionales
Usa D flip-flops si buscas simplicidad.
Si vas a implementar esto con compuertas, calcula las funciones de transición
usando álgebra booleana.
Si tu curso permite, puedes hacer el controlador con un contador + lógica
combinacional.
¡Perfecto! Vamos a construir paso a paso el controlador del elevador de 3 pisos como
máquina de Moore, para un proyecto de Electrónica Digital. Haré lo siguiente:
1. ✅ Definición de entradas/salidas.
2. ✅ Diagrama de estados.
3. ✅ Tabla de transición de estados.
4. ✅ Codificación de estados.
5. ✅ Funciones lógicas para flip-flops (usaremos tipo D).
6. ✅ Lógica de salidas.
7. ✅ Esquema general con compuertas.
8. ✅ Opcional: diseño en Logisim o pseudocódigo en Verilog, si lo necesitas.
✅ 1. Entradas y salidas
Entradas:
Nombre Descripción
PB0 Botón para ir al piso 0
PB1 Botón para ir al piso 1
PB2 Botón para ir al piso 2
Salidas:
Nombre Descripción
LED0 Se enciende cuando está en piso 0
LED1 Se enciende cuando está en piso 1
LED2 Se enciende cuando está en piso 2
UP Se enciende mientras sube
DOWN Se enciende mientras baja
OPEN Se activa para abrir la puerta
✅ 2. Estados (codificados binarios)
Usaremos dos bits para representar los estados.
Estado Significado Código (Q1 Q0)
S0 Piso 0 00
S1 Piso 1 01
S2 Piso 2 10
✅ 3. Diagrama de estados simplificado (Moore)
plaintext
CopiarEditar
PB2
S0 ---------> S1 ---------> S2
| | ^
| PB1 | PB0 |
v v |
S1 <--------- S2 <---------- S0
PB0 PB1
El elevador avanza hacia el piso solicitado. Si ya está en el piso, no cambia de estado.
✅ 4. Tabla de transición de estados (Q1 Q0 = estado actual)
Q1 Q0 (Estado) Entradas (PB2 PB1 PB0) Estado siguiente (Q1+ Q0+) Salida LED UP DOWN OPEN
00 (S0) 001 (ir a S0) 00 LED0 0 0 1
00 010 (ir a S1) 01 LED0 1 0 0
00 100 (ir a S2) 01 LED0 1 0 0
01 (S1) 001 00 LED1 0 1 0
01 010 01 LED1 0 0 1
01 100 10 LED1 1 0 0
10 (S2) 100 10 LED2 0 0 1
10 010 01 LED2 0 1 0
10 001 01 LED2 0 1 0
(El elevador pasa por S1 para llegar desde S0 a S2 o desde S2 a S0.)
✅ 5. Funciones para flip-flops D (Q1+, Q0+)
Usamos flip-flops D donde:
D1 controla el bit alto (Q1+)
D0 controla el bit bajo (Q0+)
Usamos una tabla de verdad y simplificamos con mapas de Karnaugh o álgebra
booleana (puedo ayudarte con eso también, según tu preferencia).
✅ 6. Salidas (Moore: dependen del estado actual)
Estado LED0 LED1 LED2 UP DOWN OPEN
S0 1 0 0 0 0 1
S1 0 1 0 x x x
S2 0 0 1 0 0 1
Nota: UP y DOWN se activan en transición, y OPEN se activa solo cuando está quieto.
✅ 7. Implementación en Logisim
¿Te gustaría que te dé un archivo .circ de Logisim o instrucciones para armarlo en
Logisim con:
Dos flip-flops tipo D.
Puertas AND/OR/NOT.
Entradas para botones.
LEDs de salida?
✅ 8. ¿Quieres también versión en Verilog?
Puedo darte un módulo elevador con entradas de botones, reloj, y salidas como LEDs, UP,
DOWN, OPEN. Ideal si lo vas a cargar en una FPGA o simular en ModelSim/Vivado.