Sensor de Movimiento / Proximidad por Ultrasonidos

El circuito presentado es para estudiar los ultrasonidos, los sensores y poder analizar y mejorar el circuito ya que este mismo se puede seguir mejorando.
La primera etapa consta de un amplificador para el receptor de ultrasonidos, la salida de este es ingresada a la segunda etapa de amplificación, la salida de esta segunda etapa cumple dos funciones, la de entregarnos la señal a analizar y la de alimentar el transmisor de ultrasonidos, ya que este transmisor se alimenta de la salida del receptor, podemos decir que es una realimentación de ultrasonidos, esto es lo que permite descartar el uso de osciladores y demás circuitos.
Por otro lado la salida de esta segunda etapa de amplificación es enviada a un detector de AM, si bien los diodos no son de germanio (se puede mejorar), el circuito envía el nivel suficiente de tensión como para poder exitar estos diodos, y por ultimo a la salida de este detector hay un amplificador con un led para poder comprobar el funcionamiento del circuito.
Claro esta que lo desarrolle de esta manera por tratarse de un circuito ampliamente mejorable y para simplifiacrlo al máximo, pero podrían agregar amplificador operacional como comparador para que la salida sea mas estable o simplemente circuitos lógicos schmitt trigger para neutralizar los repiques erróneos.
El circuito es el siguiente, y se anexa el link a youtube del mismo funcionando.

Redimencionar el PCB.

Link a youtube
http://www.youtube.com/watch?v=FdT2L2gfekM

Doblador de Tensión

Este circuito fue diseñado con la finalidad de alimentar un determinado circuito desde el puerto USB, claro esta que el circuito a alimentar no requería de mucha corriente, por ello se utilizo este doblador de tensión y no otro con inductores. El circuito es muy básico, consta de un oscilador basado en el timer 555, y un doblador de tensión diseñado en base al multiplicador de tensión con diodos y capacitores. este mismo debido a su baja frecuencia requiere de capacitores de alta capacidad que también nos va a proporcionar una corriente de unos 15mA, claro que se puede modificar, pero el 555 debería ser reemplazado por un oscilador de dos transistores de potencia o algún oscilador de potencia y deberían cambiarse los capacitores. Si bien este circuito dobla la tensión osea la duplica, es posible triplicarla, o multiplicarla por mayores valores, con solo seguir añadiendo etapas de multiplicación (didos/capacitores). El circuito es el siguiente.


[Guia] Fuentes

Fuentes lineales.
Las fuentes Lineales son las mas conocidas por todos nosotros, las que tienen un transformador reductor, un puente de diodos para pasar de alterna a continua pulsante y un filtro con capacitores para poder suavisar lo maximo posible esos picos de la continua pulsante.
Una fuente lineal no regulada puede tener un debanado o multiples debanados, osea puede tener una tension de salida o varias, entre estas varias podrian ser por ejemplo tensiones todas positivas, o todas negativas o mixto, o bien simetrico.
Un ejemplo de una fuente con multiples salidas podria ser la de las fuentes esas que se venden como universales que tienen un interruptor para elegir entre 1.5, 3, 4.5, 6, 7.5, 9 y 12V no son de la mejor calidad pero en si es una fuente con multiples salidas, que lo logran con un transformador con multiples devanados.
Una fuente simetrica puede ser por ejemplo con dos devanados en donde sacamos +/- 12V o 5V o 25V o lo que queramos, usualmente utilizado en todo los circuitos que necesiten tratar señales, ya sean procesadores de señales, placas de sonido, amplificadores de audio, etc..
y luego tenemos las fuentes mixtas que tienen tensiones simetricas y no simetricas, un ejemplo es la fuente de PC, ya que esta cuenta con +12V, -12V, +5V, -5V, +3,3V, etc...
A continuacion dejare los circuitos para que se pueda notar la diferencia entre devanados simples, multiples y mixtos.

Ahora hablaremos un poco de la teoria de estas fuentes, que pueden ser de media onda, de onda completa con dos diodos o de onda completa con cuatro diodos (puente de diodos).
Como sabemos el elemento principal es el transformador reductor, este transformador como vamos a usarlo en la red electrica a 50Hz tiene que estar en resonancia a esa frecuencia, por ende como sabemos todas las bobinas y capacitores responden en frecuencia, en una bobina, la frecuencia es inversamente proporcional a la inductancia osea a la cantidad de espiras, por ejemplo a mas frecuencia menos vueltas de bobina y a menos frecuencia mas vueltas.
Para un tranformador de 50Hz en 220V tenemos aproximadamente unas 800vueltas de primario que para la relacion detransformacion tenemos un calculo directo que es Np/Ns = Vp/Vs, que nos dice que N vueltas de primario sobre N vueltas de secundario es igual a Tension del primario sobre Tension del secundario, es decir, si en el primario tenemos N=800 vueltas para 220V, y en el secundario tenemos N=100 vueltas, vamos a tener una tension de salida de 220V/8 = 27,5V. De esta forma se calculan las vueltas de un transformador para calcular la tension que nos entrega. Otro factor a tener en cuenta es el diametro del cobre, mientras mas grande sea este, mas corriente soportara el tranformador por ende mas consumira. De ahi viene que un transformador de 220 a 12 1A es mucho mas chico que uno de 220 a 12 8A, solo por el diamtro del cobre.


El puente de diodos, no es mas que una serie de diodos que va en funcion de la respuesta en frecuencia, la corriente y la tension. Por ejemplo para un transformador de 220 a 12 8A tenemos que usar didos de Si (silicio) de baja frecuencia y de mas de 8A para que no se destruyan y para que respondan bien.

Luego de esto viene el capacitor, que se calcula 1000uF por Ampere de la fuente por ende para esta fuente de 8A tendriamos que usar un capacitor de 8000uF por 12V, pero como no hay esos valores, usaremos un capacitor de 10000uF por 16V o dos capacitores de 4700uF por 16V en paralelo.
NOTA: los capacitores en paralelo suman su capacidad y en serie la restan.

Aquí les dejare un diagrama de una fuente de 12V de media onda, otra de onda completa con dos diodos y otra de onda completa con cuatro diodos y sus respectivos graficos para comprender la señal que entregan.


Ahora que sabemos esto vamos a procedes a estas mismas fuentes pero reguladas mediante reguladores de tension.
Seguramente ya sepan esto pero vamos a darle un poco de refresco, a estas mismas fuentes que mencionamos arriba podemos agregarles reguladores de tension ya sean positivos, negativos, estabilizados o regulables.
Para ello vamos a hablar de los reguladores de National Semiconductors, los conocidos LM, primero empezaremos por los reguladores positivos de la serie LM78XX, donde XX es el valor que va a tomar numerico en funcion de la tension de salida que necesitamos.
Por ejemplo tenemos LM7805, LM7806, LM7808, LM7809, LM7812, LM7815, LM7824 como los mas conocidos y para la rama negativa vamos a tener los mismos valores peor en lugar de LM78XX seran LM79XX, hay que tener en cuenta que si bien fisicamente son iguales, la coneccion no es la misma.

Tambien tenemos la opcion de utilizar reguladores variables, como el LM317 o LM337

A continuacion dare los circuitos de aplicación para una fuente con 12 y 5V, otra fuente con +/-12 y +/-5V y otra regulable de 1.2V a 30V.

Fuentes SMPS
Las fuentes del tipo SMPS (Switching Mode Power Supply) Como lo dice la palabra es una fuente de alimentacion en modo switch. Son las fuentes que tiene la PC, los DVD, los TV, Etc...
Primero deberíamos saber que significa switch de donde viene y como llegamos a esto.
Si bien seguramente se están imaginando un switch como un interruptor, si es así, es un interruptor donde marcamos encendido o apagado, en nuestro casa 1 y 0. Los transistores tienen una curva de respuesta en la que pueden funcionar en corte y saturación, (ademas de trabajar en modo dinámico en el centro de su punto Q “para amplificadores y manejo de señales análogas”), el corte y la saturación de un transistor es lo que lo permite que binariamente el transistor active y desactive sin pasar por los estados intermedios.
Imaginemos una canilla, el transistor se comporta igual, tenemos un flujo de agua que va de colector a emisor o de emisor a colector (dependiendo de la conflagración) y tenemos la perilla que habré, cierra o gradúa el flujo de agua, esto seria la base del transistor.
En nuestro caso seria una canilla que se habré del todo (satura) o se cierra del todo (corta).
Una vez que tenemos en cuenta que el transistor puede trabajar como una llave, en corte y saturación., de ahi viene la palabra switch en la fuente, y porque decimos que es una fuente switch en lugar de una fuente lineal como las que vimos antes, bueno ahora la vamos a buscar otra diferencia a la fuente lineal, sabemos que las dos tienen transformador pero una tiene un transformador grande y la otra uno mucho mas chico.
Remontando nos un poco a los inductores, mas arriba habíamos dicho que a mayor inductancia (mas vueltas de bobina) menor frecuencia, y a menor inductancia mayor frecuencia.
Si para un transformador de 50Hz estamos usando 800 vueltas de primario, entonces para un transformador de mas de 50Hz vamos a usar menos vueltas de primario, y si el transformador trabaja a 50kHz (50000Hz) van a ser muchas menos vueltas, por ende de ahi viene el transformador mas chico, en si es el mismo transformador que en la fuente lineal pero al elevarle la frecuencia podemos reducir su cantidad de espiras y por ende su tamaño y peso.
Ahora que sabemos porque es mas chico el transformador de una fuente SMPS, tenemos el tema que hay que generar esos 50000Hz ya que la red eléctrica domiciliaria solo nos entrega 50Hz, para esto aparece el nombre Switching, acá es donde el transistor de potencia prende y apaga el primario del transformador de 50kHz, osea el transformador que funciona a 50000Hz hay que hacerlo andar a esa frecuencia sino no responde, entonces no nos quedara otra opción que hacerlo oscilar a esa frecuencia o como dicen en la jerga, hacerlo switchear, para esto necesitamos un oscilador que comande un transistor (o varios) que a su vez hagan oscilar al transformador de 50000Hz, una vez que tenemos esto oscilando el transformador ya esta funcionando, y en el secundario solo resta hacer la fuente común, diodos capacitores reguladores etc... solo que ahora ya no estamos en 50Hz sino que estamos en 50000Hz por lo que los diodos no son cualquiera sino que deben ser ultra rápidos, para que respondan a esta frecuencia. hasta ahora tenemos la fuente andando, pero esta fuente como lleva un circuito oscilador para el primario, y el circuito es de continua, necesitamos continua y la tensión de red para alimentar el primario, aquí es donde aparece la fuente directa de los 220Vac, seguramente habrán visto en las fuentes de PC que directo de los 220Vac viene un puente rectificador, unos filtros y un capacitor de como 400uF por 400V, o algo similar. De ahí salen 330Vcc que es la tensión que va a switchear el transistor del transformador. Teniendo esto en cuenta tenemos todo, algunos circuitos osciladores de control de la fuente, aparte de oscilar, controlan la tensión que le llega a la base del transistor, para que no tenga sobre tensiones o subtensiones, esto pasa cuando no hay 220Vac sino que sube la tensión o baja, todo eso se compensa con el control del transistor dejando pasar mas o menos tensión a su base y controlando así la tensión de salida del transformador. También seguro vieron un opto-acoplador por ahí, ese opto-acoplador sirve para dos cosas, primero para saber a que frecuencia esta oscilando realmente en l transformador, y si se va de frecuencia poder auto ajustarla, y la segunda es saber que la tensión de referencia esta bien, si tiene mas o menos la ajusta con el fin de saber que el secundario del transformador esta entregando lo que tiene que entregar, por eso se pone el opto-acoplador de la salida del transformador hacia el integrado de control.
Obviamente el secundario de este transformador al igual que una fuente lineal puede tener varios devanados secundarios o varias tomas en el devanado, de ahí sacamos varias tensiones como por ejemplo las de una fuente de PC.
Ahora dejare un diagrama de bloques.

Un ejemplo de controlador para estas fuentes puede ser el circuito integrado el SG3524 que posee las siguientes características:
• Control de los circuitos de potencia PWM
Esto nos garantiza que el transistor que va a switchear al transformador, este optimizando su señal para que con la menor energía se pueda conseguir una buena estabilidad de oscilación.
• Salidas push-pull
Esto nos dice que a la salida podemos conectar transistores switch (para comandar al transformador y hacerlo oscilar) en conflagración Push-Pull (es un transistor para comandar el hemiciclo positivo y otro para el negativo)
• 1% máximo de variación de temperatura
Nos permite mantener estabilidad aun en lugares con temperatura.
• Total de corriente de alimentación inferior a 10mA
Bajo consumo del integrado en función del consumo de la fuente.
• Operación más allá de 100kHz
Nos permite manejar frecuencias que están en el orden de los 100000Hz (usar transforamdores mas chicos con menos vueltas de cobre)
Aqui dejo dos circuitos de aplicacion desde su datasheet, el primero de ellos es una fuente comun SMPS para obtener desde 26Vcc a 5V 5A con el integrado SG3524.

Aqui dejo otro circuito desde su datasheet pero este es para una fuente Step-UP, osea para elevar la tensión por ejemplo como las de las potencias de auto, que apartir de 12V elevan a +/-50V, etc..
En este caso eleva de 5V a +/-15V, no entra mucha corriente, de echo menos de 100mA por lo que solo sirve para circuitos lógicos, pero se puede modificar para mas corriente.

[Guia] Audio

Audio
El audio es un tema que abarca muchos lugares, desde saber como hacer un control de volumen, hasta montar un equipo completo. en este caso vamos a tratar todos los temas convencionales dentro de lo usable y accesible.
Comenzaremos con saber como se llaman sus conectores, Como montar un control de volumen, como mezclar el audio, como visualizar el audio, como discriminar o controlar su espectro y ovbiamente como amplificar su señal y reproducirla en bafles.
La idea de estos manuales es mas que nada que tengan una idea practica, que se pueda aplicar ya que no se tocaran temas en donde llevar a cabo el proyecto sea costoso o muy laborioso.

Conectores
Detallare los tipos de conectores para entradas y salidas de audio, ya sean de baja señal o de potencia.
Jack TRS se llama TRS ya que son las siglas de tip, ring y sleeve o en castellano punta, anillo y mango, hace referencia a los conectores que son de tres vias, ya que tienen una punta como una via, un anillo como otra via y el mango que usualmente lo usamos como gnd que es la utlima via, vienen en tres medidas que puden ser a la vez de 2, 3 o 4 vias, las medidas son 2.5mm, 3.5mm y 6.3mm. a continuacion se mostrara una foto de estos conectores en 3 vias ya que es lo normal para el audio.



Cannon XLR-3 este conector es muy comun en entradas de microfono ya que a pesar de tener 3 vias solo se manda el audio en mono. esto es asi porque un pin se usa para gnd, y los otros dos pines se usan para mandar el canal mono de audio, pero con una diferencia, un pin va a mandar el audio mono a 0 y el otro va a mandar la misma señal pero invertida 180 esto es asi porque como se usa en audio profesional con cables muy largos y usualmente estas entradas estan cerca de lamparas de mucha potencia o equipos de audio de mucha potencia, se trata de que no se meta el ruido electrico en el cable por ello se manda la misma señal dos veces solo que la segunda esta invertida, de esta forma al ingresar la señal a la entrada de mic balanceada mediante un circuito de amplificador operacional, se ingresan las dos señales en un amp oper en configuracion diferencial de esta forma lo que hace es sacar la diferencia de la señal entre las dos señales desfasadas y esta diferencia que se quita con ese amp oper, es justamente el ruido, por eso se usa esta interface en audio pro que se llama entrada balanceada. tambien se puede usar para linea de audio en lugar de microfono y puede venir en otro conector por ejemplo el Jack TRS de 6,3mm.


RCA estos conectores que son los mas comunes en audio, son un estandar para lo que es entrada de linea que en algunos paises es de 200mVpp (0,2V pico a pico) y en otros paises es 1Vpp, pero lo mas normal es encontrarlo en 200mVpp.
solo es usado para ingresar audio aunque tambein puede usarse para extraer audio, con el mismo nivel de señal osea 200mVpp ya que seria entrada o salida de linea usualmente vienen en color Rojo y Blanco para dos canales.

SpeakON este conector tal vez no sea muy comun en equipos hogareños pero es muy comun en audio pro, o en potencias y bafles de alta potencia, es un conector de 4 bias que soporta arriba de 20A por lo que es usado en salidas de potencia de audio o en bafles de potencia.

Borneras Las borneras ya las conocemos tambien son las que vienen en los amplificadores y parlantes hogareños, pueden ser rotativas tipo tornillo o pueden ser de empalme rapido como las que tienen el boton.


Control de Volumen
El control de volumen es una piesa fundamental en un equipo de sonido, es lo que nos permite controlar el nivel de audio que deseamos escuchar. Existen muchos tipos de controles de volumen que pueden ser por potenciometros comunes o electronicos por CC (corriente continua),
A continuacion mostra el coneccionado basico de un control de volumen mono, pero el estereo es igual, ya que el audio estereo son dos canales iguales. Notese que uno de los pines del potenciometro ira a gnd, y el del centro lo usaremos hacia el amplificador y el de la derecha ira a la entrada, esto es asi porque nosotros estamos acostumbrados a subir el volumen girando el potenciometro hacia la derecha esto quiere decir que hacia la derecha acercamos la entrada del amplificador a la entrada de señal y si queresmos bajar el volumen lo giramos a la izquierda por ende acercamos la entrada del amplificador hacia gnd, por eso es el orden de los pines, el amplificador siempre debe quedar en el centro ya que si no queremos volumen, queremos que no meta ningun ruido ambiente entonces ponemos la entrada del amplificador a gnd.

Mezcladores
Los mezcladores como lo dice la palabra es para mezclar el audio, osea dejando de lado el trabajo de un Dj, esto nos puede servir para tener varias entradas por ejemplo conectar un diskman, un reproductor de mp3, una pc, etc.. y cada uno con su control de volumen que puede ser independiente o no, y todas estas fuentes de audio a un solo amplificador, con esto salvamos el tema de andar enchufando y desenchufando. Claro que se puede usar un selector de entrada tambien donde seleccionemos solo la entrada que queremos con un interruptor multiple. Pero tambien podemos tener por ejemplo 2 entradas de audio que no se controle el volumen de cada una de ellas (como en una consola mezcladora) sino que el volumen lo controlemos desde el dispositivo, por ejemplo controlar el volmuen de la pc o del mp3. Un ejemplo de esto es los parlantes edifier, que vienen con mas de una entrada para que podamos mantener enchufados mas de una fuente de audio.


Vumetros
Los vumetros son instrumentos para medir el nivel de audio que estamos escuchando, puede venir en varias formas y escalas, por ejemplo podria ser con un tubo CCFT, con LEDs, con instrumento de aguja, etc.. y la escala de medicion puede ser solo del 1 al 10 como tambien el nivel de potencia ejemplo 0,5W a 50W, o por ejemplo en dB que usualmente va de -26dB a +6dB.
Existen varias formas de hacer un vumetro y de conectar un vumetro, por ejemplo en el tema coneccion uno podria conectarlo a la entrada de señal del amplificador, a la salida de potencia del amplificador, o en algunos casos (mas acercandose a un audioritmo se puede conectar un microfono para que tome el sonido de ambiente). Tambien se los puede encontrar en distintos modelos, como pueden ser con integrados de vumetro, con integrados de amplificador operacional, con transistores...
A continuacion mostrare algunos circuitos practicos ya funcionando para conectar un vumetro a la entrada de audio de un amplificador, no pondre de los vumetros que van a la salida de potencia del audio, porque estos eran muy comunes en amplificadores que sus salidas eran clase AB osea un terminal del parlante a la salida y el otro a gnd, pero como hoy en dia esta de moda el amplificador integrado en clase H osea los dos teminales del parlante son amplificados y se conectan al integrado, ya el vumetro no funciona muy bien y hay que acomplejar el circuito, cosa que no es necesaria pudiendo conectarlo a la entrada de señal.
Particularmente me quedo con el de 5 leds, ya que tiene mucha mas ganancia que el de diez y funciona exelente.


Control de tonos filtrado
El filtrado y control de tonos o equalizado, es una parte que podria ayudarnos a el buen rendimiento de nuestro bafle, y tambien a ajustar a gusto o equalizar la onda de nuestra cancion que estemos escuchando.
Usualmente en amplificadores antiguos y hogareños el control se hacia en frecuencias Bajas, Medias y Altas, tambien se podia encontrar solo con control de Bajos y Altas, y como sabran tambien existian y existen los ecualizadores de por ejemplo 10 bandas o 15 o 20 o 25, buen las que el fabricante tenga ganas de poner. Todo esto tambien se consigue hoy, solo comente en la antigüedad porque hoy en dia encontrar un amplificador de audio que sea solo amplificador de audio es complicado. Ya que los que son solo amplficadores son usualmente para la norma Hi-End osea estamos hablando de amplificadores sin control de tonos ni nada solo el control de volumen para que sea lo mas plano posible la amplificacion osea que no se interfiera con la señal de audio, y estos amplificadores cuestan arriba de los 5000 dolares. Por eso digo que ya no quedan amplificadores, solo los que se venden como sinto amplificadores que eso es amplificador con radio, y que vienen con 10 canales de audio, 30 entradas para todos los electrodomesticos de la casa, un control remoto que tiene 80 botones, y si es un amplificador... pero bueno eso tambien ronda los 1000 dolares. Estamos obligados a comprar el audio barato, osea los home theatre de Edifier o los parlantes 2.0, o si queremos gastar mas tenemos que ir a comprar una potencia de boliche de 800 pesos pero que no tiene mas que control de volumen y no es porque sean Hi-End.. sino porque no les interesa agregar otro control ya que siempre estan conectadas a equalizadores o consolas de sonido o algun cross over.
Reanudando un poco, voy a explicar lo que son controles de tonos por CC (corriente continua), controles de tono analogos con amplificador operacional (los mas usados).
Control de tonos por CC: esto es como lo dice su nombre un control de tonos mediante corriente continua, que quiere decir esto, que el control osea la forma de controlar cada uno de los tonos (usualmente solo traen agudos y grabes) es por medio de tension continua, la diferencia con el control de tonos analogo, es que el potenciometro de esecontrol de tonos maneja la señal de audio directamente, y este control por CC solo maneja tension continua que ingresa al integrado y electronicamente se maneja el nivel de audio adentro. Algunos circuitos que nos permiten esto son el TDA1524, el KA2107, el LM1036. No subire circuitos porque realmente no funcionan muy bien a menos que sean muy modificados para ello y de esa forma igualmente siguen metiendo ruido por lo que solo subire circuitos que funcionan bien.

Control de tonos analogo: Este control de tonos esta basado en el filtrado de frecuencias mediante capacitores, por ejemplo sabiendo que el audio va de los 20 a los 20000Hz podriamos decir que para un control de tonos de tres bandas osea grabes medios agudos, podriamos dividir este ancho de banda en tres (el ancho de banda es la cantidad de frecuencia que entra dentro de los limites de 20 a 20000Hz osea 19980Hz) bueno entonces teniendo en cuenta esto dividiendo en tres podemos saber el ancho de banda para cada una de las bandas osea para los grabes, medios y agudos, de ahi con un simple filtro de capacitores podemos recortar la frecuencia que queremos, esto se debe a que el capacitor responde a determinada frecuencia, osea para una detereminada frecuencia se va a comprotar como una resistencia baja y para otra frecuencia como una resistencia alta (esto se llama Reactancia capacitiva y se nota con las siglas Xc) bueno supongamos que calculamos un capacitor para que deje pasar solo los bajos, vamos a querer que deje pasar las frecuencias que son de los 500Hz para abajo y las que estan por encima de los 500 que no las deje pasar, en este caso se comportara como una resistencia alta para las frecuencias de 500 para arriba y una resistencia baja para las frecuencias de 500 para abajo entonces va a dejar pasar las que queremos. Lo mismo para los medios y los agudos. Hasta ahora seria un control de tonos pasivo ya que agarra la señal de audio y le saca lo que no quiere, pero la idea es que aumente lo que uno quiere osea, que le de mas grabes o mas agudos (para un control de tonos activo de dos bias) para ello aparecen los amplificadores operacionales, aquí lo que va a hacer el amplificador operacional es solo amplificar lo que fue filtrado por los filtros de capacitores, lo demas se va a reproducir directamente, notese que la entrada de audio por medio de unas resistenicas va hacia la salida del amplificador por ende esa señal de audio viaja tal cual es sin se modificada (solo atenuada un poco) y la señal que entra al amplificador para ser amplificada es la que sale de los potenciometros, por ende podemos decir que solo se amplificara lo que nosotros elegimos con los potenciometros, ejemplo la señal de audio que entra saldra sin ser modificada pero si aumentamos los grabes esos grabes van a ir a la entrada del amplificador operacional y se sumara a la señal que iva directo a la salida por ende tendremos la misma señal de antes pero con mas grabes, de ahi sale la palabra activo, osea es un control de tonos activo porque las bandas a controlar son amplificadas para que se realce el sonido, tambien se dice en algunos amplificadores que tiene realce de grabes o realce de agudos, etc...

Amplificador de auriculares
Como lo dice la palabra es un amplificador para auriculares, que si bien se preguntaran para que puedo llegar a quererlo, hay gente que paga hasta 1000 dolares por uno, claro que el que paga eso es porque esta comprando un amplficador de auriculares de altisima calidad, pero tambien existen las consolas que son solo para auriculares osea que tienen varias entradas y varias salidas para auriculares y asi poder distribuir el audio en varios auriculares. Tambien puede ser muy comun utilizarlo con auriculares de altas preestaciones, por ejemplo un auricular comun por ejemplo un sony de 50$ viene con una impedancia de unos 50 a 100 ohms y un auricular de altas preestaciones por ejemplo un sennheiser o bose o shure, viene con una impedancia de unos 300 ohms, porque cambian su impedancia, sabemos por ley de ohm que si mantenemos por ejemplo 5V con 50ohm de carga va a tener una corriente de 100mA pero si cambiamos esa resistencia de carga por 300ohms vamos a tener una corriente de 16mA de esta forma al bajar la corriente baja la distorcion del audio por ende nos da mas calidad de sonido, por eso los auriculares pro tienen mas impedancia, pero que pasa baja la corriente por ende baja la potencia y ahi es cuando decimos “cuando tenia los auriculares baratos se escuchaba mas fuerte que con los auriculares caros” eso es porque al bajar la corriente baja la potencia entonces los auriculares pro no se escuchan tan fuerte, pero por eso aparece el tema amplificador de auriculares para poder suplir esta baja de potencia.
El amplificador es comun como cualquier otro solo que al tratarce de baja potencia menos a 1W no es necesario el uso de transistores ni disipadores ni fuentes grandes, si es necesario la alimentacion simetrica por ejemplo una fuente de +/-12Vcc por 500mA, con eso podemos alimentar un amplificador operacional de preestaciones normales como el NJM4556 muy usado enconsolas de sonido para la salida de auriculares (que se usan auriculares de Dj que usualmente son pro) claro que podemos usar algun integrado mejor por ejemplo alguna de la familia OPA de Texas Instrument pero estos son mas dificiles de conseguir y bastante mas caros, por ende nos limitaremos a usar el NJM4556, tengan en cuenta que la calidad de sonido de un equipo no solo es el integrado que usamos, sino todo el circuito en si, de nada sirbe usar el mejor integrado si despues uno hace el circuito en una placa defectuosa, con componentes defectuosos, sin previo calculo de los mismos, y con una fuente mal filtrada, por eso digo que todo tiene que ver. Pero no obstante funciona muy bien este integrado.

Amplificadores de potencia
En este tema se tratara de comprender un poco las clases mas comunes utilizadas en audio, y los circuitos mas basicos de armado para no sufrir desepciones.
Las clases mas usadas de amplificador de audio son ClaseAB y ClaseH pero tambien existen otras como la ClaseA pero por la poca eficiencia de potencia que tiene solo usan algunas personas porque tambien tienen mas calidad pero con un buen clase AB se consigue alcanzar la norma DIN45500 (es la norma Hi-Fi).
La norma Hi-Fi nos dice que para cumplir con ella necesitamos al menos dos canales osea el ampli debe ser estereo, luego necesitamos mas de 5Wrms por canal y un maximo de 0,1% de distorcion armonica total (THD).
El TDA2616 es calse AB osea solo un terminal del parlante es amplificado.
Este tiene +/-10Wrm por canal con 0,15% maximo de THD. Este integrado es el usado por Edifier en sus balfes 2.0 R1000. Ademas posee proteccion contra temperaturas. La fuente de alimentacion puede ser simple o simetrica para que sea simple hay que agregarle un capacitor en serie a cada salida que cumple la funcion de la funete simetrica, el nombre de este capacitor es Bootstrap.


El TDA1557Q y el TDA8563Q tiene ambos el mismo circuito la unica diferencia es que uno es de 22W por canal y el otro de 40W por canal, claro que RMS el primero no pasa los 15W y el segundo no pasa los 25W pero igualmente son una buena opcion por la facilidad de su circuito, no lleban casi ningun componente externo. Estos integrados son ClaseH o Bridge, osea los dos temrinales del parlante son amplificados, es como si tubiese dos amplificadores clase AB para cada parlante, esto gana en potencia, y en fuente ya que la alimentacion es simple y en este caso es de 12V por ende es muy practico para nosotros.



El TDA1562 este integrado es clase H pero mono, lo interesante es que este tiene una fuente elevadora de tension dentro “StepUp” que la utliza para poder ser conectado a 12Vcc claro que las fuentes elevadoras tienden a gastar bastante mas de lo que entregan, es por ello que este integrado consume unos 5A, pero nos entrega 50Wrms a partir de 12V, el circuito es relativamente simple y es bastante bueno para almientar un subwoofer.


Cajas Acusticas
Esta es una parte fundamental de un equipo de sonido, diria que es el 80% de la calidad de sonido de un equipo, ya que si la caja no esta echa de forma calculada no sonara a sun 100%, de echo las cajas acusticas bien echas son costosas porque estan diseñadas para el parlante que llevan y no para cualquier parlante, y no hablo de tamaño sino que hablo del parlante en si, osea si diseñamos una caja para un parlante jbl de 10” solo entrara ese y no po tamaño sino por la frecuencia de resonancia y demas factores que hacen a la sintonia de esa caja, osea la caja es un elemento resonante como lo es una antena o un circuito de radio, por eso no tenemos que restarle importancia, por ejemplo si en un circuito de radio sintonizamos mal su frecuencia captamos otra radio que no nos interesa, esto es lo mismo, la caja no funcionara a su mejor exprecion, por ello insisto en el calculo de la caja acustica, a continuacion dejare un cuadro para el calculo de esta, para realizar cajas acusticas reflex o cerradas.

[Guia] Microcontroladores

NOTA: Los programas realizados en este tutorial estan en el siguiente enlace.

http://www.mediafire.com/?ydb5y3b6e3ljutg


Si bien no voy a dar ejemplos complejos ni voy a utilizar el 100% del micro, voy a tratar este tema en funcion a un microcontrolador (MCU) de la familia PIC de la empresa

Microchip.Microcontrolador PIC16F84AEstudiaremos el PIC16F84A ya que es el mas común, mas accesible y mas fácil de programar pos su simplisidad de registros y configuraciones. Claro que los hay con mas o menos pines, con mas o menos preestaciones y de distintos precios, pero para comenzar es el mas estable.Descripción del microcontrolador PIC16F84A
(No entrare en detalles muy profundos por el solo echo de que la guia sirva a todo el publico.)
a. 35 instrucciones.
b. Clock externo que puede ser en RC (con circuito RC) o XT con un cristal de hasta 4MHz (en su modo normal).
c. Memoria Flash de 1024 direcciones por 14 bit de palabra (aquí ira el programa).
d. Memoria Ram de 64bytes (datos que se usaran alojar valores en variables del programa).
e. Memoria EEPROM de 64bytes (para alojar datos que queramos que no desaparezcan tras el reinicio del MCU).
f. ALU de 8bits (el ALU es la unidad aritmética y lógica, que se encarga de las operaciones numéricas).
g. Interrupciones por el pin INT/RB0, por el temporizador TMR0, por OVERFLOW de la EEPROM y por cambio de estado en los pines RB4 a RB7.
h. 1000000 de ciclos de lectura y escritura de la EEPROM, y una retención de datos por 40 años.
i. 13 pines de entrada y salida con el exterior.
j. Dos puertos de E/S PORTA 5 bit y PORTB 8bit.
k. Un contador / temporizador de 8bit llamado TMR0.
l. Características Electricas: Temp de -55°C to +125°C. Tensión de alimentacion 5V.
Máxima corriente del PORTA 50mA. Máxima corriente del PORTB 100mA.

Principios de ensamblador
En esta guia vamos a aprender lo que es el lenguaje ensamblador o Assembler, con la finalidad de poder comprender la lógica que posee y llegar a desarrollar algunos programas sencillos.
Cada microcontrolador posee su set de instrucciones distinto, la diferencia esta en el fabricante, osea el set de instrucciones de un microcontrolador de la marca Freescale (motorola) “MC”, no es igual a el de AVR (Atmel) “AT” o al de Microchip “PIC”, los microcontroladores que vamos a ver en esta guia son de la firma Microchip y se eligió este en particular porque tiene el set de instrucciones mas chico de todos (solo 35 instrucciones para la linea de 8bit).A continuación mostrare un cuadro con las instrucciones del PIC.

Una vez que tenemos en cuenta las instrucciones que el pic maneja, tenemos que tener en cuenta que todos esos pines que tiene que son bidireccionales por ende entrada salida, y los tipos de clock que soporta y las demás configuraciones, deben configurarse para que el microcontrolador pueda saber que es lo que queremos que haga y como queremos que lo haga.
Primero en el programa tenemos que decirle al compilador que micro queremos usar y la librería de donde va a tomar las instrucciones del pic, para ello se escriben las primeras dos lineas de programa dejando una tabulación de espacio:

LIST P=16F84A INCLUDE

Para ello en el encabezado del programa se escriben una serie de caracteres que indican el tipo de reloj que vamos a usar, si vamos a usar el perro guardián (nos avisa cuando se cuelga el programa), la protección de código, y por ejemplo el delay que hay tras el encendido para que no se genere un pico de tensión que cause disparos erráticos.
esa linea seria asi:

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC


Luego se pondrán las variables a utilizar con la instrucción EQU que significa Equal o igual, aquí se puso la dirección hexadecimal 30 y 31 solo porque se me ocurrió esa pero es para hacer referencia a un punto de memoria. es solo para definir variables. hay otras formas pero son mas abansadas.

PEPE EQU 0x30
PEPA EQU 0x31


Luego de esto comenzamos el programa, donde debemos decirle al micro que empesara ahi, para ello le vamos a poner la instruccion:

ORG 0


Esta instruccion nos dice que el orgien del programa (ORG) es en la posicion cero de la memoria (0) tambien se puede poner en hexadecimal que seria 0x00, o en otras bases pero lo mas comun son esas dos.Seguido de esta instruccion debemos configurar los puertos del micro.

bsf STATUS,RP0
clrf TRISB
clrf TRISA
bcf STATUS,RP0


Aqui aparecen tres instrucciones nuevas, los nombres de los dos puertos y el estatus que va a configurar el micro.
Seria instruccion (BSF) que esto significa BitSetF que quiere decir que va a setear (poner a 1) el bit de F (F es el valor que toma la variable, en este caso la variable es RP0, que esta alojada en un conjunto de variables que se llama STATUS) por ende RP0 va a valer 1. STATUS tiene 8 bits donde el RP0 equivale al bit numero 5 osea graficamente seria STATUS = 00001000.
luego aparece la instruccion (CLRF) esto es clear f, osea borra el contenido de f, mas tecnicamente lo pone a cero. en este caso va a poner TRISB (todo su contenido) a cero, como TRISB es el registro del PORTB osea los 8 pines del integrado del puerto b, que si estan a 1 son entradas y a 0 son salidas. en este caso al decir que borre todo TRISB poner los 8 bit a cero, osea
TRISB = 00000000, por ende seran todas salidas. si quisiera que sean entradas tendrian qeu ser 11111111 o pueden ser mixtos osea 11001100 por ejemplo. pero la instruccion CLRF ya no nos serviria porque esa solo pone a cero toda la variable.
Ahohra se repite lo mismo pero con TRISA, osea el registro de PORTA que tambien lo pone a ceros, por ende tambien son salidas.
Una vez echo esta configuracion aparece STATUS,RP0 pero con la instruccion (BCF) que es BitClearF, osea (poner a 0), ahora RP0 = 0, y STATUS = 00000000. con esto decimos que salimos de la config, osea fijencen que primero entramos a la configuracion, luego configuramos y luego salimos de la configuracion.
Ahora empesamos el programa propiamente dicho, que en nuestro caso sera encender leds a la salida del puerto B, para ello vamos a escribir:

MODDEAR
MOVLW b’01010101’ MOVWF PORTB
GOTO MODDEAR


Notese que aparecen tres instrucciones, MOVLW, MOVWF y GOTO.MOVLW es mover el literal a W (donde W es la memoria RAM), MOVWF es mover de W (osea donde movimos antes) a F que era como habiamos dicho antes el bit del registro en este caso nos refermios a PORTB y por ultimo GOTO que es “ir a”.
Entonces leemos esto, primero aparece un MODDEAR en la primer linea, esto es una etiqueta que puede tener cualquier nombre, hace referencia a un punto en el programa. luego con una tabulacion de espacio aparece MOVLW y luego con otra tabulacion de espacio aparece b’01010101’ esta linea dice mover a W el literal, el literal es b’01010101’ que significa la letra b que hablamos en binario (podria ser h de hex, d de decimal, o de octal, etc..) pero usamos vinario porque es mas visible el led que va a encender es el que tiene el 1 y el que va a quedar apagado es el que tiene 0, entonces va a mover 01010101 a W (que era la ram).
en el siguiente renglon mediante un espacio de tabulacion aparece MOVWF y otra tabulacion mas y aparece PORTB, aca va a mover el contenido de W al PORTB, recordemos que antes le movimos 01010101 a W, asique va a mover eso a PORTB y ahora PORTB tiene 01010101, como PORTB hace referencia al puerto del pic (puerto fisico “las patitas”) los leds que esten ahi van a encender o permaneces apagadaos segun ese numero binario.
Por ultimo aparece mediante una tabulacion el GOTO y en otra tabulacion el MODDEAR, esto quiere decir que va a saltar a la etiqueta MODDEAR que estaba puesta arriba, que quiere decir esto que el programa entra en LOOP osea que hace ciclicamente esto todo el tiempo.
Ahora para terminar el programa necesitamos decirle, que termina y para ello ponermos la instruccion:

END

Aqui temrino todo, solo resta compilar este programa con el MPASM de Microchip (es gratis y se descarga de la pagina) y esto nos genera una serie de archivos que son archivos de registros, de logs, de comentarios y el que nos interesa el *.HEX que es el codigo que se va a leer en el pic, bueno este ultimo archivo lo va a crear si es que el programa no tiene errores, sino no lo crea y habra que corregir el codigo.Una vez que tengamos este archivo solo tenemos que grabar el pic y para ello podemos usar cualquier programa con cualquier interface por ejemplo el ICPROG (gratis) y el programador JDM por puerto Serial.Solo resta grabar el pic y listo para conectarle los leds, el cristal y alimentarlo con 5V.

El programa:

;*************** PROGRAMA PARA ENDENDER LEDS POR EL PUERTO B********************** ;** Powered by MODDEAR ;los espacios entre instrucciones y literales se hacen con tabulaciones, no con espacios. ;los comentarios pueden ir despues de un punto y coma. LIST P=16F84A INCLUDE __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC PEPE EQU 0x30 ; Declaracion de la variable PEPE PEPA EQU 0x31 ; Declaracion de la variable PEPA ORG 0 ; Origen del programa en la posicion cero

bsf STATUS,RP0 ; Se entra a la configuracion de puertos ; poniendo a uno el bit RP0 de STATUS clrf TRISB ; Se pone a cero el registro TRISB, de esta ; forma se transforman en salidas
clrf TRISA ; Se pone a cero el registro TRISA, de esta ; forma se transforman en salidas
bcf STATUS,RP0 ; Se sale de la configuracion de puertos ; poniendo a cero el bit RP0 de STATUSMODDEAR ; Etiqueta MODDEAR
MOVLW b’01010101’ ; Mueve 01010101 a W
MOVWF PORTB ; Mueve el contenido de W (01010101) a PORTB
GOTO MODDEAR ; (se visualisa en la salida)
; Salta a la etiqueta MODDEAR END ; Fin del programa


El circuito seria el siguiente:


Ahora usando el mismo circuito vamos a hacer que prendan y apagen a una velocidad visible.

;*************** PROGRAMA PARA ENDENDER LEDS POR EL PUERTO B INTERMITENTES**********************

;** Powered by MODDEAR;Para que se logre que sean intermitentes debemos crear una demora, sabemos que el micro esta funcionando a ;4MHz (cada instruccion consume 4 ciclos por ende la velocidad real es de 1MHz) entonces tendriamos que bajar ; velocidad porque ver un led prender y apagar a 1MHz es impiosible, entonces para que sea vicible por ejemplo cada 0,5s ; vamos a hacer una demora, osea vamos a hacer perder tiempo al micro, como logramos esto, haciendo que el micro pase; por una instruccion determinada cantidad de veces y despues siga con el programa, la cantidad de veces que pase por esa ; instruccion determina el tiempo que pierde, por ende la demora. LIST P=16F84A INCLUDE __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC PEPE EQU 0x30 ; Declaracion de la variable PEPE PEPA EQU 0x31 ; Declaracion de la variable PEPA ORG 0 ; Origen del programa en la posicion cero bsf STATUS,RP0 ; Se entra a la configuracion de puertos poniendo a uno el bit RP0 de STATUS clrf TRISB ; Se pone a cero el registro TRISB, de esta forma se transforman en salidas clrf TRISA ; Se pone a cero el registro TRISA, de esta forma se transforman en salidas bcf STATUS,RP0 ; Se sale de la configuracion de puertos poniendo a cero el bit RP0 de STATUS MODDEAR ; Etiqueta MODDEAR MOVLW b’01010101’ ; Mueve 01010101 a W MOVWF PORTB ; Mueve el contenido de W (01010101) a PORTB (se visualisa en la salida) MOVLW b’10101010’ ; Mueve 10101010 a W MOVWF PORTB ; Mueve el contenido de W (10101010) a PORTB (se visualisa en la salida) CALL DEMORA ; Llama a DEMORA y una vez que DEMORA termine su rutina vuelve y continua GOTO MODDEAR ; Salta a la etiqueta MODDEARDEMORA ; Etiqueta DEMORA MOVLW 150 ; Movemos el numero 150 decimal a W MOVWF PEPE ; Movemos el contenido de W a la variable PEPE UNO DECFSZ PEPE ; Etiqueta UNO, Decrementamos PEPE GOTO UNO ; Va hacia la etiqueta UNO, va a hacer este loop hasta que PEPE sea Cero RETURN ; Una vez que PEPE sea cero, se saltea la instruccion GOTO UNO y va a ; RETURN , con la instruccion RETURN, retorna donde se llamo anteriormente ; osea vuelve a el CALL DEMORA y sigue con el Programa osea la instruccion ; siguiente que es GOTO MODDEAR. END ; Fin del programa

En este programa aparecen tres instrucciones mas, el CALL, RETURN y DECFSZ, el CALL como lo dice la palabra llama, en este caso a una etiqueta que tenga el mismo nombre, una vez que se ejecuta el llamado a esa etiqueta, se ejecuta la sub rutina que tiene esa etiqueta (en nuestro caso la sub rutina DEMORA) una vez que la subrutina llega a su fin aparece la instruccion RETURN que no hace mas que retornar hacia el punto en donde fue llamada la subrutina, osea vuelve al programa principal justo a la instruccion siguiente al CALL, en nuestro caso a GOTO MODDEAR.
La instruccion DECFSZ significa Decrement F Skip Z, donde F es la variable a decrementar osea PEPE, y Z en el pic es un Flag osea una bandera que esta a 1 o a 0 avisandonos algo, en este caso nos avisa cuando F sea igual a 0, osea como esta instruccion es Decrementar, se entiende que va a ir decrementando de a uno el numero que tiene PEPE, osea cuando pase por ahi va a tener 150, cuando vuelva a pasar por ahi va a tener 149, y asi hasta el cero, y cuando sea cero, el bit Z va a tener un 1 y ahi se producir el Skip osea el “salto” de instruccion.
Resumiendo va a decrementar PEPE hasta que sea cero y cuando sea cero va a saltar una instruccion, ya que mientras no sea cero va a ir a la instruccion que le sige GOTO UNO y cuando sea cero va a saltar esa instruccion y va a ir directamente a RETURN.
Algunas instrucciones consumen un siclo de reloj y otras dos, por ejemplo el CALL, GOTO, RETURN consumen dos ciclos.
cada instruccion normal consume 1us espeto esas que consumen 2us, por ende si pasamos 150 veces por ahi vamos a tener
2 del CALL va a pasar 1 vez -----------------> 2
1 del MOVLW va a pasar 1 vez -----------------> 1
1 del MOVWF va a pasar 1 vez -----------------> 1
1 del DECFSZ va a pasar 150 veces -----------> 150 255
2 del GOTO va a pasar 1 vez -----------------> 300 510
2 del RETURN va a pasar 1 vez -----------------> 2
158us, osea que va a demorar 456 micro segundos 0,000456s cosa que no vamos a notar... asique deveriamos demorar mas, si ponemos 255 (que es 11111111 por ende el numero maximo ya que es un micro de 8 bit) va a ser una demora 771us osea 0,000771, bueno aca tampoco lo vamos a notar., entonces no nos queda otro que usar un DECFSZ mas, pero vamos a usar uno adentro del otro, osea el primer DECFSZ va a contar las veces que va a pasar el segundo DECFSZ que a su vez va a contar un numero., seria:

DEMORA ; Etiqueta DEMORA
MOVLW 150 ; Movemos el numero 150 decimal a W
MOVWF PEPE ; Movemos el contenido de W a la variable PEPE
MOVLW 150 ; Movemos el numero 150 decimal a W
MOVWF PEPA ; Movemos el contenido de W a la variable PEPA
UNO DECFSZ PEPE ; Etiqueta UNO, Decrementamos PEPE
GOTO UNO ; Va hacia la etiqueta DOS, va a hacer este loop hasta que PEPE sea Cero
DOS DECFSZ PEPA ; Etiqueta DOS, Decrementa PEPA hasta que sea cero
GOTO UNO ; Va hacia la etiqueta UNO para repetir el LOOPRETURN ; Retorna a al programa


Osea va a decrementar el LOOP UNO hasta que se haga cero una vez que se hace cero decrmentea solo 1 en el LOOP DOS y vuelve a decrementar los 150 del LOOP UNO, ahi decrementea otro mas en el LOOP DOS y vuelve a dec los 150 del LOOP UNO entonces se podria decir que seria 150 por 150.
Entonces el calculo de tiempo aca seria.
2 del CALL va a pasar 1 vez -----------------> 2
1 del MOVLW va a pasar 1 vez -----------------> 1
1 del MOVWF va a pasar 1 vez -----------------> 1
1 del MOVLW va a pasar 1 vez -----------------> 1
1 del MOVWF va a pasar 1 vez -----------------> 1
1 del DECFSZ va a pasar 150 veces -----------> 1502 del GOTO va a pasar 1 vez -----------------> 300
1 del DECFSZ va a pasar 150 veces -----------> 150 255
2 del GOTO va a pasar 1 vez -----------------> 300 510
2 del RETURN va a pasar 1 vez -----------------> 2
Pero la diferencia es que dentro de un LOOP hay otro LOOP por lo que seria una multiplicacion entre 450 * 450 + 8 = 202ms osea 0,202s pero podriamos demorarlo mas para que se vea mas facil. y poner a PEPA 255 y a PEPE 255 nos daria 585ms osea 0.58s ahi ya es visible la velocidad por ende nos quedaria un programa de la siguiente manera.

;*************** PROGRAMA PARA ENDENDER LEDS POR EL PUERTO B INTERMITENTES**********************;** Powered by MODDEAR
;Para que se logre que sean intermitentes debemos crear una demora, sabemos que el micro esta funcionando a
;4MHz (cada instruccion consume 4 ciclos por ende la velocidad real es de 1MHz) entonces tendriamos que bajar ; velocidad porque ver un led prender y apagar a 1MHz es impiosible, entonces para que sea vicible por ejemplo cada 0,5s
; vamos a hacer una demora, osea vamos a hacer perder tiempo al micro, como logramos esto, haciendo que el micro pase
; por una instruccion determinada cantidad de veces y despues siga con el programa, la cantidad de veces que pase por esa; instruccion determina el tiempo que pierde, por ende la demora.

LIST P=16F84A
INCLUDE

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

PEPE EQU 0x30 ; Declaracion de la variable PEPE
PEPA EQU 0x31 ; Declaracion de la variable PEPA

ORG 0 ; Origen del programa en la posicion cero
bsf STATUS,RP0 ; Se entra a la configuracion de puertos poniendo a uno el bit RP0 de STATUS
clrf TRISB ; Se pone a cero el registro TRISB, de esta forma se transforman en salidas
clrf TRISA ; Se pone a cero el registro TRISA, de esta forma se transforman en salidas
bcf STATUS,RP0 ; Se sale de la configuracion de puertos poniendo a cero el bit RP0 de STATUS

MODDEAR ; Etiqueta MODDEAR
MOVLW b’01010101’ ; Mueve 01010101 a WMOVWF PORTB ; Mueve el contenido de W (01010101) a PORTB (se visualisa en la salida)
CALL DEMORA ; Llama a DEMORA y una vez que DEMORA termine su rutina vuelve y continua
MOVLW b’10101010’ ; Mueve 10101010 a W
MOVWF PORTB ; Mueve el contenido de W (10101010) a PORTB (se
visualisa en la salida)
CALL DEMORA ; Llama a DEMORA y una vez que DEMORA termine su rutina vuelve y continua
GOTO MODDEAR ; Salta a la etiqueta MODDEAR

DEMORA ; Etiqueta DEMORA de 0.58 segundos
MOVLW 255 ; Movemos el numero 150 decimal a W
MOVWF PEPE ; Movemos el contenido de W a la variable PEPE
MOVLW 255 ; Movemos el numero 150 decimal a W
MOVWF PEPA ; Movemos el contenido de W a la variable PEPA
UNO DECFSZ PEPE ; Etiqueta UNO, Decrementamos PEPE
GOTO UNO ; Va hacia la etiqueta DOS, va a hacer este loop hasta que PEPE sea Cero
DOS DECFSZ PEPA ; Etiqueta DOS, Decrementa PEPA hasta que sea cero
GOTO UNO ; Va hacia la etiqueta UNO para repetir el LOOP
RETURN ; RETURN , con la instruccion RETURN, retorna donde se llamo anteriormente
; osea vuelve a el CALL DEMORA y sigue con el Programa osea la instruccion ; siguiente que es GOTO MODDEAR.END ; Fin del programa

De esta misma forma podemos hacer mas secuencias como se imaginaran en este progama tenemos dos secuencias

MOVLW b’01010101’ ; Mueve 01010101 a W
MOVWF PORTB ; Mueve el contenido de W (01010101) a PORTB (se visualisa en la salida)
CALL DEMORA ; Llama a DEMORA y una vez que DEMORA termine su rutina vuelve y continua
MOVLW b’10101010’ ; Mueve 10101010 a W
MOVWF PORTB ; Mueve el contenido de W (10101010) a PORTB (se visualisa en la salida)
CALL DEMORA ; Llama a DEMORA y una vez que DEMORA termine su rutina vuelve y continua
GOTO MODDEAR ; Salta a la etiqueta MODDEAR

Pero pdroan ser mas
MOVLW b’00000011’ ; Mueve 00000011a W
MOVWF PORTB ; Mueve el contenido de W (00000011) a PORTB (se visualisa en la salida)
CALL DEMORA ; Llama a DEMORA y una vez que DEMORA termine su rutina vuelve y continua
MOVLW b’00001100’ ; Mueve 00001100 a W
MOVWF PORTB ; Mueve el contenido de W (00001100) a PORTB (se visualisa en la salida)CALL DEMORA ; Llama a DEMORA y una vez que DEMORA termine su rutina vuelve y continua
MOVLW b’00110000’ ; Mueve 00110000 a W
MOVWF PORTB ; Mueve el contenido de W (00110000) a PORTB (se visualisa en la salida)
CALL DEMORA ; Llama a DEMORA y una vez que DEMORA termine su rutina vuelve y continua
MOVLW b’11000000’ ; Mueve 11000000 a W
MOVWF PORTB ; Mueve el contenido de W (11000000) a PORTB (se visualisa en la salida)CALL DEMORA ; Llama a DEMORA y una vez que DEMORA termine su rutina vuelve y continua
GOTO MODDEAR ; Salta a la etiqueta MODDEAR

Por el codigo que se ve ahi, nos damos cuenta que la secuencia que se va a ver en los leds es que se van a ir moviendo de a dos de derecha a izquierda y lugeo otra vez.
El codigo de saldia seria

0 - 00000011
1 - 00001100
2 - 00110000
3 - 11000000


Bueno les dejo la idea, por ejemplo para hacer un POV “Persisten of Vision” osea eso que se pone en los fanes y escribe cuando gira, pueden hacerlo con este programa (claro no es la forma mas optima de hacerlo ya que hay instrucciones mas dedicadas para tener menos codigo pero igual es valida esta forma y facil de comprender).
Ejemplo para poner una letra “A” van a tener que hacerla con unos y ceros., pero de costado ya que los leds estan de costado

Salidas del PORTB CARACTER “A” SIMPLIFICANDO PARA QUE SE VEA

0 00000
1 01110 111
2 10001 1 1
3 10001 1 1
4 11111 11111
5 10001 1 1
6 10001 1 1
7 10001 1 1


en nuestro porgrama seria

MOVLW b’11111110’ ; Mueve 11111110 a W
MOVWF PORTB ; Mueve el contenido de W (11111110) a PORTB (se visualisa en la salida)
CALL DEMORA ; Llama a DEMORA y una vez que DEMORA termine su rutina vuelve y continua
MOVLW b’00010001’ ; Mueve 00010001 a W
MOVWF PORTB ; Mueve el contenido de W (00010001) a PORTB (se visualisa en la salida)
CALL DEMORA ; Llama a DEMORA y una vez que DEMORA termine su rutina vuelve y continua
MOVLW b’00010001’ ; Mueve 00010001 a W
MOVWF PORTB ; Mueve el contenido de W (00010001) a PORTB (se visualisa en la salida)
CALL DEMORA ; Llama a DEMORA y una vez que DEMORA termine su rutina vuelve y continua
MOVLW b’00010001’ ; Mueve 00010001 a W
MOVWF PORTB ; Mueve el contenido de W (00010001) a PORTB (se visualisa en la salida)
CALL DEMORA ; Llama a DEMORA y una vez que DEMORA termine su rutina vuelve y continua
MOVLW b’11111110’ ; Mueve 11111110 a W
MOVWF PORTB ; Mueve el contenido de W (11111110) a PORTB (se visualisa en la salida)
CALL DEMORA ; Llama a DEMORA y una vez que DEMORA termine su rutina vuelve y continua
GOTO MODDEAR ; Salta a la etiqueta MODDEAR

Lo unico a tener en cuenta es que la velocidad tiene que ser mas rapida que 0.58s por ende ahi tiene que jugar con los valores de PEPE y PEPA y listo nuestro POV con la letra A, si quieren pueden pnoer espacios para que si van a poner mas de una letra no esten pegadas, los espacios son leds apagados asique seria mover b’00000000’ o hacer CLRF a PORTB que iria entre letra y letra.

;*************** POV***************
;** Powered by MODDEAR
; Programa para realizar un POV con la palabra HOLA.

LIST P=16F84A
INCLUDE

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

PEPE EQU 0x30 ; Declaracion de la variable PEPE
PEPA EQU 0x31 ; Declaracion de la variable PEPA
;
ORG 0 ; Origen del programa en la posicion cero
;
bsf STATUS,RP0 ; Se entra a la configuracion de puertos poniendo a uno el bit RP0 de STATUS
clrf TRISB ; Se pone a cero el registro TRISB, de esta forma se transforman en salidas
clrf TRISA ; Se pone a cero el registro TRISA, de esta forma se transforman en salidas
bcf STATUS,RP0 ; Se sale de la configuracion de puertos poniendo a cero el bit RP0 de STATUS
;
MODDEAR
MOVLW b'11111111' ; LETRA H
MOVWF PORTB ; 11111111 CALL DEMORA ; 1
MOVLW b'00010000' ; 1
MOVWF PORTB ; 1
CALL DEMORA ; 11111111
MOVLW b'00010000' ;
MOVWF PORTB ; 1 1
CALL DEMORA ; 1 1
MOVLW b'00010000' ; 1 1
MOVWF PORTB ; 1 1
CALL DEMORA ; 1 1 1 1 1
MOVLW b'11111111' ; 1 1
MOVWF PORTB ; 1 1
CALL DEMORA ; 1 1 CLRF PORTB ; -------------------------- ESPACIO -------------------------------------------
CLRF PORTB ; -------------------------- ESPACIO -------------------------------------------
CALL DEMORA ;
MOVLW b'01111110' ; LETRA O MOVWF PORTB ; 111111
CALL DEMORA ; 1 1
MOVLW b'10000001' ; 1 1
MOVWF PORTB ; 1 1
CALL DEMORA ; 111111
MOVLW b'10000001' ;
MOVWF PORTB ; 1 1 1
CALL DEMORA ; 1 1
MOVLW b'10000001' ; 1 1
MOVWF PORTB ; 1 1
CALL DEMORA ; 1 1
MOVLW b'01111110' ; 1 1
MOVWF PORTB ; 1 1 CALL DEMORA ; 1 1 1
CLRF PORTB ; -------------------------- ESPACIO -------------------------------------------
CLRF PORTB ; -------------------------- ESPACIO -------------------------------------------
CALL DEMORA ;
MOVLW b'11111111' ; LETRA L
MOVWF PORTB ; 11111111
CALL DEMORA ; 1
MOVLW b'10000000' ; 1
MOVWF PORTB ; 1 1
CALL DEMORA ; 1
MOVLW b'10000000' ; 1 MOVWF PORTB ; 1
CALL DEMORA ; 1
MOVLW b'10000000' ; 1
MOVWF PORTB ; 1
CALL DEMORA ; 1 1 1 1
CLRF PORTB ; -------------------------- ESPACIO -------------------------------------------
CLRF PORTB ; -------------------------- ESPACIO -------------------------------------------
CALL DEMORA ;
MOVLW b'11111110' ; LETRA A
MOVWF PORTB ; 1111111
CALL DEMORA ; 1 1 MOVLW b'00010001' ; 1 1
MOVWF PORTB ; 1 1
CALL DEMORA ; 1111111
MOVLW b'00010001' ;
MOVWF PORTB ;
CALL DEMORA ; 1 1 1
MOVLW b'00010001' ; 1 1
MOVWF PORTB ; 1 1
CALL DEMORA ; 1 1 1 1 1
MOVLW b'11111110' ; 1 1
MOVWF PORTB ; 1 1
CALL DEMORA ; 1 1
CLRF PORTB ; -------------------------- ESPACIO
-------------------------------------------
CLRF PORTB ; -------------------------- ESPACIO -------------------------------------------
CALL DEMORA ;
GOTO MODDEAR ; Vuelve a la etiqueta MODDEAR
;
DEMORA MOVLW .10
MOVWF PEPA
UNO MOVLW .60
MOVWF PEPE
DOS DECFSZ PEPE
GOTO DOS
DECFSZ PEPA
GOTO UNO
RETURN
;
END ; Fin del programa


Este codigo se debe hacer en el block de notas de windows o cualqueir otro editor de texto plano, en donde vamos a setear courier new para que se respeten los espacios de caracteres y las tabulacions, y vamos a codificar, no hay que olvidarse que cada espacio entre codigo se hace con la telca TAB en lugar de ESPACE, y los comentarios son despues del “ ; ”.
Una vez codificado todo se guarda como *.asm (es la extencion que pertenece al assembler).

Ahora vamos a proceder a ir al Compilador MPASM


Luego tras la ejecucion de ese programa nos aparecera la ventana para buscar el programa POV.asm (los seteos estan asi por defecto y no es necesario cambiar nada).


Luego de esto vamos a presionar el boton Assemble y nos mostrara una ventana de compilacion con una barra de progreso, que si el codigo esta bien echo debe verse de la siguiente manera.

Luego nos creara 4 archivos en el mismo lugar donde estaba el programa, que seran POV.COD, POV.LST, POV.ERR y POV.HEX,
solo nos interesara el POV.HEX ya que es el que tenemos que usar para el programa que cargara el microcontrolador, (en el caso de que no nos de la compilacion satisfactoria no nos creara el POV.HEX pero tendremos que entrar al POV.ERR para ver los errores que tenemos.
Ahora mostrare como se ve el codigo en Hexadecimal para transferir al PIC.


Ahora solo falta usar un programa para transferiri que va a depender del hardware de interface que se use, por ejemplo, ICPROG, PONYPROG, WINPIC, UPP628, IDC2, etc... y el Hardware de intefdace que puede ser por puerto LPT, o SERIAL o USB.

NOTA: me costo un poco subir el codigo porque se desordena un poco, igualmente aca les subo el .asm por si les interesa hacerlo o verlo bien.

http://www.mediafire.com/?ydb5y3b6e3ljutg