LEDs a 220Vac

Aquí les mostrare una forma sencilla y eficaz de conectar leds a 220Vac
Este circuito es extremadamente simple, pero mejorable a la vez, en mi caso no le he puesto ningún capacitor electrolítico de filtrado a la salida del puente rectificador, lo que podría generar algún parpadeo que depende de la persona se perciba o no.
El circuito es el siguiente y luego explicare la forma de calcular los componentes.

 
Como podemos ver en el circuito, tenemos una fuente de corriente alterna V1, la cual sera nuestro suministro eléctrico, en mi caso 220Vac 50Hz.
Tenemos un fusible FU1 que puede o no ir, pero es una medida de seguridad mínima. El calculo del mismo sera en función de la corriente de consumo de todo el circuito.
Luego le sigue el capacitor de Poliester C1, el mismo posee una de las funciones mas importantes del circuito ya que sera el encargado de limitar la corriente a todo el circuito para que no explote.
Luego tenemos el puente rectificador BR1 y aquí es donde pueden o no poner un capacitor electrolítico para completar la fuente y que no se vea el parpadeo de los leds.
Después vemos una resistencia limitadora para los leds y por ultimo los leds en serie. Notese que hay puntos suspensivos ya que de esto depende la cantidad de leds a utilizar.
La resistencia R2 debe ser de entre 680k y 1M en 1/4W, cumple la función de descargar el capacitor C1 de forma amortiguada y de protección ya que si tocamos el capacitor "luego de desenchufar el sistema" la resistencia debería servir para descargar el mismo.

Ahora los cálculos:

1) Elegimos la cantidad de leds a utilizar, y el tipo de led.
Para este ejemplo serán 50 Leds blancos de 20mA y 2,8V.
Esto nos da una caída de tensión entre los extremos de la serie de leds de 2,8V*50=140V, la corriente es la misma 20mA para toda la rama ya que el circuito es serie.
2) Elegimos la resistencia limitadora R1, para esto podemos utilizar una R del valor que queramos o bien no utilizarla pero recomiendo limitar el circuito minimamente en mi caso son solo 100ohms lo cual tendrá una caída de tensión de E=100*20mA=2V, es poca tensión en función de los 140V que utilizan los leds pero cumple las veces de limitadora. De todas forma el limite mas fuerte lo tiene el capacitor C1.
3) Elegimos el puente de diodos, que en nuestro caso sera de 1A por 400V, podría ser de menor valor pero es el mínimo que he conseguido y nos sobra. no hay mucha diferencia de precio con otro de menor valor.
4) Ahora viene el calculo del capacitor lo cual es lo mas importante del circuito. 
Para que lleguen 20mA al circuito debemos utilizar el capacitor como una resistencia, pero como en corriente alterna tenemos en juego al tiempo, podemos aprovechar las propiedades del capacitor.
siendo la formula de reactancia capacitiva Xc=1/(w*C) donde Xc es la reactancia capacitiva que se mide en ohms, w es omega el cual representa 2*pi*f donde pi es 3,1415..., y f es la frecuencia de trabajo que en nuestro caso son 50Hz (frecuencia del suministro eléctrico). por ultimo el valor C sera el del capacitor medido en Faradios.
Para un valor de 20mA en 220Vac tenemos que la resistencia debe ser R=(220V-140V)/20mA=4000ohms.
Ahora calculamos el capacitor. C=1/(w*Xc) donde C=1/(314*4000)=729nF es decir debemos poner un capacitor de 796nF el cual a una frecuencia de 50Hz funcionara como una resistencia de alterna de un valor de 4kohms, el valor de tensión del capacitor debe ser de al menos 250V, y el material debe ser poliester.
si bien no es un valor normalizado debemos buscar un aproximado. que podría ser unir en paralelo dos capacitores de 390nF quedando así un total de 780nF.


 

Grabador de Voz - ISD1820

Este circuito integrado se trata de un grabador completo de voz/sonido.
El mismo posee en su interior toda la electrónica necesaria como para lograr la grabación y reproducción sin necesidad de componentes activos externos.
Posee un pre-amplificador para micrófono del tipo Electret, y una etapa de salida para un parlante pequeño en 8ohms.
La tensión de alimentación va de 3V a 5V.
El tiempo de grabación es de hasta 20 segundos, esto es algo a tener en cuenta ya que el integrado posee una resistencia de oscilación que sera la encargada de marcar la frecuencia de muestro, es decir a mayor muestreo, mayor calidad de sonido pero menor tiempo de grabación.
La forma de modificar este muestreo es modificando el valor de la resistencia de oscilación, en el datasheet nos da una serie de valores como para setear el integrado a distintas velocidades, en mi caso opte por un potenciometro, el cual permite no solo setear una frecuencia de muestro o tiempo de grabación, sino que también permite la variación del mismo durante la reproducción lo que hace las veces de Pitch, es decir, podemos acelerar o retrasar el sonido. Por ejemplo en una grabación de voz, se puede hacer una reproducción mas aguda o mas grabe. Para lograr tener esta voz aguda o grabe hay que hacer la grabación con el potenciometro situado en el centro. (esto altera la cantidad de segundos de grabación que tenemos).

ROSC Duración Muestreo
80k     8s      8kHz
100k   10s    6.4kHz
120k   12s    5.3kHz
160k   16s      4kHz
200k   20s    3.2kHz

Podemos apreciar en el cuadro de arriba que a menor valor de resistencia, menor duración de la grabación y mayor frecuencia de muestro (calidad)., Si en cambio lo hacemos durar lo máximo posible, por ejemplo 20s con una ROSC de 200k, la frecuencia de muestro se reducirá a 3.2kHz lo que reducirá la calidad de audio. Pero todo depende de la aplicación que se desee realizar.

Botones:
REC: Mientras este se encuentre a estado alto se procederá a la grabación. Mientras se este grabando el Led permanecerá encendido, una vez que se termine el tiempo de grabación el Led se apagara solo.
PLAYE: Al poner este pin a estado alto, se reproduce el sonido grabado previamente, solo mientras se mantiene a estado alto, esto quiere decir que si se quita el estado alto durante la reproduccion, la misma se detendra automaticamente.
PLAYL: A diferencia del anterior, se activa por un pulso de estado alto, al enviarle un pulso corto de estado alto comenzara a reproducir el sonido hasta la finalizacion del mismo.

Interruptores:
LOOP: como lo dice la palabra al cerrar este interruptor se producira el loop o el ciclo de reproduccion continuo, es decir, se reproducira el mensaje y una vez finalizado volvera a reproducirse indefinidamente.
TEST MIC: este funciona como testeo de microfono y parlante, ya que al cerrar esta llave, todo lo que se escuche en el microfono se enviaria directamente al parlante a modo de test.



Control de teclado matricial

Esta es una simple función de control de teclado matricial de 4x4, es muy sencillo, el principio de funcionamiento es por barrido de bits, o sensado.
Se toma un puerto completo de 1byte y se divide en dos, dejando los 4bits de la parte baja para X y los 4 bit de la parte alta para Y, de esta forma conformamos una matriz de 4x4.
El proceso de barrido consiste en alimentar una linea del teclado que puede ser X o Y, y una vez alimentada esa linea se procede a testear cada uno de los 4 bits, de esta forma se puede saber si alguna de las teclas pulsadas coincide con esta linea alimentada, si es asi se moverá a la variable el valor deseado., luego se sigue alimentando la siguiente linea y se vuelven a testear cada uno de los 4 bits, nuevamente se vuelve a repetir hasta llegar a las 4 lineas.


output_c(0b00000001);   //Habilita el pin RC0

Luego se testean las otras cuatro lineas

if(PORTC==0b00010001) teclaPulsada='7'; //Si RC4=0 asigna '7'
if(PORTC==0b00100001) teclaPulsada='4'; //Si RC5=0 asigna '4' 
if(PORTC==0b01000001) teclaPulsada='1'; //Si RC6=0 asigna '1'
if(PORTC==0b10000001) teclaPulsada='C'; //Si RC7=0 asigna 'C'

De esta forma podemos comprobar el funcionamiento, ya que esto se repetirá 4 veces como puede verse en el programa para lograr recorrer toda la matriz.

Como se puede ver en este circuito, se presiona la tecla 6, la forma que tiene el microcontroaldor de saber que se ha pulsado es la siguiente:

Podemos ver que las lineas que se alimentan son las que van de RC0 a RC3, en este caso, el programa se encuentra alimentando RC2 por eso toda la linea vertical donde se encuentra el botón 9, 6, 3 y =, esta alimentada, ahora viene la parte de los 4 if, preguntando cual de ellas esta precionada, entonces encuentra que la tecla pulsada es la que pertenece a la linea RC5, al encontrar esta igualdad asigna el valor 6 a la variable que luego sera mostrada en el LCD.




El programa completo es el siguiente. 


#include <16f883.h>
#use delay(int=4000000)
#fuses XT,NOWDT
#include <LCD.C>
char teclaPulsada;
void leerTeclado(){
   output_c(0b00000001);
   if(input(pin_c4)==1) teclaPulsada='1';
   if(input(pin_c5)==1) teclaPulsada='2';
   if(input(pin_c6)==1) teclaPulsada='3';
   if(input(pin_c7)==1) teclaPulsada='A';
   delay_ms(10);
   output_c(0b00000010);
   if(input(pin_c4)==1) teclaPulsada='4';
   if(input(pin_c5)==1) teclaPulsada='5';
   if(input(pin_c6)==1) teclaPulsada='6';
   if(input(pin_c7)==1) teclaPulsada='B';
   delay_ms(10);   
   output_c(0b00000100);
   if(input(pin_c4)==1) teclaPulsada='7';
   if(input(pin_c5)==1) teclaPulsada='8';
   if(input(pin_c6)==1) teclaPulsada='9';
   if(input(pin_c7)==1) teclaPulsada='C';
   delay_ms(10);
   output_c(0b00001000);
   if(input(pin_c4)==1) teclaPulsada='*';
   if(input(pin_c5)==1) teclaPulsada='0';
   if(input(pin_c6)==1) teclaPulsada='#';
   if(input(pin_c7)==1) teclaPulsada='D';
   delay_ms(10);
}
void main(void){
   lcd_init();
   lcd_gotoxy(1,1);
   printf(lcd_putc,"Electgpl Teclado");
   while(TRUE){
      leerTeclado();
      lcd_gotoxy(1,2);
      printf(lcd_putc,"TECLA...:  %c  ",teclaPulsada)
   }
}