Micro Pic

3

Click here to load reader

description

Microcontroladores

Transcript of Micro Pic

Page 1: Micro Pic

ada integrante de la gran familiaPIC de microchip dispone de pi-nes destinados a interactuar conel entorno. Estos pines de Entra-

da/Salida (E/S, o I/O, por Input/Output eninglés) están agrupados en los denominadospuertos. Como regla general, cuantos máspines posea un microcontrolador, más puer-tos E/S tendrá disponibles. Normalmente, unpuerto consta de un grupo de ocho pines(aunque es posible que tenga menos) y reci-ben como nombre una letra mayúscula:puerto A, puerto B, etc.Internamente, el microcontrolador disponede dos posiciones de memoria de 8 bits aso-ciadas a cada puerto (dos como mínimo;

52 POWERUSR

.hrd

TERCERA PARTE«

EN ESTA OPORTUNIDAD, APRENDEREMOS TODO LO NECESARIO PARAUTILIZAR LOS PUERTOS DE ENTRADA-SALIDA DISPONIBLES EN UNMICROCONTROLADOR. ESTO NOS SERVIRA PARA IMPLEMENTAR TODOSLOS PROYECTOS QUE REALICEMOS EN LAS PROXIMAS EDICIONES.

ARIEL PALAZZESIENTUSIASTA DE LA ELECTRONICA [email protected]

+5V

R110 kΩ

MICROCONTROLADORES:

PUERTOS E/SC

GND

PICR=170 Ω LED

GND

<-------<-------

hay puertos con funcionalidades máscomplejas que necesitan de más). Una deellas define cada pin como entrada o sa-lida, y la otra contiene el valor (0 o 1) decada bit del puerto. Mediante este meca-nismo, es posible utilizar, por ejemplo,tres pines del puerto como entradas y losotro cinco como salidas, o cualquiercombinación que se nos ocurra. Luego,escribiendo (mediante nuestro programa)un “0” o un “1” en la posición de memo-ria adecuada, las salidas adoptan esos va-lores, y los pines configurados como en-tradas se pueden leer como bits de esamisma posición de memoria. Más adelan-te veremos cómo hacer esto desde unprograma. Por cierto, para obtener másinformación sobre la cantidad de entra-das y de salidas de los microcontrolado-res más populares de Microchip (la fami-lia PIC), recomendamos consultar estamisma sección en POWERUSR #25.

INTERACTUANDOCON EL MUNDOSin una conexión de algún tipo con elmundo que lo rodea, el microcontroladores un elemento de muy poca utilidad. Todasu potencialidad proviene de la capacidadde sensar el estado de variables exterioresy de modificarlas, luego de evaluarlas y deaplicar reglas definidas en su programa.Esto es posible mediante los puertos E/S,que son, de algún modo, los “sentidos” delmicrocontrolador. El problema (por llamar-lo de alguna manera) es que estos puertostienen limitaciones, propias de la electróni-ca con la que están construidos: sólo pue-den recibir una tensión de entre 0 y 5 V,pueden entregar una pequeña corriente desalida (apenas suficiente para encender unLED), etc. Es imposible conectar directa-mente un motor, un relé o una lámpara aun puerto de un microcontrolador de la fa-milia PIC. Para lograrlo, es preciso agregaralgún componente que haga de interfaz yrealice el trabajo “pesado”.

CONSTRUCCION DEINTERFACES E/SEn esta nota veremos cómodotar a nuestros microcontro-ladores de entradas y salidassimples pero robustas. De lamisma manera que en una PCel microprocesador se apoyaen los periféricos de E/S paraobtener o entregar datos,nuestro microcontrolador uti-lizará alguno de los dispositi-vos aquí propuestos (o algunode los miles que ustedes mis-mos pueden desarrollar pararesolver alguna situación par-ticular). Empezaremos por losmás sencillos, desde LEDs has-ta motores paso a paso.

LEDPrácticamente cualquier apli-cación que construyamos ne-cesitará de algún LED quesirva para indicar un estadodel microcontrolador. No po-demos conectar directamenteel LED a un pin de un puer-to, ya que la tensión presenteen él es de 5 V (cuando elpuerto tiene un “1” en esebit) y los LEDs típicos fun-cionan con unos 2,5 V/25mA. Para que todo funcionecorrectamente, debemos po-ner un resistor en serie conel LED. Un resistor de entre150 y 220 ohms debería per-mitir que el LED brillara ade-cuadamente. Por supuesto, nodebemos olvidar que losLEDs sólo funcionan cuandola corriente los atraviesa enel sentido correcto, de modoque si los soldamos al revés,no encenderán.El circuito de la conexión deun LED al microcontrolador seilustra en la Figura 1.

PULSADORUna forma de indicar un es-tado determinado al micro-controlador es mediante unpulsador. Cuando definimosun pin de un puerto comoentrada, no es convenienteque ese pin quede “en el ai-

FIGURA 1

FIGURA 2

PIC

52-54-Hard Microcontrol-P27.qxd 12/5/05 2:52 PM Page 52

Page 2: Micro Pic

re”, es decir, conectado a nada. Siempre debemostener la precaución de conectarlo mediante un re-sistor de un valor adecuado a +VCC o a masa. Deotra forma, se obtienen comportamientos erráticosen la entrada. Si pusiéramos un pulsador conectadodirectamente, mientras el pulsador permanecieraabierto, el pin estaría “en el aire”. Por lo tanto, usa-remos el circuito de la Figura 2, en el que se puedever que, cuando el pulsador está abierto, el pin estápuesto a masa mediante R1; y cuando lo pulsamos,el pin se pone a una tensión +VCC a través delpulsador. De este modo, tendremos un “1” en el pincada vez que accionemos el pulsador.

RELELa forma más sencilla de accionar algún dispositivoque funcione con 110 V o 220 V es utilizando unrelé. Como contamos en POWERUSR #21, un relé esun pequeño electroimán que acciona un interrup-tor. Desde el microcontrolador, con una pequeñacorriente accionamos el electroimán, y entre loscontactos del interruptor conectamos el dispositivoque queramos controlar, cuyo consumo de corrientesólo estará limitado por la capacidad de los contac-tos del relé (cualquier micro relé es capaz de mane-jar 10 amperes sin problemas).En general, la corriente que consume el pequeñoelectroimán es demasiado importante como para seractivado directamente por el microcontrolador, porlo que es necesario utilizar un transistor para quemaneje la corriente de la bobina.Existe un efecto llamado “fuerza contraelectromo-triz”, que (sin entrar en detalles) hace que, cuandose desconecte la alimentación de una bobina, éstadevuelva al circuito parte de la corriente que circu-

53POWERUSR

laba por ella. Esta corriente es capaz de quemar el transistor, de modoque se usa un pequeño diodo en paralelo con la bobina del relé para quela “absorba” y proteja al transistor. De manera opcional, a la par del relé,se puede utilizar un LED que nos indique visualmente el estado en queestá el relé (activado o desactivado). En la Figura 3 se muestra el esque-ma de un circuito de esta clase.

DISPLAYS LED DE 7 SEGMENTOSUna de las formas más simples de mostrar información numérica desdeun microcontrolador es utilizar un display LED de 7 segmentos, los clási-cos “8” formados por 7 LEDs rectangulares. La manera más sencilla deconectarlos es dedicarle los 8 bits de un puerto completo a un display deun digito; con 7 bits del puerto, controlar uno de los tramos del “8”, ycon el restante, el punto decimal. Esta forma simplifica mucho el circuitoy es sumamente económica (sólo requiere de un resistor por elemento deldisplay), pero es bastante ineficiente en cuanto al consumo de los escasosrecursos del microcontrolador.Hay un modo mejor de conectar los displays sin que se requiera un puer-to por dígito. Es necesario agregar algo de circuitería adicional, pero sepueden manejar, al menos, cuatro dígitos con un solo puerto. El precioque debemos pagar es un ligero aumento en el tamaño de la plaqueta, ymás o menos unos U$S 3 en componentes adicionales.

+5V

RELE

2N3904

GND

2200 Ω

D11N4004

170 Ω

LED

PIC

<-------

<-------

PIC

GND GND GND

GND

GND

+5V +5V +5V

Display BCDCátodo Común

Display BCDCátodo Común

Display BCDCátodo Común

Display BCDCátodo Común

GND GNDGND+5V

A B C D LE

FE DE ERRATAS

FIGURA 4

FIGURA 3

PICPICPIC

PICPIC

PICPIC

MC14511BI

LT

VDD

f g a b c d e f g a b c d e f g a b c d e f g a b c d e

15

7 1 2 6 5

8

4

3

16

14 13 12 11 10 9f g a b c d e

VssA B C D LE

MC14511BI

LT

VDD

15

7 1 2 6 5

8

4

3

16

14 13 12 11 10 9f g a b c d e

VssA B C D LE

MC14511BI

LT

VDD

15

7 1 2 6 5

8

4

3

16

14 13 12 11 10 9f g a b c d e

VssA B C D LE

MC14511BI

LT

VDD

15

7 1 2 6 5

8

4

3

16

14 13 12 11 10 9f g a b c d e

Vss

Por error, en la edición anterior omitimos el esquemadel circuito de nuestro primer proyecto (encender unLED). Pero no se preocupen, ya que lo pueden conseguiren PowerZone (www.tectimes.com/magazines/power/pwr026/).

52-54-Hard Microcontrol-P27.qxd 12/5/05 2:52 PM Page 53

Page 3: Micro Pic

cuito de la Figura 5, debido a que tiene algunos usos extra,como veremos en futuros artículos de la revista.El funcionamiento es simple: el transistor de potencia BD139hace circular, a través de sí mismo, la corriente necesaria paraexcitar una de las bobinas del PAP, sólo cuando la salida delmicrocontrolador está en “1”. Para hacer girar un motor PAP,necesitamos cuatro circuitos como éste (expuesto en la Figura5), uno para cada bobina, conectados a cuatro pines del mi-crocontrolador. Mediante el programa, iremos activándolos enel orden adecuado para conseguir la dirección y la velocidadde giro que deseemos.

CONCLUSIONHemos visto en esta nota una gran cantidad de teoría, segura-mente, aburrida pero necesaria para desarrollar nuestros pro-yectos. El mes próximo construiremos algunas placas de unsistema modular que nos permitirá empezar a crear nuestrospropios proyectos con el microcontrolador PIC16F84. Debe-mos abordar, también, la programación, y lo haremos desdeAssembler (ASM) y algún lenguaje de alto nivel, para evitarque sea demasiado arduo crear un programa útil.¡Hasta la próxima!

El secreto está en un circuito integrado especialmente diseña-do para el manejo de los displays, el Motorola MC14511 oalguno de sus reemplazos, que se encarga de realizar la “tra-ducción” entre un número binario de 4 bits presente en cua-tro de sus pines y la combinación de LEDs encendidos, pararepresentar ese dígito. Además, cuenta con un pin de habilita-ción, lo que permite construir un rudimentario juego de busesde datos y control para conectar en paralelo varios displays eir seleccionándolos de a uno.El esquema que vemos en la Figura 4 muestra cómo conectarcuatro displays usando sólo un puerto. Con cuatro de los bitsdel puerto, construimos un “bus de datos”, que se encarga dellevar el valor por representar a todos los dígitos. Con losotros cuatro bits creamos un “bus de control” rudimentario,que nos permite seleccionar qué dígito debe mostrar el valor.Supongamos que queremos mostrar el número “8531” en eldisplay. Para lograrlo, primero, mediante el bus de control,debemos seleccionar el primer display. Luego, escribimos enel bus de datos el binario equivalente al “8” (para lo cual po-demos usar la tabla con las características del MC14511). Elvalor presente en el bus de datos únicamente será representa-do en el digito seleccionado (el primero), dado que los tresrestantes –como el MC14511 n tiene el pin LE en “1”– igno-ran el dato presente en el bus. Ese valor se mantiene en eldisplay luego de que el pin LE vuelve a “0”, debido a que elMC14511 posee un latch (memoria) en las entradas. Repitiendo estos pasos para los dígitos “5”, “3” y “1”, y usandocorrectamente el bus de control del microcontrolador, es posibleterminar de escribir el número en el display.

MOTORES PASO A PASOTodos los que siempre soñamos con diseñar nuestro propiorobot sabemos que es necesario controlar motores para poderhacerlo realidad. Por eso, no podíamos dejar de incluir aquíalgún sistema simple destinado a manejar un motor paso apaso (PAP). En realidad, lo que precisamos es un circuito quenos dé la posibilidad de controlar una corriente relativamenteelevada, dado que cualquier motor paso a paso “canibalizado”de una vieja impresora consume unos 500 mA, y se alimentacon una tensión de 24 V, totalmente imposible de manejar di-rectamente por el micro.Existen circuitos integrados especialmente diseñados paramanejar motores paso a paso, pero quisimos pensar en el cir-

54 POWERUSR

TABLA DE VERDAD

ENTRADAS SALIDASLE BI LT D C B A a b c d e f g DisplayX X 0 X X X X 1 1 1 1 1 1 1 8X 0 1 X X X X 0 0 0 0 0 0 0 Blank0 1 1 0 0 0 0 1 1 1 1 1 1 0 00 1 1 0 0 0 1 0 1 1 0 0 0 0 10 1 1 0 0 1 0 1 1 1 1 0 0 1 20 1 1 0 0 1 1 1 1 1 1 0 0 1 30 1 1 0 1 0 0 0 1 1 0 0 1 1 40 1 1 0 1 0 1 1 0 1 1 0 1 1 50 1 1 0 1 1 0 0 0 1 1 1 1 1 60 1 1 0 1 1 1 1 1 1 0 0 0 0 70 1 1 1 0 0 0 1 1 1 1 1 1 1 80 1 1 1 0 0 1 1 1 1 0 0 1 1 90 1 1 1 0 1 0 0 0 0 0 0 0 0 Blank0 1 1 1 0 1 1 0 0 0 0 0 0 0 Blank0 1 1 1 1 0 0 0 0 0 0 0 0 0 Blank0 1 1 1 1 0 1 0 0 0 0 0 0 0 Blank0 1 1 1 1 1 0 0 0 0 0 0 0 0 Blank0 1 1 1 1 1 1 0 0 0 0 0 0 0 Blank

+24V

1500 Ω

LED

GND

D11N4004

CARGA

BD1392200 Ω

PIC

<-------

<-------

FIGURA 5

PINES 4511

DISPLAY

16

15

14

13

12

11

10

9

VDD

f

g

a

b

c

d

e

B

C

LT

BI

LE

D

A

VSS

1

2

3

4

5

6

7

8

a

d

b

ce

f g

52-54-Hard Microcontrol-P27.qxd 12/5/05 2:52 PM Page 54