Está en la página 1de 11

Microcontroladores I

INSTITUTO DE EDUCACIÓN SUPERIOR TECNOLÓGICO PÚBLICO ANDRÉS


AVELINO CÁCERES DORREGARAY
ELECTRÓNICA INDUSTRIAL

TAREA - ACTIVIDAD 3

PRESENTADO POR:
BRAYAM EDWARD CURASMA BLANCAS
VICTOR RAUL MAYTA CAMPOS

Curso
MICROCONTROLADORES I

Catedrático
JUAN LUIS MERLO GALVEZ

HUANCAYO – PERÚ
2023

Docente: Juan L. Merlo G.


Microcontroladores I

Tarea - Actividad 3
Un programa que controle un sencillo sistema de alarma que funciona como se indica

a continuación.

- Si se activa el sensor S1, el sistema enciende la lámpara H1 y la sirena K1 indicando


que se ha producido la condición de alarma.

- Una vez activada la alarma, es necesario presionar el pulsador S2 para realizar el


reconocimiento de la alarma. Si al presionar S2 el sensor S1 ya se hubiera
desactivado, entonces ambas la lámpara H1 y la sirena K1 se apagarán y el sistema
quedará en condiciones iniciales nuevamente. De lo contrario, si al presionar S2 el
sensor S1 continúa activado, entonces la sirena K1 debe apagarse y la lámpara H1
seguirá encendida en tanto el sensor permanezca activado.

Esquema pictórico

Arduino Sirena de 220V

Lámpara 220V Módulo Relay


4 canales
Pulsadores

Docente: Juan L. Merlo G.


Microcontroladores I

Lista de entradas y salidas

Símbolo Descripción Tipo Pin

S1 Sensor de la alarma Digital 2


Entradas

S2 Pulsador N.A. de reconocimiento de alarma Digital 3

K1 Relé de conexion principal de la sirena Digital 4


Salidas

H1 Lámpara de encendido Digital 5

Docente: Juan L. Merlo G.


Microcontroladores I

Esquema circuital

Docente: Juan L. Merlo G.


Microcontroladores I

Diagrama de flujo/estados

Docente: Juan L. Merlo G.


Microcontroladores I

Programa método sentencias if

/***********************************************************************
* Programa: sistema de alarma
* Descripción: Programar un microcontrolador para controlar un
* sistema de alarma. - Si se activa el sensor S1, el sistema
* enciende la lámpara H1 y la sirena K1 indicando que se
* ha producido la condición de alarma. Una vez activada la alarma,
* es necesario presionar el pulsador S2 para realizar el
* reconocimiento de la alarma. Si al presionar S2 el sensor S1 ya
* se hubiera desactivado, entonces ambas la lámpara H1 y la sirena
* K1 se apagarán y el sistema quedará en condiciones iniciales
* nuevamente. De lo contrario, si al presionar S2 el sensor S1
* continúa activado, entonces la sirena K1 debe apagarse y la lámpara
* H1 seguirá encendida en tanto el sensor permanezca activado.
* S1: Sensor_S1 (activo alto) -> Pin 2
* S2: Pulsador N.A. de reconocimiento de alarma (activo alto) -> Pin 3
* K1: Relé de control de sirena -> Pin 4
* H1: Lámpara señalizadora -> Pin 5
* Autor: B.E.C.B.
* Fecha: 15/06/23
***********************************************************************/

// Definiciones y constantes
// Pines de entrada y salida
#define Pin_S1 2 // S1 conectado al pin 2
#define Pin_S2 3 // S2 conectado al pin 3
#define Pin_K1 4 // K1 conectado al pin 4
#define Pin_H1 5 // H1 conectado al pin 5
// Lectura de dispositivo de entrada y salida
#define S1 digitalRead(Pin_S1) // Lectura del estado de S1
#define S2 digitalRead(Pin_S2) // Lectura del estado de S2
#define K1 digitalRead(Pin_K1) // Lectura del estado de K1
#define H1 digitalRead(Pin_H1) // Lectura del estado de H1
// Activación/desactivación de dispositivos de salida
#define Activar_K1 digitalWrite(Pin_K1,HIGH)
#define Desactivar_K1 digitalWrite(Pin_K1,LOW)
#define Encender_H1 digitalWrite(Pin_H1,HIGH)
#define Apagar_H1 digitalWrite(Pin_H1,LOW)

// Variables

Docente: Juan L. Merlo G.


Microcontroladores I

void setup()
{
// Configuración de pines
pinMode(Pin_S1,INPUT); // Entrada para S1
pinMode(Pin_S2,INPUT); // Entrada para S2
pinMode(Pin_K1,OUTPUT); // Salida para K1
pinMode(Pin_H1,OUTPUT); // Salida para H1
}
void loop()
{
// si se da el caso en que el sensor S1 de señal y Pulsador S2, sirena y lámpara estén apagados activar Lámpara y Sirena
if(S1&&!K1&&!H1&&!S2)
{
Activar_K1;Encender_H1;
}
// si se da el caso en que Pulsador S2 sea activado y sensor S1 desactivado se apaga lámpara y sirena
if(S2&&!S1)
{
Desactivar_K1;Apagar_H1;
}
// si se da el caso en que Pulsador S2 sea activado y sensor S1 siga activado se apaga solo sirena
if(S2&&S1)
{
Desactivar_K1;
}
// Cuando se desactive S1 luego del reconocimiento de alarma, se apagará lámpara tambien
if(!S2&&!S1&&H1&&!K1)
{
Apagar_H1;
}
}

Docente: Juan L. Merlo G.


Microcontroladores I

Diagrama de Statechats

Programa método statecharts

/***********************************************************************
* Programa: sistema de alarma
* Descripción: Programar un microcontrolador para controlar un
* sistema de alarma. - Si se activa el sensor S1, el sistema
* enciende la lámpara H1 y la sirena K1 indicando que se
* ha producido la condición de alarma. Una vez activada la alarma,
* es necesario presionar el pulsador S2 para realizar el
* reconocimiento de la alarma. Si al presionar S2 el sensor S1 ya
* se hubiera desactivado, entonces ambas la lámpara H1 y la sirena
* K1 se apagarán y el sistema quedará en condiciones iniciales
* nuevamente. De lo contrario, si al presionar S2 el sensor S1
* continúa activado, entonces la sirena K1 debe apagarse y la lámpara
* H1 seguirá encendida en tanto el sensor permanezca activado.
* S1: Sensor_S1 (activo alto) -> Pin 2
* S2: Pulsador N.A. de reconocimiento de alarma (activo alto) -> Pin 3
* K1: Relé de control de sirena -> Pin 4
* H1: Lámpara señalizadora -> Pin 5
* Autor: B.E.C.B.
* Fecha: 15/06/23

Docente: Juan L. Merlo G.


Microcontroladores I

***********************************************************************/

// Definiciones y constantes
// Pines de entrada y salida
#define Pin_S1 2 // S1 conectado al pin 2
#define Pin_S2 3 // S2 conectado al pin 3
#define Pin_K1 4 // K1 conectado al pin 4
#define Pin_H1 5 // H1 conectado al pin 5
// Lectura de dispositivo de entrada y salida
#define S1 digitalRead(Pin_S1) // Lectura del estado de S1
#define S2 digitalRead(Pin_S2) // Lectura del estado de S2
#define K1 digitalRead(Pin_S4) // Lectura del estado de K1
#define H1 digitalRead(Pin_S5) // Lectura del estado de H1
// Activación/desactivación de dispositivos de salida
#define Activar_K1 digitalWrite(Pin_K1,HIGH)
#define Desactivar_K1 digitalWrite(Pin_K1,LOW)
#define Encender_H1 digitalWrite(Pin_H1,HIGH)
#define Apagar_H1 digitalWrite(Pin_H1,LOW)
// Estados del statechart
#define Apagado 0
#define Alarma_1 1
#define Alarma_2 2

// Variables
unsigned char Estado; // Variable de estado para el statechart

void setup()
{
// Configuración de pines
pinMode(Pin_S1,INPUT); // Entrada para S1
pinMode(Pin_S2,INPUT); // Entrada para S2
pinMode(Pin_K1,OUTPUT); // Salida para K1
pinMode(Pin_H1,OUTPUT); // Salida para H1
// Inicialización
Estado=Apagado; // Definr estado inicial
}

void loop()
{

Docente: Juan L. Merlo G.


Microcontroladores I

// Estado: Apagado. El sistema de alarma se encuentra en condicion de espera


if(Estado==Apagado)
{
// Transiciones
// Si hay señal en el sensor 1
if(S1)
{
Activar_K1; // Enciende la sirena
Encender_H1; // Encender lámpara
Estado=Alarma_1; // Cambiar de estado
}
}
// Estado: Alarma_1. El sistema de alarma entra en condicion de alarma
if(Estado==Alarma_1)
{
// Transiciones
// Si hay señal en el pulsador s2 para reconocimiento de alarma y ya esta desactivado el Sensor s1
if(S2 && !S1)
{
Desactivar_K1; // Apagar sirena
Apagar_H1; // Apagar lámpara
Estado=Apagado; // Cambiar de estado
}
// Transiciones
// Si hay orden de parada o si el portón se abre completamente
if(S2 && S1)
{
Desactivar_K1; // Apagar sirena
Estado=Alarma_2; // Cambiar de estado
}
}
// Estado: Alarma_2. Entra en condicion de reconocimiento de alarma con la lampara encendida
if(Estado==Alarma_2)
{
// Transiciones
// Hasta que se desactive el sensor 1, no se pagara la lampara H1
if(!S1)
{
Apagar_H1; // Apagar lámpara

Docente: Juan L. Merlo G.


Microcontroladores I

Estado=Apagado; // Cambiar de estado

}
}

Docente: Juan L. Merlo G.

También podría gustarte