practica 3 interfaces

20
DESARROLLO PRÁCTICO En esta práctica se desarrolló un sistema de seguridad donde los puntos a tomar en cuenta son los siguientes: 1.- Durante el día, cuando se activa el detector de paso y la alarma está apagada, el sistema activa el motor para abrir la puerta y lo apaga después de 10 segundos. 2.- Durante el día, cuando se activa el detector de paso y la alarma está encendida, no se activa el motor para abrir la puerta, se activa el zumbador y permanece activo hasta que se apaga la alarma. 3.- Durante la noche, cuando se activa el detector de paso y la alarma está apagada, el sistema activa el motor para abrir la puerta, enciende el foco y los apaga después de 10 segundos. 4.- Durante la noche, cuando se activa el detector de paso y la alarma está encendida, no se activa el motor para abrir la puerta, enciende el foco, activa el zumbador y los apaga hasta que se apaga la alarma.

Upload: zack-d-carrillo

Post on 13-Feb-2015

30 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Practica 3 Interfaces

DESARROLLO PRÁCTICOEn esta práctica se desarrolló un sistema de seguridad donde los puntos a tomar en cuenta son los siguientes:

1.- Durante el día, cuando se activa el detector de paso y la alarma está apagada, el sistema activa el motor para abrir la puerta y lo apaga después de 10 segundos.

2.- Durante el día, cuando se activa el detector de paso y la alarma está encendida, no se activa el motor para abrir la puerta, se activa el zumbador y permanece activo hasta que se apaga la alarma.

3.- Durante la noche, cuando se activa el detector de paso y la alarma está apagada, el sistema activa el motor para abrir la puerta, enciende el foco y los apaga después de 10 segundos.

4.- Durante la noche, cuando se activa el detector de paso y la alarma está encendida, no se activa el motor para abrir la puerta, enciende el foco, activa el zumbador y los apaga hasta que se apaga la alarma.

La imagen anterior se muestra el diagrama de bloques de sistema que se utilizó en esta práctica.

Page 2: Practica 3 Interfaces

Tomando en cuenta los puntos anteriores se usaron los siguientes elementos:

1.- Sensor de paso.

2.- Detector de luz día.

3.- Interruptor de alarma.

4.- Motor.

5.- Foco (sustituido por un led)

6.- Buzzer.

Como se puede ver los tres primeros son nuestros sensores y los tres siguientes

los actuadores.

En esta imagen se muestra el circuito que se utilizó en la práctica. Ademas de los sensores y actuadores.

Interruptor de alarmaSensor de día

Sensor de paso

Led (foco)

74ls244

Page 3: Practica 3 Interfaces

Circuito integrado 74ls04

El integrado 74ls04 se utilizó para invertir la señal de salida del sensor de paso.

También se utilizó el Integrado 74ls244 como buffer de 8 bits, para proteger el puerto paralelo.

Pin 2

Pin 3

Pin 4

Vcc

GND

GND

GND

Motor

Buzzer

Foco

Sensor de paso

Pin 12

Detector de luz de día

Pin 13

Pin 15

Interruptor de alarma

Page 4: Practica 3 Interfaces

Del puerto paralelo se tiene la siguiente tabla de las pines que tiene.

De la siguiente tabla se seleccionaron los pines de entrada 12, 14 y 15 y de salida los pines 2, 3, 4.

Los pines de escritura (2-9) su dirección es Base+0 y para los pines de lectura de la dirección es Base+1.

Page 5: Practica 3 Interfaces

Los pines que se utilizaron se muestran en la siguiente tabla, como se puede ver los pines de entrada utilizados tienen como característica que se encuentran en 0 normalmente, para facilitar la programación.

No usado

No usado

Sensor de paso

Detector de luz de día

Interruptor de alarma

No usado

No usado

No usado

Pin 11 10 12 13 15 NA NA NADato D7 D6 D5 D4 D3 D2 D1 D0Valor 0 1 0 0 0 1 1 1

Para los actuadores se utilizaron los pines de salida 2, 3 y 4.

No usado

No usado

NO usado

No usado

No usado

Foco Buzzer Motor

Pin 9 8 7 6 5 4 3 2valor 27 26 25 24 23 22 21 20

dato D7 D6 D5 D4 D3 D2 D1 D0

En la siguiente tabla se muestra como se interpretan los 1 y los 0 de las tablas anteriores. Tomando en cuenta esto se realizó el algoritmo, además se hicieron ajustes en la salida del sensor de paso ya que era opuesto al detector de luz de día y al interruptor de alarma, para esto se utilizó el circuito integrado 74ls04 que son compuertas Not.

1 Presencia de voltaje

0 Ausencia de voltaje

Page 6: Practica 3 Interfaces

Tabla de verdad.

sensores actuadoresSensor de

pasoDetector de luz de día

Interruptor de alarma

Foco Buzzer Motor

o 1 0 0 0 01 1 0 0 0 11 1 1 0 1 00 0 0 0 0 01 0 0 1 0 11 0 1 1 1 0

El algoritmo utilizado fue el siguiente:

1.- Inicio2.- Leer puerto3.- Si se lee un 01010111 ir a la línea 2 si no continua.4.- Si se lee un 01011111 ir a la línea 2 si no continua.5.- Si se lee un 01110111 ir a la línea 11 si no continua. 6.- Si se lee un 01111111 ir a la línea 12 si no continua.7.- Si se lee un 01000111 ir a la línea 2 si no continua.8.- Si se lee un 01001111 ir a la línea 2 si no continua.9.- Si se lee un 01100111 ir a la línea 13 si no continua.10.- Si se lee un 01110111 ir a la línea 14. Si no ir a línea 18.11.-Escribir en puerto paralelo un 00000001 durante 10 segundos e ir a la línea 2.12.-Escribir en puerto paralelo un 00000010 e ir a la línea 15.13.-Escribir en puerto paralelo un 00000101 durante 10 segundos e ir a la línea 2.14.- Escribir en puerto paralelo un 00000110 e ir a la línea 15.15.- Leer puerto 16.- Si se lee un 01010111 escribir en puerto un 00000000 e ir a la línea 2.17.- Si se lee un 01000111 escribir en puerto un 00000000 e ir a la línea 2.18.- Fin

Page 7: Practica 3 Interfaces

La actividad antes de la programación que se realizó en esta práctica fue la identificación de la dirección base del puerto paralelo asignada por la BIOS de la computadora utilizada. Para esto se utilizó el programa Debug.exe. En la plataforma en la plataforma Windows Xp desde una ventana del símbolo del sistema se introduce la palabra debug, el programa responde colocando un signo de menos “-” en donde tecleamos sin dejar espacios en blanco d040:08l8 y presionando la tecla entrar, y así el programa indica una serie de números que son las direcciones para los puertos paralelos disponibles en nuestro sistema. La siguiente imagen muestra el resultado obtenido:

Se puede observar una serie de números de dos dígitos, ocho en total, se trata del volcado de memoria que empieza en la dirección 40:0008h. Los primeros seis pares de números representan las direcciones base para los puertos paralelo instalados, en la imagen de arriba se aprecia que el único puerto paralelo de la computadora está en la dirección 0x378h (78 03). Los números están invertidos porque Intel almacena tal información en un formato de "byte de bajo orden - byte de alto orden".

Page 8: Practica 3 Interfaces

El programa utilizado esta hecho en C++. A continuación se muestra el código.

//paralelo.cpp#include <stdlib.h>#include <iostream.h>#include <dos.h>#include <conio.h>

main(){ int bandera=0;// bandera para esperar 10 s para reiniciar sistema. clrscr(); outportb(0x378,0);// se escribe un 0 en el Puerto paralelo.

for(;;)// ciclo infinito. { if(bandera==1) { cout<<"espera 10 s para reiniciar\n"; delay(10000); bandera=0; } int in; in=inportb(0x378+1);//lectura de puerto paralelo

if(in==119)// si es de día y esta desactivada la alarma { cout<<"motor se apagara en 10 segundos \n";

outportb(0x378,1);//motor delay(10000); outportb(0x378,0);

} if(in==127)//si es de dia y esta activada la alarma {

cout<<"zumbador\n"; int in1; outportb(0x378,2);//zumbador for(;;) { in1=inportb(0x378+1); if(in1==119||in1==103) {

outportb(0x378,0);bandera=1;break;

} }

}

Page 9: Practica 3 Interfaces

if(in==87)// si es de noche y esta desactivada la alarma {

outportb(0x378,5);//motor y foco cout<<"el motor y foco se apagara en 10 segundos\n"; delay(10000); outportb(0x378,0);

}

if(in==95)// si es de noche y y esta activada la alarma {

cout<<"foco zumbador\n"; outportb(0x378,6);//foco, zumbador for(;;) {

int in1; in1=inportb(0x378+1); if(in1==87||in1==71) {

outportb(0x378,0); bandera=1; break;

} }

} }}

En este código se puede ver que esta dentro de un ciclo infinito que lee el puerto paralelo cada ciclo. Si se lee del puerto paralelo un 119(01110111 en binario) se escribe en el puerto un 1(00000001), si se lee un 127(01111111) se escribe un 2 (00000010), si se lee un 87(01100111) se escribe un 5(00000101), si se lee un 95(01110111) se escribe un 6(00000110).

En el caso de que se lea un 127 y un 6 significa que esta activa la alarma, así que entra en otro ciclo infinito, y se rompe el ciclo hasta que se lee un 119 cuando es de dia y un 103 cuando es de noche. Y se activa una bandera para esperar 10 segundos para reiniciar el sistema.

Page 10: Practica 3 Interfaces

En las siguientes imágenes se muestra el resultado de la práctica.

En esta imagen se ve el momento en el que se pone una hoja entre el fototransistor infrarrojo y el led infrarrojo, para así enviar una señal de que el sensor de paso se ha activado.

En esta imagen se muestra el motor (ventilador), que se activa cuando se detecta que el sensor de paso ha sido activado y la alarma esta desactivada, tanto de día como de noche. A diferencia que de noche se activa junto con el Foco.

Page 11: Practica 3 Interfaces

Si es de día, la alarma esta desactivada y el sensor de paso se activa, el programa activa el motor, aquí se ve que escribe en la pantalla que el motor está activado.

El buzzer se activa si esta activada la alarma, sea de noche o de día y se activa el sensor de paso.

Page 12: Practica 3 Interfaces

El foco se activa si es de noche, se activa el sensor de paso y este o no activada la alarma.

En esta imagen se muestra la pantalla donde se puede observar que se ha activado el motor, después el zumbador y se espera 10 segundos para reiniciar el sistema; se vuelve a activar el motor, posteriormente se vuelve a activar el motor y el foco y se espera 10 segundos para que se apaguen. Después se activan el foco y el zumbador y se espera 10 segundos para reiniciar.

Led que representa el foco

Page 13: Practica 3 Interfaces

CONCLUSIONESEn esta práctica se realizó un pequeño sistema de seguridad de acceso con sensores, actuadores y un programa que se ejecuta desde una computadora.Los circuitos de los sensores y actuadores ya estaban armados, pero se tuvieron que desarmar para reducir el espacio ocupado en los tres protoboards utilizados.Se logró conectar 3 sensores (sensor de paso, detector de luz de día, interruptor de alarma) con 3 actuadores (motor, buzzer y foco) a través de una computadora (por puerto paralelo) y un pequeño programa.

El mayor obstáculo que se presentó en esta práctica fue la programación utilizando como entrada y salida de datos al puerto paralelo, para esto se utilizó un lenguaje de alto nivel, C++, que facilito esta tarea.

En esta práctica se adquirió un poco experiencia para la construcción de interfaces conectadas a aun computadora. En ocasiones será necesario obtener datos y en ese caso es útil este tipo de sistemas que hacen uso de una computadora ya que en ella se pueden almacenar y procesar. En esta práctica solo se toman los datos como señales y al tener una señal se activa un actuador.

Se utilizó un buffer (circuito integrado 74ls244) para proteger un poco al puerto paralelo y la tarjeta madre, ya que con un corto circuito que ocurriera afectaría al puerto paralelo e incluso a la tarjeta madre.

La programación se realizó en un computadora con un sistema operativo Xp profesional, y uno de los problemas de utilizar este sistema operativo fue que los puertos están protegidos, para esto utilizamos un programa que encontramos en internet llamado UserPort para así poder leer y escribir en el puerto paralelo.

Uno delos problemas que se nos presentaron fue que el fototransistor detectaba la luz del foco que se utilizó para simular el día y como el detector de luz de día se encontraba cerca del circuito del sensor de paso se tuvo que poner un objeto plano para obstaculizar la luz del foco.Otro de los problemas que se nos presentaron fue que en el programa se tomó como señal a un 1(voltaje) y como ausencia de señal al 0(ausencia de voltaje), y el sensor de paso tenía como señal de que había un objeto entre el fotodiodo y el fototransistor un 0(ausencia de voltaje), se tuvo que utilizar una compuerta Not (circuito integrado 74ls04).El circuito 74ls04 también se utilizó para invertir la señal en uno de los circuitos de un relevador ya que también estaba invertido.