PicManía by RedRaven
 

Búsqueda personalizada

Trucos e Ideas

 

  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.
 
  • El primer método para poder hacer esto consiste en conectar todos los interruptores a VDD a través de distintas resistencias, de tal modo que cada uno de ellos nos generen voltajes distintos. El Pin al que están conectados debemos configurarlo en modo Conversor Analógico Digital y lo que hacemos es entonces leer el voltaje que nos llega y de ese modo discriminar qué interruptor es el que tenemos pulsado. Abajo se puede ver el esquema de esta conexión.


 

  • El segundo método es muy parecido al anterior salvo que conectamos el pin a masa a través de un condensador. De esta forma lo que debemos medir es el tiempo que el condensador tarda en cargarse, que va a ser distinto dependiendo de la corriente que le llega que a su vez depende de cada una de las resistencias. En este caso el pin a usar debe ser configurado como Comparador. Abajo se puede ver la modificación del esquema anterior para este nuevo uso:
     

  • Y por último podemos conectar con cualquiera de ambos métodos todo un teclado. Éstos realmente son una matriz de contactos, formada por filas y columnas, que se conectan entre si mediante el interruptor situado en cada cruce entre ambas. Con la configuración que se puede ver abajo podemos leer todas las teclas analizando el voltaje que nos llega a nuestro único pin ADC.
     

 
 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.
 
  •    Lo único que hay que hacer es conectar ambos Leds a la inversa como puede verse en el esquema que se muestra abajo. Cuando pongamos en bajo el pin entonces conduce D1 a través de R1, cuando ponemos nuestro pin en alto entonces es D2 quien conduce a través de R2. Así que podemos encender un led o el otro con solo cambiar el estado del pin. Sencillo a la par que elegante.
     


 

 


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"


 


 

Ver Divisores de Tensión


 


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.
 
Visitas
Totales : 61858 Hoy: 4 Activas: 1 Vistas: 61858

Esta página fue modificada el 07-08-2010 22:42:20

           
 DmSoft WAMP Escribir Unreal