PicManía by RedRaven |
![]()
Búsqueda personalizada
|
En esta página coloco algunos trucos e ideas sobre Hardware útiles para cuando no sabemos qué hacer ... |
|
Conectando LEDS a nuestro PIC |
|
|
|
|
|
|
|
Ahorrándonos pines de entrada para leer interruptores. Nota 1 |
|
Los PIC tienen escasísimos pines, de entrada o de salida, algunos desesperadamente pocos. Este truco intenta mostraros algunas técnicas encaminadas a salvar estos preciosos pines y poder realizar más cosas con menos recursos. Este turco va a tratar de leer muchos interruptores con un solo pin. |
|
|
|
|
|
|
Desarrollo completo de este último en Teclado Matricial 4x4 con Driver Analógico |
|
|
Ahorrándonos pines de salida para encender Leds : 2 Leds con 1 Pin. Nota 1 |
|
Siguiendo con aquello de que los PIC tienen escasísimos pines vamos a ver cómo podemos encender dos Leds con un único pin de salida digital. El único problema que tiene ese montaje es que no pueden encenderse ambos a la vez. |
|
|
|
|
Adaptador de niveles de voltaje. |
|
El mundo real no tiene la obligación de ser compatible con el digital. Este tema ya lo vimos en el artículo publicado en esta misma Web dedicado a los Optoacopladores. Vamos ahora a proponer otro sencillo montaje que va a facilitarnos el entendimiento entre ambos mundos. Nos proponemos crear un sistema que dada una entrada cualquiera, de 5 a 25 Voltios, nos genere siempre una salida exactamente igual a Vcc (en nuestro caso particular 5V). |
El esquema que
os propongo es : |
|
Como podeis
ver en la imagen superior con solo 4 resistencias y un par de mis
Transistores favoritos
nos aseguramos que sea cual sea el nivel de voltaje que apliquemos en In
vamos a obtener Vcc en Out. |
|
|
Conectando un actuador mediante Solenoide con un MOSFET |
|
|
|
|
|
Conectando un Display LED Siete Segmentos mediante el BCD to 7-SEG 4511B |
|
|
|
|
|
Conectando un Display LED Siete Segmentos mediante el DECADE COUNTER to 7-SEG 4026 |
|
|
|
|
|
Conectando Switches, Contactos, Interruptores y Botones leyendo "0" ó "1" |
|
|
|
|
|
|
Generando una Onda Senoidal con un PIC y 4 resistencias Nota 2 |
|
No, no vamos a conseguir
una onda senoidal en alterna, nuestros PIC's aún no trabajan en alterna.
Vamos a hacerla en continua, haciendo variar nuestro voltaje entre 0V y
aproximadamente el 65% de VCC, o sea unos 3.20V. Subirá y bajará entre
estas dos tensiones siendo su "neutro" aproximadamente un voltaje de unos
2.34V. |
Para empezar demos un
repaso a un par de conceptos de primero de electrónica básica: El cálculo
de la resistencia equivalente en una red de resistencias en paralelo y el
cálculo del voltaje de salida en un divisor de tensión. No os preocupéis,
es cosa fácil y nada complicada con tan solo saber manejar una simple
calculadora. |
|
Arriba podemos ver dos
resistencias R1 y R2 conectadas en paralelo y lo que queremos
es conocer qué resistencia tendríamos que poner en su lugar para que el
circuito fuese el mismo, o sea calcular el valor de RT. Para
eso debemos utilizar la siguiente fórmula: |
|
Esta fórmula nos dice que
el inverso de la resistencia equivalente es igual a la suma de los
inversos de todas y cada una de las resistencias conectadas en paralelo. O
sea que el inverso de RT es igual a la suma del inverso de R1
mas el inverso de R2. |
Así que si
queremos dejar sola a RT y no su inversa podemos decir que: Dos resistencias en
paralelo tienen una resistencia equivalente igual al inverso de los
inversos de cada una de las resistencias. |
Así RT
= 1/((1/R1)+(1/R2)) |
Por ejemplo: Si
tenemos dos resistencias en paralelo, una de 1 KOhmios y otra de 2.2
KOhmios la resistencia equivalente será de RT = 1/((1/1.000)+(1/2.200)) =
687,5 Ohmios. (A) |
Repasado este
tema de las resistencias en paralelo recordemos ahora lo que dijimos en
Divisores de Tensión: |
|
En una configuración como
la de la imagen superior el voltaje de salida es igual al voltaje de
entrada multiplicado por la resistencia superior y dividido por la suma de
las resistencias superior e inferior. |
Así si Rtop es
igual a 9.4 KOhmios y RBottom es igual a 1 KOmhs con un voltaje
de entrada Vin de 5V tendríamos un voltaje de salida Vout
= 5*(1.000/(1.000+9.400)) = 0.48 Voltios (B).
A que es fácil. Ya os lo dije, que no había que asustarse por cómo hacer
estos cálculos. |
Bueno, con las
ideas un poco mas claras dejémonos de teóricas y entremos ahora de lleno
en el tema que nos ocupa: |
Supongamos un circuito
tal como mostramos en la imagen inferior, en la que conectamos cuatro
resistencias a cuatro pines de nuestro PIC, digamos que a RB0:3,
conectadas todas a una quinta resistencia conectada a masa: |
|
Como fácilmente podéis
notar esta configuración combina los dos conceptos a que nos hemos
referido mas arriba. Son cuatro resistencias en paralelo que hacen el
efecto del Rtop de un divisor de tensión junto a la quinta
resistencia conectada a masa que sería nuestra RBottom. (De ahí
que empezase este artículo por dichos conceptos). |
Si ponemos todos los
pines del PIC a Low tendremos el Out a Low y no tendríamos voltaje de
salida. |
Si ponemos RB0 a High
tendremos un divisor de tensión con RTop igual a 9.4 KOhmios y
RBotom igual a 1 KOhmios que es el cálculo que hemos realizado
en B |
Si ponemos a High
los pines RB2 y RB3 tendremos dos resistencias en paralelo conectadas a
VCC cuya resistencia equivalente sería igual al calculo realizado en
A y que sería nuestra nueva RTop del
divisor de tensión junto a la resistencia RBottom de 1 KOhmios.
Este divisor sería entonces Vout = 5 * (687,5 / (687,5 + 1.000)) = 2.03 V. |
Y ya estamos viendo el
funcionamiento de nuestro invento. Activando unos u otros pines del PIC
tendremos distintas combinaciones de resistencias en paralelo que nos
harán distintas RTop del divisor de tensión. Tendremos así
distintas tensiones de salida que con las resistencias que hemos elegido
irán variando desde 0V cuando no activamos ninguna de ellas hasta 3.20V
con todas activadas. |
Abajo podéis ver una
tabla donde presentamos los voltajes que se generan en el divisor de
tensión con las distintas combinaciones de bits en alto en los pines de
nuestro PIC: |
|
Si estos voltajes los
representamos sobre un eje X en función del tiempo tenemos el resultado
que estábamos buscando, una onda senoidal realizada con nuestro PIC. |
|
Como puede deducirse de
este gráfico con ángulos de 0º, 180º y 360º tendremos el voltaje
intermedio entre los valores 2.17V y 2.51 o sea unos 2.34V. |
Como es lógico la forma real de la onda no es realmente senoidal sino que sería una especie de escalera con peldaños discretos, uno por cada combinación de 4 bits de nuestros pines. Si colocamos un condensador en serie con la salida podremos suavizar estos escalones y aproximarnos así a la senoidal que hemos dibujado.
|
La forma mas
simple de implementar un programa que realice esta función puede verse en: |
while(1) { PORTB=0b00010000; //Comienza desde 0 subiendo PORTB=0b10010000; PORTB=0b01010000; PORTB=0b11010000; PORTB=0b00110000; PORTB=0b10110000; PORTB=0b01110000; PORTB=0b11110000; //alcanza el centro PORTB=0b01110000; //y continua subiendo PORTB=0b10110000; PORTB=0b00110000; PORTB=0b11010000; PORTB=0b01010000; PORTB=0b10010000; PORTB=0b00010000; //llega al máximo PORTB=0b11100000; //y comienza a bajar PORTB=0b01100000; PORTB=0b10100000; PORTB=0b00100000; PORTB=0b11000000; PORTB=0b01000000; PORTB=0b10000000; PORTB=0b00000000; //alcanza el centro de nuevo PORTB=0b10000000; //continua hasta volver a 0 PORTB=0b01000000; PORTB=0b11000000; PORTB=0b00100000; PORTB=0b10100000; PORTB=0b01100000; PORTB=0b11100000; } |
||
|
Nota 1 |
Extraido del documento de Microchip Hardware Techniques for PICmicro Microcontrollers AN234 00234a.pdf |
Nota 2 |
Traducido del original en inglés de KE4NYV Pic Projects |
Nota: Esta página Web esta repleta de imágenes, textos, logotipos y demás material extraídos de los mas variados medios de los que no soy ni autor ni depositario de los correspondientes derechos de autor, uso y/o reproducción. Si Ud. es depositario de dichos derechos y desea que el material correspondiente sea eliminado de esta Web no dude en ponerse en contacto conmigo mediante e-mail y será inmediatamente retirado. Gracias. |
Esta página fue modificada el 07-08-2010 22:42:20