Professional Documents
Culture Documents
Basado en la nota de aplicacin AN234 Hardware Techniques for PIC microcontrollers de microchip, y el Resumen tcnico TB40040B Tips and tricks for 8 bits pic micro y otras experiencias propias del autor
Contents
Rompiendo mitos .......................................................................................................................................... 2 TIP 1. Los voltajes superiores a 5V no daan tu PIC ..................................................................................... 3 TIP 2. Comunicacin sin acondicionador de niveles TTL/RS232 ................................................................... 5 TIP3. Leyendo varios pulsantes con un solo I/O pin (mtodo I) .................................................................. 7 TIP4. Leyendo varios pulsantes con un solo I/O pin (mtodo II) ................................................................. 7 TIP5. Manejando mltiples LEDS .................................................................................................................. 9 TIP 6. Manejo de Displays de 7 Segmentos ................................................................................................ 11 Kit de entrenamiento para PIC de 8 pines .................................................................................................. 13 Recursos del kit de entrenamiento ............................................................................................................. 14 Referencias.................................................................................................................................................. 15 Agradecimientos ......................................................................................................................................... 16
Rompiendo mitos
Sabas que? Puedes ingresar directamente a tu microcontrolador una seal de varios cientos de voltios sin provocar dao alguno en el mismo Puedes comunicar directamente al microcontrolador con tu PC sin necesidad de MAX232 u otro circuito transistorizado Puedes conectar un teclado matricial 4x4, utilizando un solo pin del microcontrolador Puedes encender 12 LEDS individuales con solo 4 pines Puedes leer seales analgicas sin necesidad de un conversor AD
Me dirs que estoy loco, o que soy un mentiroso, ms todas las afirmaciones anteriores, son ciertas, te invito a que leas el siguiente artculo y compruebes por ti mismo
Figura 1. Circuito interno de proteccin contra sobre voltajes Te explico; internamente cada pin tiene dos diodos recortadores de tensin; as que cualquier tensin que ingresa ser limitada entre VSS y VDD. Por lo dicho anteriormente; si ingresas una tensin 120Vac al pin de tu microcontrolador; el circuito la limitara entre 0 y +5V. Ahora; la corriente si es un asunto para preocuparse; debes de limitarla con un resistor; cuyo valor se calcula de la ley de OHM. ( )
Ejemplo: Segn la hoja de datos cada pin puede soportar 25mA y deseas recibir una seal de 115V alterna Cul es el valor de la resistencia que te servir para limitar la corriente?
Entonces se recomienda colocar una resistencia limitadora mayor a 3K2. Entre 3K2 y 6M se recomienda (ver Figura 2) Ya no ms transformadores u optoacopladores, que incrementan el tamao y el costo de tu PCB!
Figura 2. Resistor de 5M limita la corriente que ingresa al microcontrolador Los pines MCLR y TOCK solo tienen un diodo limitador de tensin a VSS voltios; as que si deseas recibir seales de potencia en estos pines; debers colocar un diodo externo que limite la tensin a VDD. Ver figura siguiente:
Figura 3. Acondicionamiento del pin MCLR y TOCK para recibir superiores a VDD A continuacin te muestro una simulacin en ISI que muestra cmo una de 120Vac, 60Hz es recortada a un rango entre 0 y +5V I/O
D1
Vin(ac)
R1
10k
DIODE
V(micro)
D2
DIODE
Una resistencia cuyo valor es mayor a 600 ohmios y menor 22K se recomienda Ahora; el PIC enviara al PC una seal comprendida entre 0 y +5 Voltios; no hay necesidad de amplificarla; el PC la reconocer sin ningn problema. De seguro te estars peguntando Qu papel desempean entonces los adaptadores de nivel TTL-RS232? Respuesta: La norma USART indica que los niveles RS232 deben estar entre el rango de -15V y +15V. Para garantizar la comunicacin a distancia mxima de 30 metros. Pero si nuestro microcontrolador va a estar como mximo a 2m de distancia del computador, Qu necesidad tenemos de esos voltajes?
El adaptador de niveles RS232 lo que hace es amplificar la seal que genera el PIC y atenuar la seal que genera el PC. Pero tambin invierte a esa seal. Si queremos ahorrarnos el de adaptador de niveles; tenemos que configurar en el software terminal de comunicaciones, como comunicacin invertida. (RX/TX Polarity)
Figura 6. Configuracin del hiperterminal cuando no utilizas un adaptador de nivel (Virtual terminal de ISIS te da esa opcin en su ventana de propiedades) A continuacin te presento un fragmento de la informacin que ofrece el manual de PIC Basic Pro:
Figura 7. Fragmento del manual PICBASIC PRO Compiler de microingeneering Labs Yo he comunicado al PIC y la PC sin adaptador nivel incluso a 3 metros de distancia el uno del otro y no he tenido ningn problema; Simplemente asegrate de invertir la polaridad de transmisin RX/TX polarity. Al MAX232, a los transistores y capacitores; ya le podemos decir adis!
6
Figura 8. Mtodo de carga del capacitor, necesitara de un PIN con modulo comparador En la figura 8, cada vez que pulsemos un botn el capacitor comenzara a cargarse, cada botn genera un tiempo de carga distinto; si logramos medir cual ese tiempo de carga; sabremos que botn fue presionado. La secuencia de software para el circuito de la figura 8 sera la siguiente: 1. Configure el pin como salida y a un nivel lgico BAJO para descargar el capacitor a travs de la resistencia de R5 2. Configure el pin como entrada a un comparador y CVref como la otra entrada a comparar. 3. Utilice un TIMER para medir el tiempo en el que el comparador es disparado. Si el tiempo es mayor al mximo permitido; entonces regrese al paso 1; caso contrario determine que botn fue presionado
TIP4. Leyendo varios pulsantes con un solo I/O pin (mtodo II)
Mtodo II. Utilizando el conversor AD En la figura 9 se muestra un circuito tpico para conectar varios pulsantes a un solo pin analgico; partiendo que R1 es diferente a R2 y que R2 es diferente a R3, dependiendo del botn que sea presionado, un voltaje distinto aparecer en el pin ADC. Encuestando el estado del conversor AD; podremos identificar que botn fue presionado. En caso de que uno o ms interruptores se cierren a la vez, las combinaciones de dos o ms botones cerrados generaran voltajes distintos y tambin podrn ser identificadas 7
Figura 9. Como identificar a varios interruptores con un solo pin analgico Haciendo una extensin a lo anteriormente dicho; en la figura 10 muestro como podra conectarse un teclado matricial de 4x4 a un solo pin analgico del microcontrolador. Note que este circuito tiene un valor prctico solo cuando se desea detectar una tecla a la vez. Detectar combinaciones de 2 o ms teclas pulsadas, ya resulta demasiado complicado.
Figura10. Leyendo un teclado matricial con un solo pin analgico Con un PIC de 8 pines podremos manejar teclado y display a la vez eso s que es ahorro! 8
Los diodos te permiten conducir corriente en una sola direccin; teniendo en cuenta aquello; la siguiente figura te muestra cmo manejar dos diodos LED con un solo pin
Figura 11. Manejando dos LEDS con un solo PIN Funcionamiento Si a la salida escribimos un nivel lgico BAJO, D1 se encender, D2 se apagara; Si escribimos nivel lgico ALTO D2 se encender, D1 se apagara Si intercambiamos entre nivel lgico bajo y nivel lgico alto proporcionando as una onda cuadrada de frecuencia suficientemente veloz; parecer que los dos LEDS estn encendidos a la vez Si a la salida le hacemos entrada, D1 y D2 permanecern apagados El mismo concepto puede extenderse a seis y a doce LEDS manejados por tres y cuatro pines respectivamente (figura 12 y 13)
Figura 13. Manejando 12 LEDS con 4 pines En las configuraciones mostradas en figuras 12 y 13 solo un LED podr encenderse a la vez y requiere de dos pines (el que se pondr en nivel lgico ALTO y el que se pondr en nivel lgico BAJO). Por ejemplo; Para encender D1 tendremos que configurar Digital I/O R2 como ALTO y Digital I/O R1 como BAJO; los dems pines se configuraran como entradas para que la corriente no fluya por ellos Si deseamos hacer parecer que dos o ms LEDs estn encendidos a la vez, tendremos que programar una secuencia que se repita lo suficientemente rpido para que el ojo humano no pueda captar el parpadeo de los LEDS Este mtodo de multiplexaje es efectivo hasta doce LEDS; ya que manejar ms de doce se complicara enormemente el firmware y el parpadeo se hara cada vez ms visible.
10
Figura 14. Manejo de un display de dos dgitos Note en la figura que; el display de las decenas es nodo comn (CA) y el de las unidades es catodo comn (CC). Entonces solo un digito permanecer encendido a la vez; deberemos nuevamente intercambiar entre niveles ALTO y BAJO a una frecuencia lo suficientemente veloz como para hacer creer que los dos displays estn encendidos a la vez Ahora te mostrare algo sorprendente; haciendo una extensin a lo aprendido; En la figura 15 se muestra cmo manejar un display de 16 dgitos con nicamente 16 pines; es decir un digito por cada pin. Algo que no podras lograr ni con dos microcontroladores de 40 pines juntos utilizando el mtodo tradicional
11
12
Figura 16. Vistas 3D del Kit de Entrenamiento para PIC de 8 pines No te dejo las fotos reales del PCB porque no tengo ninguno a la mano; sin embargo ya est en proceso de construccin y uno de estos das le tomo unas fotos para que lo conozcas. El diseo ha sido revisado minuciosamente y espero no haber cometido ningn error; todo esto lo sabr cuando ya lo ponga en funcionamiento. Probabilidad de un 99.99% que funciona! 13
Figura 17. Recursos del kit de entrenamiento para PICmicros de la familia 12xxxx D2 y D3 son diodos rectificadores 1N4004 o 1N4007 JP1 y JP2 son jumpers para seleccionar en modo PROG o modo RUN (el esquemtico se muestra en el apndice A) 14
Referencias
Para escribir esta nota de aplicacin me he basado varios documentos tcnicos que presento a continuacin: TIP 1. Los voltajes superiores a 5V no daan tu PIC. AN521 de microchip AC power lines intefacing TIP2.Comunicacion RS232 sin adaptador de niveles TTL/RS232 PIC Basic Pro Compiller manual de microengineering labs TIP3. Leyendo varios pulsantes con un solo pin (mtodo I) AN234 Hardware techniques for PICmicro microcontrollers TIP4. Leyendo varios pulsantes con un solo pin (mtodo II) AN234 Hardware techniques for PICmicro microcontrollers TIP5. Manejando multiples LEDS TB029 Complementary LED Drive technical brief TIP6. Manejando displays de 7 segmentos TB029 Complementary LED Drive technical brief
Todas las notas de aplicacin, excepto el manual de PIC Basic Pro, puedes descargarte en la pgina www.microchip.com ah encontraras ms TIPS interesantes, que te permitirn ahorrar hardware y en consecuencia todo esto se ver traducido en economa. Es verdad que el software se complica un poquito; pero si te diseas un conjunto de rutinas en el lenguaje que utilizas ese problema quedara resuelto para futuros proyectos
15
Agradecimientos
Considero firmemente que la mejor manera de aprender es compartiendo el conocimiento; por ello dedico un tiempo de mi da a escribir estas notas de aplicacin que semanalmente brindo a cada uno de ustedes. Agradezco mucho su atencin, sus comentarios, sugerencias y crticas constructivas vayan en favor de este proyecto. Atentamente
No supe comprender nada entonces! Deb juzgarla por sus actos y no por sus palabras. La flor perfumaba e iluminaba mi vida y jams deb huir de all! No supe adivinar la ternura que ocultaban sus pobres astucias! Son tan contradictorias las flores! Pero yo era demasiado joven para saber amarla". Antoine Saint Exupery El Principito-
16
J1
1 2 3 4 CONN-SIL4
U1
2 3 4 GP5/OSC1 GP4/OSC2 GP3/MCLR PIC12C509A K GP0 GP1 GP2/T0CKI 7 6 5 RX TX 1 2 3 4
J3
U2
7805
D2
R2
10k
D3
VI GND 1 BAT42 1 2
J5
CONN-SIL4
VO
DIODE
J2
1 2 3 4 5 CONN-SIL5 VPP VDD VSS DAT CLK 2
C2
100nF
R1
1.5k
SIL-156-02
C1
100u
RESET
D1
1 K LED
JP2
JUMPER2
J4
5 9 4 8 3 7 2 6 1 CONN-D9F
R3
22k
JP1
JUMPER2
PCTronics
Email: dino_barreto@hotmail.com Telefono: 087017318
Prj #No: 3
Titulo: Kit de entrenamiento Descripcion: Valido para microcontroladores PIC de 8 pines Autor: Raul Barreto Quinteros
Vistas 3D