SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
Sistemas Electrónicos Programables
Facultad de Ingeniería, Universidad de Deusto
Programación Basada en Autómatas
Sistemas Electrónicos Programables
Patrones de Diseño Software
 Para programa correctamente un sistema embebido, un
desarrollador software debe conocer y dominar gradualmente los
patrones o métodos de programación más usados porque
 proporcionan catálogos de elementos reusables en el diseño de
sistemas software,
 evitan la reiteración en la búsqueda de soluciones a problemas ya
conocidos,
 estandarizan el modo en el que se realiza el diseño, entre otras
cosas
Un Patrón de Diseño Software es una solución
efectiva y reutilizable a un problema de diseño
software
No pretenden imponer ciertas alternativas de diseño
ni eliminar la creatividad del proceso de diseño
Sistemas Electrónicos Programables
Patrón Singleton
 Por medio de este patrón se pretende garantizar la
existencia de una única instancia para una clase; y
la creación de un mecanismo de acceso global a
dicha instancia.
 Se basa en el uso de un constructor privado y un atributo
estático con la única instancia posible de la clase.
class Singleton {
private static Singleton instance;
private Singleton(){
}
public static Singleton GetInstance() {
{
if (instance == null)
instance = new Singleton();
return instance;
}
}
Sistemas Electrónicos Programables
Patrón Código Espagueti
 En realidad, es un anti-patrón, y es un término utilizado
para los programas computacionales que tienen una
estructura de control de flujo compleja e incomprensible.
 Suele asociarse a lenguajes de programación antiguos o
básicos y a programadores nóveles.
 Se identifica fácilmente cuando:
 se realiza un uso recurrente de sentencias condicionales
anidadas (if-then-else, while…),
 se crean situaciones de bloqueo del sistema (while(1),
delay()…) y
 se realizan las mismas comprobaciones una y otra vez a lo
largo del programa.
No hay nada malo en escribir código espagueti inicialmente
si facilita la compresión de un problema; lo incorrecto es
considerar el código como definitivo
Sistemas Electrónicos Programables
Código Espagueti (continuación…)
 Ejemplo 2:
 Programar una luz frontal de atletismo con la siguiente
funcionalidad:
 Por medio de un botón se puede pasar entre 4 modos
diferentes: apagado, encendido, parpadeo y regulación de luz.
 Con cada pulsación, se pasa de un modo al siguiente, y del último al
primero.
 En el estado de parpadeo; la luz se encenderá y apagará cada
500mS.
 En el estado de regulación de luz; la intensidad de luz será ajustada
por medio de un potenciómetro.
Sistemas Electrónicos Programables
Código Espagueti (continuación…)
void setup() {
pinMode(2, INPUT);
pinMode(6, OUTPUT);
}
void loop() {
digitalWrite(6, LOW);
while (digitalRead(2) == LOW);
delay(200);
digitalWrite(6, HIGH);
while (digitalRead(2) == LOW);
delay(200);
while (digitalRead(2) == LOW)
{
digitalWrite(6, LOW);
delay(500);
digitalWrite(6, HIGH);
delay(500);
}
delay(200);
while (digitalRead(2) == LOW)
{
int val = analogRead(A1);
analogWrite(6, (val * 255.0) / 1023.0);
}
delay(200);
}
Anidamiento de
Condicionales
Comprobación Repetitiva
Situación de Bloqueo
Sistemas Electrónicos Programables
Máquina de Estados
 Se llamará máquina de estados finitos si el conjunto
de estados de la máquina es finito;
 siendo éste el único tipo de máquina de estados que es
posible modelar con un computador.
 La representación gráfica se realiza por medio de
Grafos o Diagramas de Estados;
 aunque es posible utilizar diagramas de secuencia.
Se denomina Máquina de Estados al
comportamiento de un sistema con entradas y
salidas; donde las salidas dependen tanto de las
entradaS actuales como de las anteriores
Sistemas Electrónicos Programables
Autómatas Finitos
 Formalmente, un autómata finito es una 5-tupla (Q,
Σ, q0, δ, F) donde:
 Q es un conjunto finito de estados
 Σ es un alfabeto finito
 q0 ∈ Q es el estado inicial
 δ: Q x Σ  Q es una función de transición
 F ⊆ Q es un conjunto de estados finales
Un Autómata Finito es un modelo matemático
para la representación de una máquina de
estados finitos.
Sistemas Electrónicos Programables
Autómatas Finitos (continuación…)
 Representación formal de un autómata:
 Como Diagrama de Estados
 Como tabla de transiciones
S2S1
1 1
1
0
Salida
Q ∈ Q
Símbolo
δ ∈ Σ
Llegada
δ(q,σ) ∈ Q
S1 0 S2
S1 1 S1
S2 0 S1
S2 1 S2
0 1
 S1 S2 S1
S2 S1 S2
ó
Sistemas Electrónicos Programables
Diagramas de Estados
 Se componen de 3 elementos principales:
 Estado: es una condición o situación estable en el tiempo,
donde se puede realizar alguna actividad, o no, a la espera de
algún tipo de evento.
 Evento: es un acontecimiento significativo que puede, o no,
activar una transición entre estados.
 Transición: es una relación entre dos estados por medio del
cual se indica qué evento debe producirse para pasar de un
estado a otro.
Los Diagramas de Estados modelan el
comportamiento de un sistema a lo largo de su
ciclo de vida; mostrando el flujo de control entre
los diferentes estados
Sistemas Electrónicos Programables
Diagramas de Estados (continuación…)
 Ejemplo 3:
 Definición del funcionamiento de una puerta:
Secuencia de Eventos:
1. Abrir con Llave
2. Abrir Puerta
3. Cerrar Puerta
4. Abrir Puerta
5. Cerrar Puerta
6. Cerrar con Llave
Estado
Transición
Evento
Abrir con Llave
Cerrar con Llave
Abrir Puerta
Cerrar Puerta
Cerrada
Cerrada
con llave
Abierta
Sistemas Electrónicos Programables
Diagramas de Estados (continuación…)
 Ventajas:
 Los diagramas de estado son intuitivos y fáciles de entender.
 Su uso está muy extendido (por ejemplo, en protocolos de
comunicación).
 El sistema se divide en subsistemas más pequeños y
manejables.
 Es posible ampliar la funcionalidad del sistema con sólo añadir
nuevos estados y transiciones (sin cambiar lo implementado).
 Desventajas:
 No es aplicable al 100% de los casos.
 Es fácil caer en el error de definir demasiados estados lo que
complicará el sistema  se puede solucionar con jerarquías.
Sistemas Electrónicos Programables
Programación de un Autómata
 Ejemplo 4:
 Especificar el diagrama de estados de la luz frontal del
ejemplo 2.
Pulsar Botón
EncendidoApagado
ParpadeoRegulación
Pulsar Botón
Pulsar
Botón
Pulsar
Botón
Sistemas Electrónicos Programables
Programación de un Autómata (continuación…)
 Ejemplo 4 (continuación…):
 Analizar los eventos que generan las transiciones y las
acciones a realizar en cada estado.
Evento Significado
Pulsar Botón Cuando la señal pasa de nivel bajo a nivel alto
Estado Acciones Se realiza…
Apagado* Apagar la luz 1 vez
Encendido Encender la luz 1 vez
Parpadeo
Apagar la luz cuando hayan transcurrido 500 mS todo el tiempo
Encender la luz cuando hayan transcurrido500 mS todo el tiempo
Regulación Regular la luz en base al valor del potenciómetro todo el tiempo
* Estado inicial
Sistemas Electrónicos Programables
Programación de un Autómata (continuación…)
 Ejemplo 4 (continuación…):
 Identificar los requisitos de cada evento y cada estado.
Evento Requisitos
Pulsar Botón R1. Problema de rebotes con el sistema mecánico del pulsador
R2. Es posible utiliza la interrupción externa
Estado Requisitos
Apagado
R3. La luz debe estar apagada al arrancar el sistema
R4. La luz se apaga en la transición hacia este estado
Encendido R5. La luz se enciende en la transición hacia este estado
Parpadeo
R6. Se debe guardar el tiempo del último cambio que se ha realizado
R7. Se cogerá el primer valor en la transición hacía este estado
R8. Se pueden crear dos sub-estados: Apagado y Encendido
Regulación Ninguno
Sistemas Electrónicos Programables
Programación de un Autómata (continuación…)
 Ejemplo 4 (continuación…):
 Codificar el programa en base a toda la información
obtenida previamente:
#define LUZ 6
#define PULSADOR 2
#define POTENCIOMETRO A1
#define APAGADO 0
#define ENCENDIDO 1
#define PARPADEO 2
#define REGULACION 3
byte estado = APAGADO;
byte subestado;
unsigned long tiempoAnterior;
void setup() {
pinMode(PULSADOR, INPUT);
pinMode(LUZ, OUTPUT);
attachInterrupt(0, intPulsador, RISING);
digitalWrite(LUZ, LOW);
}
Definición de los Estados
Requisito R3
Requisito R1
Variables para el Autómata
Sistemas Electrónicos Programables
Programación de un Autómata (continuación…)
void loop() {
switch(estado)
{
case APAGADO:
break;
case ENCENDIDO:
break;
case PARPADEO:
if ((millis() - tiempoAnterior) > 500) {
tiempoAnterior = millis();
if (subestado == ENCENDIDO) {
digitalWrite(LUZ, LOW);
subestado = APAGADO;
}
else {
digitalWrite(LUZ, HIGH);
subestado = ENCENDIDO;
}
}
break;
case REGULACION:
int val = analogRead(POTENCIOMETRO);
analogWrite(LUZ, (val * 255.0) / 1023.0);
break;
}
}
Requisito R6
Clasificación de Estados
Requisito R8
Sistemas Electrónicos Programables
Programación de un Autómata (continuación…)
void intPulsador() {
delay(20);
switch(estado)
{
case APAGADO:
digitalWrite(LUZ, HIGH);
estado = ENCENDIDO;
break;
case ENCENDIDO:
tiempoAnterior = millis();
subestado = ENCENDIDO;
estado = PARPADEO;
break;
case PARPADEO:
estado = REGULACION;
break;
case REGULACION:
digitalWrite(LUZ, LOW);
estado = APAGADO;
break;
}
}
Requisito R4
Clasificación de Estados
Requisito R5
Requisito R7
Sistemas Electrónicos Programables
Programación de un Autómata (continuación…)
 Ejemplo 4 (continuación…):
 Añadir un nuevo modo de funcionamiento donde la luz se
encienda a un 50% de la potencia:
¿Cómo de complicado y
costoso sería este cambio?
Esta presentación está sujeta a la licencia de Reconocimiento
de Creative Commons mediante la cual se permite la copia, la
distribución, la comunicación pública y la generación de obras
derivadas sin ninguna limitación siempre que se cite al autor y
se mantenga el aviso de la licencia.
© 2014, Jonathan Ruiz de Garibay
Algunos derechos reservados

Más contenido relacionado

La actualidad más candente

CONTADOR BINARIO DESCENDENTE DE 8 BITS CON ARDUINO
CONTADOR BINARIO DESCENDENTE DE 8 BITS CON ARDUINOCONTADOR BINARIO DESCENDENTE DE 8 BITS CON ARDUINO
CONTADOR BINARIO DESCENDENTE DE 8 BITS CON ARDUINOFernando Marcos Marcos
 
Ramas de la electronica
Ramas de la electronicaRamas de la electronica
Ramas de la electronicaPablo Yoanny
 
ARQUITECTURA DE UN MICROPROCESADOR
ARQUITECTURA DE UN MICROPROCESADORARQUITECTURA DE UN MICROPROCESADOR
ARQUITECTURA DE UN MICROPROCESADORRAFAEL HONORES VERA
 
Capítulo III - Tópicos en Telefonía Móvil
Capítulo III - Tópicos en Telefonía MóvilCapítulo III - Tópicos en Telefonía Móvil
Capítulo III - Tópicos en Telefonía MóvilAndy Juan Sarango Veliz
 
codificaciones unipolar, polar, bipolar
codificaciones unipolar, polar, bipolarcodificaciones unipolar, polar, bipolar
codificaciones unipolar, polar, bipolarthejp
 
Audio y sonido - clase 01
Audio y sonido - clase 01Audio y sonido - clase 01
Audio y sonido - clase 01Easywork.ec
 
Amplificadores transistorizados multietapa
Amplificadores transistorizados multietapaAmplificadores transistorizados multietapa
Amplificadores transistorizados multietapaMOISESMARRERO2
 
Modulación digital con portadora análoga
Modulación digital con portadora análogaModulación digital con portadora análoga
Modulación digital con portadora análogaJoaquin Vicioso
 
Informe N°2-Microcontroladores
Informe N°2-MicrocontroladoresInforme N°2-Microcontroladores
Informe N°2-MicrocontroladoresOmar Ruiz
 
7 1 2009_7_54_14_pm_cartilla_normas_tecnicas_final
7 1 2009_7_54_14_pm_cartilla_normas_tecnicas_final7 1 2009_7_54_14_pm_cartilla_normas_tecnicas_final
7 1 2009_7_54_14_pm_cartilla_normas_tecnicas_finalJose Ospina
 
Modulación por desplazamiento de fase (psk) exposicion
Modulación por desplazamiento de fase (psk) exposicionModulación por desplazamiento de fase (psk) exposicion
Modulación por desplazamiento de fase (psk) exposicionAlieth Guevara
 
9 modulacion, ask, fsk, psk y qam
9  modulacion, ask, fsk, psk y qam9  modulacion, ask, fsk, psk y qam
9 modulacion, ask, fsk, psk y qamUTU
 

La actualidad más candente (20)

CONTADOR BINARIO DESCENDENTE DE 8 BITS CON ARDUINO
CONTADOR BINARIO DESCENDENTE DE 8 BITS CON ARDUINOCONTADOR BINARIO DESCENDENTE DE 8 BITS CON ARDUINO
CONTADOR BINARIO DESCENDENTE DE 8 BITS CON ARDUINO
 
Ramas de la electronica
Ramas de la electronicaRamas de la electronica
Ramas de la electronica
 
ARQUITECTURA DE UN MICROPROCESADOR
ARQUITECTURA DE UN MICROPROCESADORARQUITECTURA DE UN MICROPROCESADOR
ARQUITECTURA DE UN MICROPROCESADOR
 
El microcontrolador PIC16F877
El microcontrolador PIC16F877El microcontrolador PIC16F877
El microcontrolador PIC16F877
 
Microcontroladores
MicrocontroladoresMicrocontroladores
Microcontroladores
 
Modulación qam
Modulación qamModulación qam
Modulación qam
 
Capítulo III - Tópicos en Telefonía Móvil
Capítulo III - Tópicos en Telefonía MóvilCapítulo III - Tópicos en Telefonía Móvil
Capítulo III - Tópicos en Telefonía Móvil
 
Diapos de pic
Diapos de picDiapos de pic
Diapos de pic
 
codificaciones unipolar, polar, bipolar
codificaciones unipolar, polar, bipolarcodificaciones unipolar, polar, bipolar
codificaciones unipolar, polar, bipolar
 
Pam pcm nyquist
Pam pcm nyquistPam pcm nyquist
Pam pcm nyquist
 
Audio y sonido - clase 01
Audio y sonido - clase 01Audio y sonido - clase 01
Audio y sonido - clase 01
 
Lm 324
Lm 324Lm 324
Lm 324
 
Amplificadores transistorizados multietapa
Amplificadores transistorizados multietapaAmplificadores transistorizados multietapa
Amplificadores transistorizados multietapa
 
Modulación digital con portadora análoga
Modulación digital con portadora análogaModulación digital con portadora análoga
Modulación digital con portadora análoga
 
Informe N°2-Microcontroladores
Informe N°2-MicrocontroladoresInforme N°2-Microcontroladores
Informe N°2-Microcontroladores
 
Acoplador direccional
Acoplador direccionalAcoplador direccional
Acoplador direccional
 
7 1 2009_7_54_14_pm_cartilla_normas_tecnicas_final
7 1 2009_7_54_14_pm_cartilla_normas_tecnicas_final7 1 2009_7_54_14_pm_cartilla_normas_tecnicas_final
7 1 2009_7_54_14_pm_cartilla_normas_tecnicas_final
 
Modulación por desplazamiento de fase (psk) exposicion
Modulación por desplazamiento de fase (psk) exposicionModulación por desplazamiento de fase (psk) exposicion
Modulación por desplazamiento de fase (psk) exposicion
 
LOGICA BINARIA
LOGICA BINARIALOGICA BINARIA
LOGICA BINARIA
 
9 modulacion, ask, fsk, psk y qam
9  modulacion, ask, fsk, psk y qam9  modulacion, ask, fsk, psk y qam
9 modulacion, ask, fsk, psk y qam
 

Destacado

Circuitos básicos con Arduino
Circuitos básicos con ArduinoCircuitos básicos con Arduino
Circuitos básicos con ArduinoAlberto Labarga
 
Codesign-Oriented Platform for Agile Internet of Things Prototype Development
Codesign-Oriented Platform for Agile Internet of Things Prototype DevelopmentCodesign-Oriented Platform for Agile Internet of Things Prototype Development
Codesign-Oriented Platform for Agile Internet of Things Prototype DevelopmentJonathan Ruiz de Garibay
 
Arduino sin cables: usando Bluetooth
Arduino sin cables: usando BluetoothArduino sin cables: usando Bluetooth
Arduino sin cables: usando BluetoothJorge Zaccaro
 
Introducción a la planificación de proyectos
Introducción a la planificación de proyectosIntroducción a la planificación de proyectos
Introducción a la planificación de proyectosJonathan Ruiz de Garibay
 
Android + Bluetooth + Arduino
Android + Bluetooth + ArduinoAndroid + Bluetooth + Arduino
Android + Bluetooth + ArduinoJonathan Alvarado
 

Destacado (20)

Circuitos básicos con Arduino
Circuitos básicos con ArduinoCircuitos básicos con Arduino
Circuitos básicos con Arduino
 
02.El Soporte Visual
02.El Soporte Visual02.El Soporte Visual
02.El Soporte Visual
 
01.Puntos Clave de una Presentación Oral
01.Puntos Clave de una Presentación Oral01.Puntos Clave de una Presentación Oral
01.Puntos Clave de una Presentación Oral
 
P01.Desarrollo de aplicaciones con mplab
P01.Desarrollo de aplicaciones con mplabP01.Desarrollo de aplicaciones con mplab
P01.Desarrollo de aplicaciones con mplab
 
Codesign-Oriented Platform for Agile Internet of Things Prototype Development
Codesign-Oriented Platform for Agile Internet of Things Prototype DevelopmentCodesign-Oriented Platform for Agile Internet of Things Prototype Development
Codesign-Oriented Platform for Agile Internet of Things Prototype Development
 
Práctica09.Librerías
Práctica09.LibreríasPráctica09.Librerías
Práctica09.Librerías
 
Arduino sin cables: usando Bluetooth
Arduino sin cables: usando BluetoothArduino sin cables: usando Bluetooth
Arduino sin cables: usando Bluetooth
 
Introduccion a la Programación
Introduccion a la ProgramaciónIntroduccion a la Programación
Introduccion a la Programación
 
02d.Circuito oscilador
02d.Circuito oscilador02d.Circuito oscilador
02d.Circuito oscilador
 
Práctica05.Interrupciones en Arduino
Práctica05.Interrupciones en ArduinoPráctica05.Interrupciones en Arduino
Práctica05.Interrupciones en Arduino
 
Práctica04.Programando Arduino
Práctica04.Programando ArduinoPráctica04.Programando Arduino
Práctica04.Programando Arduino
 
Introducción a la planificación de proyectos
Introducción a la planificación de proyectosIntroducción a la planificación de proyectos
Introducción a la planificación de proyectos
 
Práctica01.Sistemas de Entrada Salida
Práctica01.Sistemas de Entrada SalidaPráctica01.Sistemas de Entrada Salida
Práctica01.Sistemas de Entrada Salida
 
Práctica08.Comunicaciones
Práctica08.ComunicacionesPráctica08.Comunicaciones
Práctica08.Comunicaciones
 
Android + Bluetooth + Arduino
Android + Bluetooth + ArduinoAndroid + Bluetooth + Arduino
Android + Bluetooth + Arduino
 
Trabajo en equipo
Trabajo en equipoTrabajo en equipo
Trabajo en equipo
 
Amplificación de señal con BJT
Amplificación de señal con BJTAmplificación de señal con BJT
Amplificación de señal con BJT
 
Introducción a machine learning
Introducción a machine learningIntroducción a machine learning
Introducción a machine learning
 
Práctica06.Controlando Motores
Práctica06.Controlando MotoresPráctica06.Controlando Motores
Práctica06.Controlando Motores
 
Configuraciones con transistores BJT
Configuraciones con transistores BJTConfiguraciones con transistores BJT
Configuraciones con transistores BJT
 

Similar a Programación Basada en Autómatas

009. diseño de circuitos secuenciales electroneumaticos programados
009. diseño de circuitos secuenciales electroneumaticos programados009. diseño de circuitos secuenciales electroneumaticos programados
009. diseño de circuitos secuenciales electroneumaticos programadosguelo
 
009 Electroneumática y Neumática: electroneumática con circuitos secuenciales...
009 Electroneumática y Neumática: electroneumática con circuitos secuenciales...009 Electroneumática y Neumática: electroneumática con circuitos secuenciales...
009 Electroneumática y Neumática: electroneumática con circuitos secuenciales...SANTIAGO PABLO ALBERTO
 
Controladores (teoria de control)
Controladores (teoria de control)Controladores (teoria de control)
Controladores (teoria de control)martinezeduardo
 
Electrónica digital: Diseño de circuitos con VHDL
Electrónica digital: Diseño de circuitos con VHDLElectrónica digital: Diseño de circuitos con VHDL
Electrónica digital: Diseño de circuitos con VHDLSANTIAGO PABLO ALBERTO
 
Ctrl discreto de un motor de cc en velocidad
Ctrl discreto de un motor de cc en velocidadCtrl discreto de un motor de cc en velocidad
Ctrl discreto de un motor de cc en velocidadMiguel sosa
 
Presentació RobòTica
Presentació RobòTicaPresentació RobòTica
Presentació RobòTicaJordi Mercader
 
ARDUINO GRAFCET - Metodología para la adaptación de automatismos simulado...
ARDUINO  GRAFCET  - Metodología para la adaptación  de automatismos  simulado...ARDUINO  GRAFCET  - Metodología para la adaptación  de automatismos  simulado...
ARDUINO GRAFCET - Metodología para la adaptación de automatismos simulado...Jovanny Duque
 
Sistemas Embebidos
Sistemas EmbebidosSistemas Embebidos
Sistemas EmbebidosJorge Garzon
 
Lenguaje Ladder
Lenguaje LadderLenguaje Ladder
Lenguaje LadderRuth Cano
 
Sistemas digitales
Sistemas digitalesSistemas digitales
Sistemas digitalesJesusLeal33
 
Algorítmos - Conceptos básicos
Algorítmos - Conceptos básicosAlgorítmos - Conceptos básicos
Algorítmos - Conceptos básicoscbertolotti
 
Arduino: Maquinas de estado con Arduino
Arduino: Maquinas de estado con ArduinoArduino: Maquinas de estado con Arduino
Arduino: Maquinas de estado con ArduinoSANTIAGO PABLO ALBERTO
 
Desarrollo de aplicaciones
Desarrollo de aplicacionesDesarrollo de aplicaciones
Desarrollo de aplicacionesAlexi_Kleeo
 
Programación estructurada plc
Programación estructurada plcProgramación estructurada plc
Programación estructurada plcMario RH
 

Similar a Programación Basada en Autómatas (20)

Arduino: Curso Arduino y robótica
Arduino: Curso Arduino y robóticaArduino: Curso Arduino y robótica
Arduino: Curso Arduino y robótica
 
Curso-de-PLC.pdf
Curso-de-PLC.pdfCurso-de-PLC.pdf
Curso-de-PLC.pdf
 
009. diseño de circuitos secuenciales electroneumaticos programados
009. diseño de circuitos secuenciales electroneumaticos programados009. diseño de circuitos secuenciales electroneumaticos programados
009. diseño de circuitos secuenciales electroneumaticos programados
 
009 Electroneumática y Neumática: electroneumática con circuitos secuenciales...
009 Electroneumática y Neumática: electroneumática con circuitos secuenciales...009 Electroneumática y Neumática: electroneumática con circuitos secuenciales...
009 Electroneumática y Neumática: electroneumática con circuitos secuenciales...
 
04a 150206074952-conversion-gate02
04a 150206074952-conversion-gate0204a 150206074952-conversion-gate02
04a 150206074952-conversion-gate02
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Controladores (teoria de control)
Controladores (teoria de control)Controladores (teoria de control)
Controladores (teoria de control)
 
Electrónica digital: Diseño de circuitos con VHDL
Electrónica digital: Diseño de circuitos con VHDLElectrónica digital: Diseño de circuitos con VHDL
Electrónica digital: Diseño de circuitos con VHDL
 
Ctrl discreto de un motor de cc en velocidad
Ctrl discreto de un motor de cc en velocidadCtrl discreto de un motor de cc en velocidad
Ctrl discreto de un motor de cc en velocidad
 
Presentació RobòTica
Presentació RobòTicaPresentació RobòTica
Presentació RobòTica
 
ARDUINO GRAFCET - Metodología para la adaptación de automatismos simulado...
ARDUINO  GRAFCET  - Metodología para la adaptación  de automatismos  simulado...ARDUINO  GRAFCET  - Metodología para la adaptación  de automatismos  simulado...
ARDUINO GRAFCET - Metodología para la adaptación de automatismos simulado...
 
Sistemas Embebidos
Sistemas EmbebidosSistemas Embebidos
Sistemas Embebidos
 
Lenguaje Ladder
Lenguaje LadderLenguaje Ladder
Lenguaje Ladder
 
Presentacion final de control
Presentacion final de controlPresentacion final de control
Presentacion final de control
 
Sistemas digitales
Sistemas digitalesSistemas digitales
Sistemas digitales
 
Algorítmos - Conceptos básicos
Algorítmos - Conceptos básicosAlgorítmos - Conceptos básicos
Algorítmos - Conceptos básicos
 
Arduino: Maquinas de estado con Arduino
Arduino: Maquinas de estado con ArduinoArduino: Maquinas de estado con Arduino
Arduino: Maquinas de estado con Arduino
 
Desarrollo de aplicaciones
Desarrollo de aplicacionesDesarrollo de aplicaciones
Desarrollo de aplicaciones
 
Programación estructurada plc
Programación estructurada plcProgramación estructurada plc
Programación estructurada plc
 
algoritmo
algoritmoalgoritmo
algoritmo
 

Más de Jonathan Ruiz de Garibay (16)

Vocaciones STEM
Vocaciones STEMVocaciones STEM
Vocaciones STEM
 
Amplificadores Multietapa
Amplificadores MultietapaAmplificadores Multietapa
Amplificadores Multietapa
 
Recta de carga para señal
Recta de carga para señalRecta de carga para señal
Recta de carga para señal
 
Fundamentos de los Microcontroladores
Fundamentos de los MicrocontroladoresFundamentos de los Microcontroladores
Fundamentos de los Microcontroladores
 
Polarización de los Transistores
Polarización de los TransistoresPolarización de los Transistores
Polarización de los Transistores
 
Programación en Arduino
Programación en ArduinoProgramación en Arduino
Programación en Arduino
 
Introducción a arduino
Introducción a arduinoIntroducción a arduino
Introducción a arduino
 
Fundamentos de los Transistores
Fundamentos de los TransistoresFundamentos de los Transistores
Fundamentos de los Transistores
 
Transistor Bipolar
Transistor BipolarTransistor Bipolar
Transistor Bipolar
 
Introducción a la Tecnología Electrónica
Introducción a la Tecnología ElectrónicaIntroducción a la Tecnología Electrónica
Introducción a la Tecnología Electrónica
 
Semiconductores
SemiconductoresSemiconductores
Semiconductores
 
Teoría de Diodos
Teoría de DiodosTeoría de Diodos
Teoría de Diodos
 
Fuentes de Alimentación
Fuentes de AlimentaciónFuentes de Alimentación
Fuentes de Alimentación
 
IoT: Objetos conectados a internet
IoT: Objetos conectados a internetIoT: Objetos conectados a internet
IoT: Objetos conectados a internet
 
Time Management Tool Based on New Interaction Paradigms with RFID Technology
Time Management Tool Based on New Interaction Paradigms with RFID TechnologyTime Management Tool Based on New Interaction Paradigms with RFID Technology
Time Management Tool Based on New Interaction Paradigms with RFID Technology
 
WebTag: Smart Tag with Embedded Web Server
WebTag: Smart Tag with Embedded Web ServerWebTag: Smart Tag with Embedded Web Server
WebTag: Smart Tag with Embedded Web Server
 

Último

RECONOCIMIENTO DE LIPIDOS Y ALGUNAS PROPIEDADES
RECONOCIMIENTO DE LIPIDOS Y ALGUNAS PROPIEDADESRECONOCIMIENTO DE LIPIDOS Y ALGUNAS PROPIEDADES
RECONOCIMIENTO DE LIPIDOS Y ALGUNAS PROPIEDADESyanicsapernia5g
 
1.1 Los 14 principios del Toyota Way -2024.pdf
1.1 Los 14 principios del Toyota Way -2024.pdf1.1 Los 14 principios del Toyota Way -2024.pdf
1.1 Los 14 principios del Toyota Way -2024.pdfThe16Frame
 
dokumen.tips_311-determinacion-del-espacio-estatico.pptx
dokumen.tips_311-determinacion-del-espacio-estatico.pptxdokumen.tips_311-determinacion-del-espacio-estatico.pptx
dokumen.tips_311-determinacion-del-espacio-estatico.pptxQualityAdviceService
 
1. Equipos Primarios de una Subestaciones electricas
1. Equipos Primarios de una Subestaciones electricas1. Equipos Primarios de una Subestaciones electricas
1. Equipos Primarios de una Subestaciones electricasurAN077
 
slideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdf
slideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdfslideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdf
slideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdfWaldo Eber Melendez Garro
 
Arquitecto cambio de uso de suelo Limache
Arquitecto cambio de uso de suelo LimacheArquitecto cambio de uso de suelo Limache
Arquitecto cambio de uso de suelo LimacheJuan Luis Menares
 
Video sustentación GA2- 240201528-AA3-EV01.pptx
Video sustentación GA2- 240201528-AA3-EV01.pptxVideo sustentación GA2- 240201528-AA3-EV01.pptx
Video sustentación GA2- 240201528-AA3-EV01.pptxcarlosEspaaGarcia
 
UNIDAD 3 ENSAYOS DESTRUCTIVOS Y NO DESTRUCTIVOS – NORMATIVA ASTM.pdf
UNIDAD 3 ENSAYOS DESTRUCTIVOS Y NO DESTRUCTIVOS – NORMATIVA ASTM.pdfUNIDAD 3 ENSAYOS DESTRUCTIVOS Y NO DESTRUCTIVOS – NORMATIVA ASTM.pdf
UNIDAD 3 ENSAYOS DESTRUCTIVOS Y NO DESTRUCTIVOS – NORMATIVA ASTM.pdfronypap
 
Trabajo practico N°14 - Despacho Economico de Cargas - Campus 2022.pdf
Trabajo practico N°14 - Despacho Economico de Cargas - Campus 2022.pdfTrabajo practico N°14 - Despacho Economico de Cargas - Campus 2022.pdf
Trabajo practico N°14 - Despacho Economico de Cargas - Campus 2022.pdfChristianMOntiveros1
 
examen ExANI 2...........................
examen ExANI 2...........................examen ExANI 2...........................
examen ExANI 2...........................migueljosedelaolopez
 
Instalacion de un Sistema contra incendio
Instalacion de un Sistema contra incendioInstalacion de un Sistema contra incendio
Instalacion de un Sistema contra incendioPardoGasca
 
Presentación_ Marco general de las contrataciones públicas.pdf
Presentación_ Marco general de las contrataciones públicas.pdfPresentación_ Marco general de las contrataciones públicas.pdf
Presentación_ Marco general de las contrataciones públicas.pdffernandolozano90
 
Myoelectric_Control_for_Upper_Limb_Prostheses.en.es (2).pdf
Myoelectric_Control_for_Upper_Limb_Prostheses.en.es (2).pdfMyoelectric_Control_for_Upper_Limb_Prostheses.en.es (2).pdf
Myoelectric_Control_for_Upper_Limb_Prostheses.en.es (2).pdfFtimaMontserratZaraz
 
entropia y neguentropia en la teoria general de sistemas
entropia y neguentropia en la teoria general de sistemasentropia y neguentropia en la teoria general de sistemas
entropia y neguentropia en la teoria general de sistemasDerlyValeriaRodrigue
 
Métodos numéricos y aplicaciones - Izar Landeta.pdf
Métodos numéricos y aplicaciones - Izar Landeta.pdfMétodos numéricos y aplicaciones - Izar Landeta.pdf
Métodos numéricos y aplicaciones - Izar Landeta.pdfJuvenalriv
 
Sistema de alumbrado.pptx fjhhgghrhgghhuughuh
Sistema de alumbrado.pptx fjhhgghrhgghhuughuhSistema de alumbrado.pptx fjhhgghrhgghhuughuh
Sistema de alumbrado.pptx fjhhgghrhgghhuughuhFoxy963
 
SO5. s5. Unidad 2. Sectorización_-639808213.pdf
SO5. s5. Unidad 2. Sectorización_-639808213.pdfSO5. s5. Unidad 2. Sectorización_-639808213.pdf
SO5. s5. Unidad 2. Sectorización_-639808213.pdfStayBe1
 
Determinación de espacios en la instalación
Determinación de espacios en la instalaciónDeterminación de espacios en la instalación
Determinación de espacios en la instalaciónQualityAdviceService
 
Auditoría de Sistemas de Gestión
Auditoría    de   Sistemas     de GestiónAuditoría    de   Sistemas     de Gestión
Auditoría de Sistemas de GestiónYanet Caldas
 
TECNOLOGIA DE CONCRETO 2024 estudiante.pdf
TECNOLOGIA DE CONCRETO 2024 estudiante.pdfTECNOLOGIA DE CONCRETO 2024 estudiante.pdf
TECNOLOGIA DE CONCRETO 2024 estudiante.pdfEddieEDM
 

Último (20)

RECONOCIMIENTO DE LIPIDOS Y ALGUNAS PROPIEDADES
RECONOCIMIENTO DE LIPIDOS Y ALGUNAS PROPIEDADESRECONOCIMIENTO DE LIPIDOS Y ALGUNAS PROPIEDADES
RECONOCIMIENTO DE LIPIDOS Y ALGUNAS PROPIEDADES
 
1.1 Los 14 principios del Toyota Way -2024.pdf
1.1 Los 14 principios del Toyota Way -2024.pdf1.1 Los 14 principios del Toyota Way -2024.pdf
1.1 Los 14 principios del Toyota Way -2024.pdf
 
dokumen.tips_311-determinacion-del-espacio-estatico.pptx
dokumen.tips_311-determinacion-del-espacio-estatico.pptxdokumen.tips_311-determinacion-del-espacio-estatico.pptx
dokumen.tips_311-determinacion-del-espacio-estatico.pptx
 
1. Equipos Primarios de una Subestaciones electricas
1. Equipos Primarios de una Subestaciones electricas1. Equipos Primarios de una Subestaciones electricas
1. Equipos Primarios de una Subestaciones electricas
 
slideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdf
slideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdfslideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdf
slideshare.vpdfs.com_sensores-magneticos-controles-pptx.pdf
 
Arquitecto cambio de uso de suelo Limache
Arquitecto cambio de uso de suelo LimacheArquitecto cambio de uso de suelo Limache
Arquitecto cambio de uso de suelo Limache
 
Video sustentación GA2- 240201528-AA3-EV01.pptx
Video sustentación GA2- 240201528-AA3-EV01.pptxVideo sustentación GA2- 240201528-AA3-EV01.pptx
Video sustentación GA2- 240201528-AA3-EV01.pptx
 
UNIDAD 3 ENSAYOS DESTRUCTIVOS Y NO DESTRUCTIVOS – NORMATIVA ASTM.pdf
UNIDAD 3 ENSAYOS DESTRUCTIVOS Y NO DESTRUCTIVOS – NORMATIVA ASTM.pdfUNIDAD 3 ENSAYOS DESTRUCTIVOS Y NO DESTRUCTIVOS – NORMATIVA ASTM.pdf
UNIDAD 3 ENSAYOS DESTRUCTIVOS Y NO DESTRUCTIVOS – NORMATIVA ASTM.pdf
 
Trabajo practico N°14 - Despacho Economico de Cargas - Campus 2022.pdf
Trabajo practico N°14 - Despacho Economico de Cargas - Campus 2022.pdfTrabajo practico N°14 - Despacho Economico de Cargas - Campus 2022.pdf
Trabajo practico N°14 - Despacho Economico de Cargas - Campus 2022.pdf
 
examen ExANI 2...........................
examen ExANI 2...........................examen ExANI 2...........................
examen ExANI 2...........................
 
Instalacion de un Sistema contra incendio
Instalacion de un Sistema contra incendioInstalacion de un Sistema contra incendio
Instalacion de un Sistema contra incendio
 
Presentación_ Marco general de las contrataciones públicas.pdf
Presentación_ Marco general de las contrataciones públicas.pdfPresentación_ Marco general de las contrataciones públicas.pdf
Presentación_ Marco general de las contrataciones públicas.pdf
 
Myoelectric_Control_for_Upper_Limb_Prostheses.en.es (2).pdf
Myoelectric_Control_for_Upper_Limb_Prostheses.en.es (2).pdfMyoelectric_Control_for_Upper_Limb_Prostheses.en.es (2).pdf
Myoelectric_Control_for_Upper_Limb_Prostheses.en.es (2).pdf
 
entropia y neguentropia en la teoria general de sistemas
entropia y neguentropia en la teoria general de sistemasentropia y neguentropia en la teoria general de sistemas
entropia y neguentropia en la teoria general de sistemas
 
Métodos numéricos y aplicaciones - Izar Landeta.pdf
Métodos numéricos y aplicaciones - Izar Landeta.pdfMétodos numéricos y aplicaciones - Izar Landeta.pdf
Métodos numéricos y aplicaciones - Izar Landeta.pdf
 
Sistema de alumbrado.pptx fjhhgghrhgghhuughuh
Sistema de alumbrado.pptx fjhhgghrhgghhuughuhSistema de alumbrado.pptx fjhhgghrhgghhuughuh
Sistema de alumbrado.pptx fjhhgghrhgghhuughuh
 
SO5. s5. Unidad 2. Sectorización_-639808213.pdf
SO5. s5. Unidad 2. Sectorización_-639808213.pdfSO5. s5. Unidad 2. Sectorización_-639808213.pdf
SO5. s5. Unidad 2. Sectorización_-639808213.pdf
 
Determinación de espacios en la instalación
Determinación de espacios en la instalaciónDeterminación de espacios en la instalación
Determinación de espacios en la instalación
 
Auditoría de Sistemas de Gestión
Auditoría    de   Sistemas     de GestiónAuditoría    de   Sistemas     de Gestión
Auditoría de Sistemas de Gestión
 
TECNOLOGIA DE CONCRETO 2024 estudiante.pdf
TECNOLOGIA DE CONCRETO 2024 estudiante.pdfTECNOLOGIA DE CONCRETO 2024 estudiante.pdf
TECNOLOGIA DE CONCRETO 2024 estudiante.pdf
 

Programación Basada en Autómatas

  • 1. Sistemas Electrónicos Programables Facultad de Ingeniería, Universidad de Deusto Programación Basada en Autómatas
  • 2. Sistemas Electrónicos Programables Patrones de Diseño Software  Para programa correctamente un sistema embebido, un desarrollador software debe conocer y dominar gradualmente los patrones o métodos de programación más usados porque  proporcionan catálogos de elementos reusables en el diseño de sistemas software,  evitan la reiteración en la búsqueda de soluciones a problemas ya conocidos,  estandarizan el modo en el que se realiza el diseño, entre otras cosas Un Patrón de Diseño Software es una solución efectiva y reutilizable a un problema de diseño software No pretenden imponer ciertas alternativas de diseño ni eliminar la creatividad del proceso de diseño
  • 3. Sistemas Electrónicos Programables Patrón Singleton  Por medio de este patrón se pretende garantizar la existencia de una única instancia para una clase; y la creación de un mecanismo de acceso global a dicha instancia.  Se basa en el uso de un constructor privado y un atributo estático con la única instancia posible de la clase. class Singleton { private static Singleton instance; private Singleton(){ } public static Singleton GetInstance() { { if (instance == null) instance = new Singleton(); return instance; } }
  • 4. Sistemas Electrónicos Programables Patrón Código Espagueti  En realidad, es un anti-patrón, y es un término utilizado para los programas computacionales que tienen una estructura de control de flujo compleja e incomprensible.  Suele asociarse a lenguajes de programación antiguos o básicos y a programadores nóveles.  Se identifica fácilmente cuando:  se realiza un uso recurrente de sentencias condicionales anidadas (if-then-else, while…),  se crean situaciones de bloqueo del sistema (while(1), delay()…) y  se realizan las mismas comprobaciones una y otra vez a lo largo del programa. No hay nada malo en escribir código espagueti inicialmente si facilita la compresión de un problema; lo incorrecto es considerar el código como definitivo
  • 5. Sistemas Electrónicos Programables Código Espagueti (continuación…)  Ejemplo 2:  Programar una luz frontal de atletismo con la siguiente funcionalidad:  Por medio de un botón se puede pasar entre 4 modos diferentes: apagado, encendido, parpadeo y regulación de luz.  Con cada pulsación, se pasa de un modo al siguiente, y del último al primero.  En el estado de parpadeo; la luz se encenderá y apagará cada 500mS.  En el estado de regulación de luz; la intensidad de luz será ajustada por medio de un potenciómetro.
  • 6. Sistemas Electrónicos Programables Código Espagueti (continuación…) void setup() { pinMode(2, INPUT); pinMode(6, OUTPUT); } void loop() { digitalWrite(6, LOW); while (digitalRead(2) == LOW); delay(200); digitalWrite(6, HIGH); while (digitalRead(2) == LOW); delay(200); while (digitalRead(2) == LOW) { digitalWrite(6, LOW); delay(500); digitalWrite(6, HIGH); delay(500); } delay(200); while (digitalRead(2) == LOW) { int val = analogRead(A1); analogWrite(6, (val * 255.0) / 1023.0); } delay(200); } Anidamiento de Condicionales Comprobación Repetitiva Situación de Bloqueo
  • 7. Sistemas Electrónicos Programables Máquina de Estados  Se llamará máquina de estados finitos si el conjunto de estados de la máquina es finito;  siendo éste el único tipo de máquina de estados que es posible modelar con un computador.  La representación gráfica se realiza por medio de Grafos o Diagramas de Estados;  aunque es posible utilizar diagramas de secuencia. Se denomina Máquina de Estados al comportamiento de un sistema con entradas y salidas; donde las salidas dependen tanto de las entradaS actuales como de las anteriores
  • 8. Sistemas Electrónicos Programables Autómatas Finitos  Formalmente, un autómata finito es una 5-tupla (Q, Σ, q0, δ, F) donde:  Q es un conjunto finito de estados  Σ es un alfabeto finito  q0 ∈ Q es el estado inicial  δ: Q x Σ  Q es una función de transición  F ⊆ Q es un conjunto de estados finales Un Autómata Finito es un modelo matemático para la representación de una máquina de estados finitos.
  • 9. Sistemas Electrónicos Programables Autómatas Finitos (continuación…)  Representación formal de un autómata:  Como Diagrama de Estados  Como tabla de transiciones S2S1 1 1 1 0 Salida Q ∈ Q Símbolo δ ∈ Σ Llegada δ(q,σ) ∈ Q S1 0 S2 S1 1 S1 S2 0 S1 S2 1 S2 0 1  S1 S2 S1 S2 S1 S2 ó
  • 10. Sistemas Electrónicos Programables Diagramas de Estados  Se componen de 3 elementos principales:  Estado: es una condición o situación estable en el tiempo, donde se puede realizar alguna actividad, o no, a la espera de algún tipo de evento.  Evento: es un acontecimiento significativo que puede, o no, activar una transición entre estados.  Transición: es una relación entre dos estados por medio del cual se indica qué evento debe producirse para pasar de un estado a otro. Los Diagramas de Estados modelan el comportamiento de un sistema a lo largo de su ciclo de vida; mostrando el flujo de control entre los diferentes estados
  • 11. Sistemas Electrónicos Programables Diagramas de Estados (continuación…)  Ejemplo 3:  Definición del funcionamiento de una puerta: Secuencia de Eventos: 1. Abrir con Llave 2. Abrir Puerta 3. Cerrar Puerta 4. Abrir Puerta 5. Cerrar Puerta 6. Cerrar con Llave Estado Transición Evento Abrir con Llave Cerrar con Llave Abrir Puerta Cerrar Puerta Cerrada Cerrada con llave Abierta
  • 12. Sistemas Electrónicos Programables Diagramas de Estados (continuación…)  Ventajas:  Los diagramas de estado son intuitivos y fáciles de entender.  Su uso está muy extendido (por ejemplo, en protocolos de comunicación).  El sistema se divide en subsistemas más pequeños y manejables.  Es posible ampliar la funcionalidad del sistema con sólo añadir nuevos estados y transiciones (sin cambiar lo implementado).  Desventajas:  No es aplicable al 100% de los casos.  Es fácil caer en el error de definir demasiados estados lo que complicará el sistema  se puede solucionar con jerarquías.
  • 13. Sistemas Electrónicos Programables Programación de un Autómata  Ejemplo 4:  Especificar el diagrama de estados de la luz frontal del ejemplo 2. Pulsar Botón EncendidoApagado ParpadeoRegulación Pulsar Botón Pulsar Botón Pulsar Botón
  • 14. Sistemas Electrónicos Programables Programación de un Autómata (continuación…)  Ejemplo 4 (continuación…):  Analizar los eventos que generan las transiciones y las acciones a realizar en cada estado. Evento Significado Pulsar Botón Cuando la señal pasa de nivel bajo a nivel alto Estado Acciones Se realiza… Apagado* Apagar la luz 1 vez Encendido Encender la luz 1 vez Parpadeo Apagar la luz cuando hayan transcurrido 500 mS todo el tiempo Encender la luz cuando hayan transcurrido500 mS todo el tiempo Regulación Regular la luz en base al valor del potenciómetro todo el tiempo * Estado inicial
  • 15. Sistemas Electrónicos Programables Programación de un Autómata (continuación…)  Ejemplo 4 (continuación…):  Identificar los requisitos de cada evento y cada estado. Evento Requisitos Pulsar Botón R1. Problema de rebotes con el sistema mecánico del pulsador R2. Es posible utiliza la interrupción externa Estado Requisitos Apagado R3. La luz debe estar apagada al arrancar el sistema R4. La luz se apaga en la transición hacia este estado Encendido R5. La luz se enciende en la transición hacia este estado Parpadeo R6. Se debe guardar el tiempo del último cambio que se ha realizado R7. Se cogerá el primer valor en la transición hacía este estado R8. Se pueden crear dos sub-estados: Apagado y Encendido Regulación Ninguno
  • 16. Sistemas Electrónicos Programables Programación de un Autómata (continuación…)  Ejemplo 4 (continuación…):  Codificar el programa en base a toda la información obtenida previamente: #define LUZ 6 #define PULSADOR 2 #define POTENCIOMETRO A1 #define APAGADO 0 #define ENCENDIDO 1 #define PARPADEO 2 #define REGULACION 3 byte estado = APAGADO; byte subestado; unsigned long tiempoAnterior; void setup() { pinMode(PULSADOR, INPUT); pinMode(LUZ, OUTPUT); attachInterrupt(0, intPulsador, RISING); digitalWrite(LUZ, LOW); } Definición de los Estados Requisito R3 Requisito R1 Variables para el Autómata
  • 17. Sistemas Electrónicos Programables Programación de un Autómata (continuación…) void loop() { switch(estado) { case APAGADO: break; case ENCENDIDO: break; case PARPADEO: if ((millis() - tiempoAnterior) > 500) { tiempoAnterior = millis(); if (subestado == ENCENDIDO) { digitalWrite(LUZ, LOW); subestado = APAGADO; } else { digitalWrite(LUZ, HIGH); subestado = ENCENDIDO; } } break; case REGULACION: int val = analogRead(POTENCIOMETRO); analogWrite(LUZ, (val * 255.0) / 1023.0); break; } } Requisito R6 Clasificación de Estados Requisito R8
  • 18. Sistemas Electrónicos Programables Programación de un Autómata (continuación…) void intPulsador() { delay(20); switch(estado) { case APAGADO: digitalWrite(LUZ, HIGH); estado = ENCENDIDO; break; case ENCENDIDO: tiempoAnterior = millis(); subestado = ENCENDIDO; estado = PARPADEO; break; case PARPADEO: estado = REGULACION; break; case REGULACION: digitalWrite(LUZ, LOW); estado = APAGADO; break; } } Requisito R4 Clasificación de Estados Requisito R5 Requisito R7
  • 19. Sistemas Electrónicos Programables Programación de un Autómata (continuación…)  Ejemplo 4 (continuación…):  Añadir un nuevo modo de funcionamiento donde la luz se encienda a un 50% de la potencia: ¿Cómo de complicado y costoso sería este cambio?
  • 20. Esta presentación está sujeta a la licencia de Reconocimiento de Creative Commons mediante la cual se permite la copia, la distribución, la comunicación pública y la generación de obras derivadas sin ninguna limitación siempre que se cite al autor y se mantenga el aviso de la licencia. © 2014, Jonathan Ruiz de Garibay Algunos derechos reservados