Está en la página 1de 8

PROYECTOS CON INTERRUPTORES

Un escenario tpico en el mundo de microcontrolador consta del procesamiento de una entrada, para establecer una salida. Leer entradas de un nmero de fuentes es muy importante. La entrada en un sistema puede ser analgica, que vara con el voltaje, o digital, que es verdadera o falsa. Interruptores u otros dispositivos pueden dar seales al microcontrolador como 0 lgico o 1. Aqu vamos a hablar de la conexin de interruptores de pulsar para varias lneas E / S del microcontrolador. Los Interruptores pueden ser conectados en una de las dos maneras: Activo. Esto significa que cuando se pulsa un interruptor, se conecta a la lnea I / O a VCC o 5V en lnea, para dar un 1 lgico. Lnea Baja. Esto se conoce como activos de alta, lo contrario es poco activa. Sin embargo, a fin de evitar una la lnea abierta, se conecta la lnea utilizando resistencias a GND.

El esquema tiene 5 interruptores de entrada. Estos interruptores estn configurados como activos. As, se han asociado resistencias conectadas a VCC. La lnea correspondiente a leer 1 lgico, cuando el interruptor NO se presiona y 0 lgica cuando est siendo presionado. La lnea especificada debe ser declarada como digital y como entrada antes de usar el interruptor.

Ejercicio 1. Device=18F4550 XTAL=20 ALL_DIGITAL=true Output PORTC Input PORTA.0 Symbol LED = PORTC.0 Symbol SW1 = PORTA.0 Low LED Loop: If SW1=0 Then DelayMS 300 High LED End If GoTo Loop

En este programa se supervisa a PORTA.0 asignando a la lnea un interruptor SW1. Cuando el interruptor est desactivado la lnea lee un 1 lgico, tan pronto como se pulsa el interruptor y s IF es ejecutado, la lnea lee 0 lgico y ejecuta las instrucciones que se adjuntan en la estructura del IF... End IF.


Observe el pequeo retraso de DelayMS 300, se ha hecho as, para que una vez que activado el interruptor sea detectado, se encienda el led ubicado en PORTC.0, permaneciendo en este estado una vez se libera el interruptor.

Circuito EJERCICIO 1.

Hgalo usted mismo 1. Hacer un programa que deba encender el LED y en cada pulsacin de un botn lo apague. 2. Hacer un programa que encienda un LED cuando se pulsa SW1 y lo apague cuando se pulsa SW2. 3. Se desea que al pulsar SW1 se prenda un LED y al soltar SW1 se apague el LED. 4. Se desea que al pulsar SW1 se prenda un LED0 y se apague un LED1, y si se pulsa SW2 se prende LED1 y se paga LED0. 5. Se desea que al pulsar SW1 se prendan todas las lmparas LEDS ubicadas en PORTA del PIC 18F4550, y al soltar SW1 se apaguen.

Ejercicio 2.

Circuito EJERCICIO 2, 3, 4,5. Device=18F4550 XTAL=20 ALL_DIGITAL=true Output PORTC Input PORTA.0 Input PORTA.1 Symbol LED = PORTC.0 Symbol SW1 = PORTA.0 Symbol SW2 = PORTA.1 Dim x As Byte x=100 Low LED Loop: DelayMS x* 10 Toggle LED If SW3=0 Then


x=x+5 DelayMS 200 EndIf If SW4=0 Then x=x-5 DelayMS 200 EndIf GoTo Loop Este programa lee dos interruptores, SW1 y SW2, y cuando se detecta que son activados se incrementa o disminuye el valor de una variable x por 5. A su vez la X se utiliza en la demora de activacin del LED ubicado en PORTC.0. As, la velocidad de parpadeo del LED se puede cambiar pulsando SW1 o SW2. Rebote de Pulsacin Cuando se pulsa un botn, los contactos hacen una conexin a corto (1 a 20 ms). El Comando Button evita este ruido para ser interpretado como una accin ms del interruptor, realizando un retraso despus de leer el estado de entrada. En las aplicaciones del mundo real, los botones se suponen que deben realizar ms que una sola activacin. El software soporta una variedad de maneras de pulsar un botn. Por ejemplo, en el caso de la seleccin de un valor de entrada, cuando se pulsa el botn se supone incrementar el nmero, sin embargo, si se pulsa un cierto perodo, comienza a comportarse como si el botn se activara varias veces. Esto se llama repeticin automtica caracterstica. PROTON proporciona un comando llamado Button. Este comando supervisa un pin especfico de un puerto para la entrada, lee el valor como activos de baja o alta, tambin acepta un nmero que es el retraso de espera, despus de que una repeticin automtica sea publicada. La frecuencia de repeticin automtica tambin puede ser mencionada en la declaracin. Ejercicio 3. Device=18F4550 XTAL=20 ALL_DIGITAL=true Output PORTC Input PORTA.0 Input PORTA.1 Symbol LED = PORTC.0 Symbol SW1 = PORTA.0 Symbol SW2 = PORTA.1 Dim x As Byte x=0 loop: Button SW1, 0, 100, 250, x, 0, aa Toggle LED DelayMS 100 aa: GoTo loop

Este programa utiliza el comando Button para leer el estado de un botn, SW1. Si se pulsa el botn, se alterna el LED, si se mantiene pulsado el botn, se iniciar la repeticin automtica despus de una pequea demora. Adems de los botones, muchos tipos de interruptores, como puentes o conmutadores DIP pueden ser utilizados en el de hardware para indicar varias configuraciones. Se puede leer como cualquier cambio, como 0 lgico o 1, dependiendo de la configuracin del hardware. Lectura de una combinacin de botones

A veces, en un programa es necesario leer una combinacin de botones, esto se utiliza para ampliar la gama de capacidades de entrada, as como proporcionar un mecanismo de seguridad para funciones importantes. La combinacin se puede leer en la misma lnea, con el uso del operador AND, o como IFS anidados. Ejercicio 4. Device=18F4550 XTAL=20 ALL_DIGITAL=true Output PORTC Input PORTA.0 Input PORTA.1 Symbol LED = PORTC.0 Symbol SW1 = PORTA.0 Symbol SW2 = PORTA.1 loop: If SW1=0 And SW2=0 Then Toggle LED DelayMS 300 EndIf GoTo loop Este programa har un seguimiento del interruptor SW1 y SW2. Se cambiar el estado del LED slo si se pulsan las dos teclas. En una segunda situacin queremos que SW2 preceda a SW1. Ejercicio 5. Device=18F4550 XTAL=20 ALL_DIGITAL=true Output PORTC Input PORTA.0 Input PORTA.1 Symbol LED0 = PORTC.0


Symbol LED1 = PORTC.1 Symbol SW1 = PORTA.0 Symbol SW2 = PORTA.1 loop: If SW1=0 Then High LED1 DelayMS 2000 If SW2=0 Then DelayMS 200 Toggle LED0 EndIf Low LED1 EndIf GoTo loop Este programa se configura SW1 como interruptor principal, cuando se activa, se cambia de estado el LED1 (PORTC.1) y espere dos segundos, esto da tiempo a la activacin de SW2, al final de 2 segundos que se comprobar si SW2 sigue presionado, entonces, se activar el LED0. Sea o no SW2 presionado, en lapso de 2 segundos, el LED1 se apagar, y el ciclo se repite. Este tipo de mecanismo, asegura que una determinada secuencia de teclas presionadas antes de una accin importante, como apagar un motor etc. es llevado a cabo.

PINES ESPECIALES PARA CONECTAR INTERUPTORES

El PORTB.0 de interrupcin Se puede ubicar un interruptor de uso general, situado en PORTB.0. Aunque puede funcionar como un interruptor normal, descrito anteriormente, el PORTB.0 puede ser configurado para desarrollar un procedimiento interno de la interrupcin cada vez que se produce un cambio, en el PIN. Vamos a hablar de esto ms adelante en la seccin correspondiente. Aqu slo quiero mencionar que este PIN puede ser utilizado no slo como interruptor de entrada de uso general, sino tambin como un medio de prueba de la interrupcin.

El PORTA.4 T0CKI

Tambin puede ser utilizado de otra forma. El PIN PORTA.4 puede ser configurado como entrada para el Timer 0. Timer 0 puede ser configurado para contar el nmero de impulsos procedentes de PORTA.4. Con el fin de experimentar con esto podemos utilizar in interruptor para dar impulsos externos para este contador o hacer una fuente externa, como un oscilador basado en 555, y conectarlo a este conector, para valorar los acontecimientos externos, que se pueden contar.

Ejercicios propuestos
En los siguientes ejercicios escribir las decisiones y realizar la simulacin en PROTEUS. 1. Se tienen 3 pulsadores SW1, SW2 y SW3, un LED0, se desea que al pulsar solo dos se prenda LED0, y si no se pulsa ninguno se apague LED0. 2. Se tienen 2 lmparas L0 y L1, dos pulsadores SW1 y SW2, se desea que al pulsar SW1 se prendan las dos lmparas y se apaguen si se pulsa SW2.

3. Se tienen 4 pulsadores SW0 a SW3, una lmpara L0, se desea que al pulsar SW0 y SW1 o SW22 y SW3 se prenda L0 en otro caso se apague. 4. Se tiene A=1, B=10, C=4, si A+B>3 cargar en C 25, si A>C or B<C entonces cargue en A 34 y en B 12. Mostrar resultado con leds.

5. Se tienen 4 pulsadores Sw1 a Sw4, y tres lmparas L1 a L3, se desea que L1 solo prenda cuando se pulsen al menos dos, L2 solo prende cuando se pulsen solo 3, L3 solo prende si L1 y L2 estn prendidas.

También podría gustarte