Está en la página 1de 25

Playa de Estacionamiento Acondicionado

Curso: Sensores y Actuadores Profesor: Ing. Machuca Mines Integrantes: Inga Celis, Javier Morales Sandoval, Jhoel Parrilla Espinoza, Max Saldaa Pacotaype, Randy Okahuara Contreras, Daniel Aula: E-403

2012

INTRODUCCIN

En este proyecto utilizaremos los principios de funcionamiento de diversos dispositivos electrnicos aplicados a sensorificar la cantidad de autos en una playa de estacionamiento; as como tambin la temperatura ambiente, determinado por un rango especificado. Cuando el parqueo esta lleno se dar el aviso de llenado respectivo, para lo cual el PIC que vamos a utilizar, estar haciendo un conteo de los autos que ingresan y abandonan la playa. Cuando la temperatura actual no est dentro del rango especfico, una vez detectado por el sensor, automticamente se encendern los actuadores para para ayudar regularizar la temperatura deseada; tanto para calentar como para enfriar el ambiente.

OBJETIVOS

Aprender el funcionamiento, rendimiento y eficiencia de sensores y actuadores; como tambin los aplicativos para diversas reas del campo de la ingeniera.

Sensores y Actuadores

NDICE

Introduccin

Objetivos

Compendio Terico

Simulacin sensor de temperatura

12

Simulacin playa de estacionamiento

13

Cdigo Bassic

14

Imgenes

24

Conclusiones

25

Bibliografa

25

Sensores y Actuadores

COMPENDIO TERICO

TERMMETRO DIGITAL CON EL PIC 16F873A: Para esta prctica necesitaremos dos tipos de sendores, el sensor de temperatura LM35 y el CNY70. El LM35 presenta en subpin OUT una variacin de 10mV por grado centgrado, su alimentacin puede ser de 4 a 30Voltios, y su rango de temperatura a sensar entre -55C hasta 150 C. Para medir la temperatura se conecta el pin out del LM35 al puerto A.0, el cual est configurado como conversor A/D a 10 bits, este valor se almacena en la variable dato que tiene capacidad de 2 bytes (16 bits), el cual se lo divide para 128, debido a que la variable del conversor A/D de 10 bits lo presenta en 16 bits, de la siguiente manera: 1111111111000000, los 6 bits que contienen ceros se los debe ignorar, ya que slo necesitamos los 8 bits del 1er byte ms 2bits del segundo byte, si este dato lo dividimos para 64 conseguiremos eliminar los 6 bits que corresponde a los ceros, de esta manera tendremos el dato a 10 bits, es decir el C A/D mostrara como valor mximo 1024, esto es una resolucin de 5mV, pero como el LM35 tiene incrementos de 10mV, debemos bajar la resolucin a 9 bits y eso se consigue dividiendo para 128, lo cual elimina 7 bits del 2do byte, de esta manera el valor ms alto sera 512, esto es lo ms cercano a la escala del LM35. El proyecto funciona de la siguiente manera: si la temperatura permanece entre 20C y 24C ninguno de los rels se activa, pero si la temperatura no se encuentra entre estos 2 rangos, se activa el rel que le corresponde, sea para calentar o enfriar el ambiente, si deseamos modificar los rangos de temperatura, presionamos el pulsador E, con los otros 2 botones aumentamos o disminuimos la temperatura mnima a comparar, y una vez que estemos de acuerdo presionamos la tecla E nuevamente, luego nos pide programar la temperatura mxima, procedemos igual que el caso anterior y cuando presionemos la tecla E, parpadear tres veces el led, indicando que los nuevos valores ya fueron guardados en la memoria no voltil.

Circuito para sensar temperatura Sensores y Actuadores 4

MATERIALES -1 PIC16F877A -1 LCD 2 x 16 -1 sensor de temperatura LM35 -1 resistencia de 10 -1 resistencia de 330 -1 resistencia de 10 K -6 resistencias de 4,7 K -1 potencimetro de 10 K -1 led -1 cristal oscilador de 4 MHZ -2 condensadores cermicos de 22pF -2 rels 12 V. -2 diodos rectificadores 1N4007 -2 transistores 2N3904. Descripcin de materiales elementales PIC16F873A:

Sensores y Actuadores

Caractersticas del PIC16F873A

Sensores y Actuadores

Sensores y Actuadores

Funcionamiento de los puertos PIC16F873A

Sensores y Actuadores

Modulo Conversor Analgico a digital (A / D) del Pic16f873a

El analgico a digital (A / D) Mdulo convertidor cuenta con cinco insumos para los dispositivos de 28 pines y ocho para el 40/44-pin dispositivos. La conversin de unos resultados de seales analgicas de entrada en un correspondiente de 10-bit nmero digital. El mdulo A / D tiene entrada de referencia de alta y baja tensin, que es el software seleccionable a alguna combinacin de VDD, VSS, RA2 o RA3. El convertidor A / D tiene una caracterstica nica de ser capaz para operar mientras el dispositivo est en modo de suspensin. A operar en modo de espera, el reloj de A / D debe ser derivado del oscilador interno de A / D's RC. El mdulo A / D tiene cuatro registros. Estos registros son: A/D Registro Resultado altos (ADRESH) A/D Registro Resultados bajos (ADRESL) A/D de registro de control 0 (ADCON0) A/D de Registro de Control 1 (ADCON1)

El registro ADCON0, que se muestra en el Registro de 11-1, controla el funcionamiento de la A/D mdulo. El registro ADCON1, que se muestra en el Registro de 11-2, configura las funciones de los pines del puerto. Los pines del puerto puede ser configurado como entradas analgicas (RA3 puede ser tambin el voltaje de referencia) o como E / S digital. LM35

Descripcin: El LM35 es un sensor de temperatura con una precisin calibrada de 1C y un rango que abarca desde -55 a +150C. El sensor se presenta en diferentes encapsulados pero el ms comn es el to-92 de igual forma que un tpico transistor con 3 patas, dos de ellas para alimentarlo y la tercera nos entrega un valor de tensin proporcional a la temperatura medida por el dispositivo. Con el LM35 sobre la mesa las patillas hacia nosotros y las letras del encapsulado hacia arriba tenemos que de izquierda a derecha los pines son: VCC - Vout - GND. La salida es lineal y equivale a 10mV/C por lo tanto:

+1500mV = 150C +250mV = 25C -550mV = -55C

Caractersticas Precisin de ~1,5C (peor caso), 0.5C garantizados a 25C. No linealidad de ~0,5C (peor caso). Baja corriente de alimentacin (60uA). Amplio rango de funcionamiento (desde -55 a + 150C). Bajo costo. Baja impedancia de salida.

Su tensin de salida es proporcional a la temperatura, en la escala Celsius. No necesita calibracin externa y es de bajo costo. Funciona en el rango de alimentacin comprendido entre 4 y 30 voltios.

Sensores y Actuadores

Como ventaja adicional, el LM35 no requiere de circuitos adicionales para su calibracin externa cuando se desea obtener una precisin del orden de 0.25 C a temperatura ambiente, y 0.75 C en un rango de temperatura desde 55 a 150 C. La baja impedancia de salida, su salida lineal y su precisa calibracin inherente hace posible una fcil instalacin en un circuito de control. Debido a su baja corriente de alimentacin (60uA), se produce un efecto de autocalentamiento reducido, menos de 0.1 C en situacin de aire estacionario. Funcionamiento: Para hacernos un termmetro lo nico que necesitamos es un voltmetro bien calibrado y en la escala correcta para que nos muestre el voltaje equivalente a temperatura. El LM35 funciona en el rango de alimentacin comprendido entre 4 y 30 voltios. Podemos conectarlo a un conversor Analgico/Digital y tratar la medida digitalmente, almacenarla o procesarla con un Controlador o similar. Usos: El sensor de temperatura puede usarse para compensar un dispositivo de medida sensible a la temperatura ambiente, refrigerar partes delicadas del robot o bien para loggear temperaturas en el transcurso de un trayecto de exploracin. CNY70

Es el primer sensor empezando por la izquierda, el cuadrado de 7mm de lado aproximadamente. Est compuesto por un fotodiodo y un fototransistor como se puede ver en el dibujo sacado del datasheet.

El fotodiodo se encarga de emitir luz cuya intensidad es funcin de la resistencia que pongamos en serie con l y la tensin a la que le alimentemos. El fototransistor se encarga de recibir esta luz cuando se refleja sobre alguna superficie, y dependiendo de la cantidad de luz recibida trabaja en sus distintas regiones y pasa ms o menos intensidad por l. Por lo que podemos detectar distintas superficies en funcin de la luz que reflejen

Sensores y Actuadores

10

Para poder detectar la cantidad de luz recibida por el transistor slo necesitaremos una resistencia en serie con ste, el valor de tensin ledo ser funcin de la intensidad que pasa por el transistor, es decir funcin de la luz recibida. Por lo que el circuito ms simple sera el dela parte superior derecha. El CYN70 enviara el pulso de activacin al PIC si es necesario abrir o cerrar la playa de estacionamiento.

Circuito para Playa de Estacionamiento

Sensores y Actuadores

11

SIMULACIN PARA SENSAR TEMPERATURA

Sensores y Actuadores

12

SIMULACIN PARA PLAYA DE ESTACIONMIENTO

Sensores y Actuadores

13

CODIGO LENGUAJE BASIC ;////////////////////////////////////////////////////////////// ;CONTROL DE PARKEO DE AUTOS CON PIC 16F877 CON SENSOR INFRARROJO ;////////////////////////////////////////////////////////////// ;UNIVERSIDAD TEGNOLOGICA DEL PERU ;CURSO: SENSORES Y ACTUADORES ;DOCENTE: Ing. Machuca Mines ;Integrantes: ;Okawara Contreras ;Parrilla Max ;Saldaa Randy ;Morales Jhoel ;2012 febrero Programa para control de temperatura con LM35:

DEFINE OSC 4 DEFINE LCD_LINES 4 DEFINE LCD_DREG PORTB ; define pines del LCD B4 a B7 DEFINE LCD_DBIT 4 ; empezando desde el Puerto B4 hasta el B7 DEFINE LCD_RSREG PORTB ;define el puerto B para conectar el bit RS DEFINE LCD_RSBIT 2; este es el puerto B3 DEFINE LCD_EREG PORTB ;define el puerto B para conectar el bit Enable DEFINE LCD_EBIT 3 ;este es el puerto B2 Define ADC_BITS Define ADC_CLOCK 10 3 ;Fije nmero de BITS del resultado (5,8,10) ;Fije EL CLOCK (rc = 3) ;Fije el tiempo de muestreo en Us

Define ADC_SAMPLEUS 50

;ADC_SAMPLEUS es el nmero de microsegundos que el programa espera ;entre fijar el canal y comenzar la conversin analogica/digital. TRISA =%1 ; el puerto A.0 es de entrada

ADCON1 = %00001110 ; el puerto A.0 es conversor los dems Digitales dato var WORD ;crear variable dato para guardar

tempbaj var byte tempalt var byte x var byte

Sensores y Actuadores

14

con 223

;g constante 223 este es el ASCII de grados ;nombres para los pines

releF var portC.2 releC var portC.3 led var portC.4 enter var portC.5 bsubir var portC.6 bbajar var portC.7 eeprom 0,[20,24] inicio: for x =1 to 3 HIGH led pause 200 low led pause 200 next READ 0, tempbaj READ 1, tempalt sensar: ADCIN 0, dato

;contenido inicial de la EEPROM ;3 parpadeos del led indica que funciona

; lee la EEPROM 0 y lo guarda en tempbaj ; lee la EEPROM 1 y lo guarda en tempalt

; leer el canal 0 (A0) y guarde en dato

Lcdout $fe, 1 ,"T.mi T.actu T.ma" ;limpiar LCD y sacar texto dato = dato /128 ;el dato dividir para 128= C/AD 9 bits ;Display el decimal de dato ;Display el decimal de tempbaj ;Display el decimal de tempalt

Lcdout $fe,$c6,DEC dato,g,"C" Lcdout $fe,$c0,DEC tempbaj,g,"C" Lcdout $fe,$cc,DEC tempalt,g,"C" for x = 1 to 50

;repetir 50 veces

if enter =0 then grabar1a pause 10 next if dato < tempbaj then calentar ;si dato es<tempbaj ir a calentar if dato > tempalt then enfriar

Sensores y Actuadores

15

low releC : low releF goto sensar calentar: high releC :low releF goto sensar enfriar: high releF : low releC goto sensar grabar1a: gosub soltar grabar1:

;apagar los 2 rels ;continuar sensando

Lcdout $fe, 1 ,"Programar temp." lcdout $fe,$c0,"baja= ",dec tempbaj ,g,"C" pause 100 if bbajar=0 then restar1 if bsubir=0 then sumar1 if enter=0 then grabarA goto grabar1 restar1: gosub soltar ;programa antirrebote de tecla

if tempbaj < 1 then grabar1 tempbaj= tempbaj -1 goto grabar1 sumar1: gosub soltar if tempbaj > 40 then grabar1 tempbaj= tempbaj + 1 goto grabar1 grabarA: gosub soltar

Sensores y Actuadores

16

write 0,tempbaj grabar2:

;escribir en la direccin 0 de la EEPROM

Lcdout $fe, 1 ,"Programar temp." lcdout $fe,$c0,"alta= ",dec tempalt ,g,"C" pause 100 if bbajar=0 then restar2 if bsubir=0 then sumar2 if enter=0 then grabarB goto grabar2 restar2: gosub soltar if tempalt < 5 then grabar2 tempalt= tempalt -1 goto grabar2 sumar2: gosub soltar if tempalt > 50 then grabar2 tempalt= tempalt + 1 goto grabar2 grabarB: gosub soltar write 1,tempalt goto inicio soltar: high led pause 150 low led soltar2: if bbajar=0 then soltar2 if bsubir=0 then soltar2 ;programa antirrebote de tecla ;escribir en la direccin 1 de la EEPROM

Sensores y Actuadores

17

if enter=0 then soltar2 pause 100 return end; Fin de Programa

Programa para control de playa de estacionamiento con CNY70:

LIST p=16F877A INCLUDE <P16F877A.INC> ORG 0x00 ; Inicio de programa CBLOCK 0x20 R_ContA ; Contadores para los retardos. R_ContB ; Contadores para los retardos. R_ContC ; Contadores para los retardos. num ; Numero de Vehiculos en el estacion lleno ; LLeno=1 estacion llena ; Lleno =0 estacion no esta llena ENDC configuracion0 ;RB3 =S1 SENSOR EN LA ENTRADA ;RB4 =S2 SENSOR EN LA SALIDA ;RB0 ALZA BARRERA ;RB1 BAJA BARRERA BCF STATUS,RP0 ; Accede a banco 0 BCF STATUS,RP1 CLRF PORTB ; Limpia PORTB BSF STATUS,RP0 ; Accede a banco 1 movlw b'11011000' movwf TRISB movlw b'00000000' movwf TRISC ;CLRF TRISB ; Configura todas las patitas de PORTB como salidas BCF STATUS,RP0 ; Regresa a banco 0 clrf num clrf lleno inicio movf num,w movwf PORTC btfsc PORTB, 3 goto entrada btfsc PORTB, 4 goto salida goto inicio

Sensores y Actuadores

18

entrada ; C=0 y Z=0 ->si (REG-W) es negativo ; Z=1 si (REG-W)==0 movlw b'00001001' ; Capacidad maxima de estacionamiento 9 subwf num,w btfsc STATUS,Z call full btfsc lleno,0 goto inicio incf num,f call abrirp bsf PORTB, 5 espera1 btfsc PORTB, 3 goto espera1 btfsc PORTB, 4 goto espera1 call cerrarp bcf PORTB, 5 goto inicio

salida clrf lleno decf num,f call abrirp espera2 btfsc PORTB, 3 goto espera2 btfsc PORTB, 4 goto espera2 call cerrarp goto inicio full call Retardo_1s BSF PORTB,2 ;seal de estacion llena call Retardo_1s BCF PORTB,2 call Retardo_1s BSF PORTB,2 call Retardo_1s BCF PORTB,2 bsf lleno,0 return

abrirp; envia un pulso al puerto RB0 BSF PORTB,0 call Retardo_2s Sensores y Actuadores 19

call Retardo_1s BCF PORTB,0 return cerrarp; envia un pulso al puerto RB1 BSF PORTB,1 call Retardo_2s call Retardo_1s BCF PORTB,1 return ;La lnea RA0 de PORTB toma el valor 1, se enciende el LED ; subrutinas de retardo ; RETARDOS de 4 hasta 10 microsegundos --------------------------------------------------; ; A continuacin retardos pequeos teniendo en cuenta que para una frecuencia de 4 MHZ, ; la llamada a subrutina "call" tarda 2 ciclos mquina, el retorno de subrutina ; "return" toma otros 2 ciclos mquina y cada instruccin "nop" tarda 1 ciclo mquina. ; Retardo_10micros ; La llamada "call" aporta 2 ciclos mquina. nop ; Aporta 1 ciclo mquina. nop ; Aporta 1 ciclo mquina. nop ; Aporta 1 ciclo mquina. nop ; Aporta 1 ciclo mquina. nop ; Aporta 1 ciclo mquina. Retardo_5micros ; La llamada "call" aporta 2 ciclos mquina. nop ; Aporta 1 ciclo mquina. Retardo_4micros ; La llamada "call" aporta 2 ciclos mquina. return ; El salto del retorno aporta 2 ciclos mquina. ; ; RETARDOS de 20 hasta 500 microsegundos -----------------------------------------------; Retardo_500micros ; La llamada "call" aporta 2 ciclos mquina. nop ; Aporta 1 ciclo mquina. movlw d'164' ; Aporta 1 ciclo mquina. Este es el valor de "K". goto RetardoMicros ; Aporta 2 ciclos mquina. Retardo_200micros ; La llamada "call" aporta 2 ciclos mquina. nop ; Aporta 1 ciclo mquina. movlw d'64' ; Aporta 1 ciclo mquina. Este es el valor de "K". goto RetardoMicros ; Aporta 2 ciclos mquina. Retardo_100micros ; La llamada "call" aporta 2 ciclos mquina. movlw d'31' ; Aporta 1 ciclo mquina. Este es el valor de "K". goto RetardoMicros ; Aporta 2 ciclos mquina. Retardo_50micros ; La llamada "call" aporta 2 ciclos mquina. nop ; Aporta 1 ciclo mquina. movlw d'14' ; Aporta 1 ciclo mquina. Este es el valor de "K". goto RetardoMicros ; Aporta 2 ciclos mquina. Retardo_20micros ; La llamada "call" aporta 2 ciclos mquina. movlw d'5' ; Aporta 1 ciclo mquina. Este es el valor de "K". ; ; El prximo bloque "RetardoMicros" tarda: ; 1 + (K-1) + 2 + (K-1)x2 + 2 = (2 + 3K) ciclos mquina. Sensores y Actuadores 20

; RetardoMicros movwf R_ContA ; Aporta 1 ciclo mquina. Rmicros_Bucle decfsz R_ContA,F ; (K-1)x1 cm (cuando no salta) + 2 cm (al saltar). goto Rmicros_Bucle ; Aporta (K-1)x2 ciclos mquina. return ; El salto del retorno aporta 2 ciclos mquina. ; ;En total estas subrutinas tardan: ; - Retardo_500micros: 2 + 1 + 1 + 2 + (2 + 3K) = 500 cm = 500 s. (para K=164 y 4 MHz). ; - Retardo_200micros: 2 + 1 + 1 + 2 + (2 + 3K) = 200 cm = 200 s. (para K= 64 y 4 MHz). ; - Retardo_100micros: 2 + 1 + 2 + (2 + 3K) = 100 cm = 100 s. (para K= 31 y 4 MHz). ; - Retardo_50micros : 2 + 1 + 1 + 2 + (2 + 3K) = 50 cm = 50 s. (para K= 14 y 4 MHz). ; - Retardo_20micros : 2 + 1 + (2 + 3K) = 20 cm = 20 s. (para K= 5 y 4 MHz). ; ; RETARDOS de 1 ms hasta 200 ms. -------------------------------------------------------; Retardo_200ms ; La llamada "call" aporta 2 ciclos mquina. movlw d'200' ; Aporta 1 ciclo mquina. Este es el valor de "M". goto Retardos_ms ; Aporta 2 ciclos mquina. Retardo_100ms ; La llamada "call" aporta 2 ciclos mquina. movlw d'100' ; Aporta 1 ciclo mquina. Este es el valor de "M". goto Retardos_ms ; Aporta 2 ciclos mquina. Retardo_50ms ; La llamada "call" aporta 2 ciclos mquina. movlw d'50' ; Aporta 1 ciclo mquina. Este es el valor de "M". goto Retardos_ms ; Aporta 2 ciclos mquina. Retardo_20ms ; La llamada "call" aporta 2 ciclos mquina. movlw d'20' ; Aporta 1 ciclo mquina. Este es el valor de "M". goto Retardos_ms ; Aporta 2 ciclos mquina. Retardo_10ms ; La llamada "call" aporta 2 ciclos mquina. movlw d'10' ; Aporta 1 ciclo mquina. Este es el valor de "M". goto Retardos_ms ; Aporta 2 ciclos mquina. Retardo_5ms ; La llamada "call" aporta 2 ciclos mquina. movlw d'5' ; Aporta 1 ciclo mquina. Este es el valor de "M". goto Retardos_ms ; Aporta 2 ciclos mquina. Retardo_2ms ; La llamada "call" aporta 2 ciclos mquina. movlw d'2' ; Aporta 1 ciclo mquina. Este es el valor de "M". goto Retardos_ms ; Aporta 2 ciclos mquina. Retardo_1ms ; La llamada "call" aporta 2 ciclos mquina. movlw d'1' ; Aporta 1 ciclo mquina. Este es el valor de "M". ; ; El prximo bloque "Retardos_ms" tarda: ; 1 + M + M + KxM + (K-1)xM + Mx2 + (K-1)Mx2 + (M-1) + 2 + (M-1)x2 + 2 = ; = (2 + 4M + 4KM) ciclos mquina. Para K=249 y M=1 supone 1002 ciclos mquina ; que a 4 MHz son 1002 s = 1 ms. ; Retardos_ms movwf R_ContB ; Aporta 1 ciclo mquina. R1ms_BucleExterno movlw d'249' ; Aporta Mx1 ciclos mquina. Este es el valor de "K". movwf R_ContA ; Aporta Mx1 ciclos mquina. R1ms_BucleInterno Sensores y Actuadores 21

nop decfsz goto decfsz goto return

R_ContA,F R1ms_BucleInterno R_ContB,F R1ms_BucleExterno

; Aporta KxMx1 ciclos mquina. ; (K-1)xMx1 cm (cuando no salta) + Mx2 cm (al saltar). ; Aporta (K-1)xMx2 ciclos mquina. ; (M-1)x1 cm (cuando no salta) + 2 cm (al saltar). ; Aporta (M-1)x2 ciclos mquina. ; El salto del retorno aporta 2 ciclos mquina.

; ;En total estas subrutinas tardan: ; - Retardo_200ms: 2 + 1 + 2 + (2 + 4M + 4KM) = 200007 cm = 200 ms. (M=200 y K=249). ; - Retardo_100ms: 2 + 1 + 2 + (2 + 4M + 4KM) = 100007 cm = 100 ms. (M=100 y K=249). ; - Retardo_50ms : 2 + 1 + 2 + (2 + 4M + 4KM) = 50007 cm = 50 ms. (M= 50 y K=249). ; - Retardo_20ms : 2 + 1 + 2 + (2 + 4M + 4KM) = 20007 cm = 20 ms. (M= 20 y K=249). ; - Retardo_10ms : 2 + 1 + 2 + (2 + 4M + 4KM) = 10007 cm = 10 ms. (M= 10 y K=249). ; - Retardo_5ms : 2 + 1 + 2 + (2 + 4M + 4KM) = 5007 cm = 5 ms. (M= 5 y K=249). ; - Retardo_2ms : 2 + 1 + 2 + (2 + 4M + 4KM) = 2007 cm = 2 ms. (M= 2 y K=249). ; - Retardo_1ms : 2 + 1 + (2 + 4M + 4KM) = 1005 cm = 1 ms. (M= 1 y K=249). ; ; RETARDOS de 0.5 hasta 20 segundos --------------------------------------------------; Retardo_20s ; La llamada "call" aporta 2 ciclos mquina. movlw d'200' ; Aporta 1 ciclo mquina. Este es el valor de "N". goto Retardo_1Decima ; Aporta 2 ciclos mquina. Retardo_10s ; La llamada "call" aporta 2 ciclos mquina. movlw d'100' ; Aporta 1 ciclo mquina. Este es el valor de "N". goto Retardo_1Decima ; Aporta 2 ciclos mquina. Retardo_5s ; La llamada "call" aporta 2 ciclos mquina. movlw d'50' ; Aporta 1 ciclo mquina. Este es el valor de "N". goto Retardo_1Decima ; Aporta 2 ciclos mquina. Retardo_2s ; La llamada "call" aporta 2 ciclos mquina. movlw d'20' ; Aporta 1 ciclo mquina. Este es el valor de "N". goto Retardo_1Decima ; Aporta 2 ciclos mquina. Retardo_1s ; La llamada "call" aporta 2 ciclos mquina. movlw d'10' ; Aporta 1 ciclo mquina. Este es el valor de "N". goto Retardo_1Decima ; Aporta 2 ciclos mquina. Retardo_500ms ; La llamada "call" aporta 2 ciclos mquina. movlw d'5' ; Aporta 1 ciclo mquina. Este es el valor de "N". ; ; El prximo bloque "Retardo_1Decima" tarda: ; 1 + N + N + MxN + MxN + KxMxN + (K-1)xMxN + MxNx2 + (K-1)xMxNx2 + ; + (M-1)xN + Nx2 + (M-1)xNx2 + (N-1) + 2 + (N-1)x2 + 2 = ; = (2 + 4M + 4MN + 4KM) ciclos mquina. Para K=249, M=100 y N=1 supone 100011 ; ciclos mquina que a 4 MHz son 100011 s = 100 ms = 0,1 s = 1 dcima de segundo. ; Retardo_1Decima movwf R_ContC ; Aporta 1 ciclo mquina. R1Decima_BucleExterno2 movlw d'100' ; Aporta Nx1 ciclos mquina. Este es el valor de "M". movwf R_ContB ; Aporta Nx1 ciclos mquina. R1Decima_BucleExterno movlw d'249' ; Aporta MxNx1 ciclos mquina. Este es el valor de "K". movwf R_ContA ; Aporta MxNx1 ciclos mquina. R1Decima_BucleInterno Sensores y Actuadores 22

nop ; Aporta KxMxNx1 ciclos mquina. decfsz R_ContA,F ; (K-1)xMxNx1 cm (si no salta) + MxNx2 cm (al saltar). goto R1Decima_BucleInterno ; Aporta (K-1)xMxNx2 ciclos mquina. decfsz R_ContB,F ; (M-1)xNx1 cm (cuando no salta) + Nx2 cm (al saltar). goto R1Decima_BucleExterno ; Aporta (M-1)xNx2 ciclos mquina. decfsz R_ContC,F ; (N-1)x1 cm (cuando no salta) + 2 cm (al saltar). goto R1Decima_BucleExterno2 ; Aporta (N-1)x2 ciclos mquina. return ; El salto del retorno aporta 2 ciclos mquina. ;En total estas subrutinas tardan: ; - Retardo_20s: 2 + 1 + 2 + (2 + 4N + 4MN + 4KMN) = 20000807 cm = 20 s. ; (N=200, M=100 y K=249). ; - Retardo_10s: 2 + 1 + 2 + (2 + 4N + 4MN + 4KMN) = 10000407 cm = 10 s. ; (N=100, M=100 y K=249). ; - Retardo_5s: 2 + 1 + 2 + (2 + 4N + 4MN + 4KMN) = 5000207 cm = 5 s. ; (N= 50, M=100 y K=249). ; - Retardo_2s: 2 + 1 + 2 + (2 + 4N + 4MN + 4KMN) = 2000087 cm = 2 s. ; (N= 20, M=100 y K=249). ; - Retardo_1s: 2 + 1 + 2 + (2 + 4N + 4MN + 4KMN) = 1000047 cm = 1 s. ; (N= 10, M=100 y K=249). ; - Retardo_500ms: 2 + 1 + (2 + 4N + 4MN + 4KMN) = 500025 cm = 0,5 s. ; (N= 5, M=100 y K=249). END ; Fin de programa

Sensores y Actuadores

23

IMPLEMENTACION SENSOR DE TEMPERATURA

Sensores y Actuadores

24

CONCLUSIONES

Diseamos una maqueta el cual simula una playa de estacionamiento; indica si el parque esta vaco, lleno, o hay lugar de estacionamiento disponible. Cuenta con una barrera de proteccin que permite el ingreso y la salida del mvil. Concluimos tambin que pudimos disear un circuito con aplicaciones en diversas reas tanto industrial como domestico; el de controlar la temperatura con un rango determinado por el usuario.

BIBLIOGRAFA

http://www.circuitoselectronicos.org/ http://ww1.microchip.com/downloads/en/devicedoc/39582b.pdf http://proyectoselectronics.blogspot.com/2008/06/sensor-infrarrojo-controlando-unmotor.html

Sensores y Actuadores

25

También podría gustarte