Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
Tarea - Actividad 3
Un programa que controle un sencillo sistema de alarma que funciona como se indica
a continuación.
Esquema pictórico
Esquema circuital
Diagrama de flujo/estados
/***********************************************************************
* 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
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;
}
}
Diagrama de Statechats
/***********************************************************************
* 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_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()
{
}
}