miércoles, 28 de octubre de 2015

ENTRADAS SALIDAS DIGITALES ARDUINO

Entradas salidas digitales ArduinoEntradas salidas digitales Arduino, para ver el uso de los pines entradas salidas digitales Arduino se utilizarán como placas de prueba el arduino uno y el arduino mega, el arduino uno tiene 12 pines que pueden ser utilizados como entradas salidas digitales arduino y están numeradas del 2 al 13, los pines 0 y 1 son utilizados para la comunicación serial, el arduino mega tiene 51 pines que pueden ser utilizados como entradas salidas digitales arduino y están numeradas del 2 al 13, y del 22 al 53 los pines 0 y 1 y del 14 al 21 son utilizados para comunicaciónes, algunos de estos pines pueden también cumplir algunas otras funciones pero en esta ocasión solo se comentará sobre su utilización como pines de entradas salidas digitales arduino.
La programación de los pines como entradas salidas digitales arduino será realizada en el software ARDUINO, este lenguaje está basado en C/C++, además como los microcontroladores que forman parte del arduino son microcontroladores AVR, los  pines del arduino como entradas salidas digitales también puede ser programado mediante el lenguaje C/C++ utilizado para programar los microcontroladores AVR, se verán algunos ejemplos de como realizar esto.
En esta sección se verán ejemplos sencillos para comprender como programar los pines del arduino como entradas salidas digitales, es una sección de aprendizaje, ejemplos mas complejos serán publicados en la sección llamada proyectos arduino.

Entradas salidas digitales Arduino

Para elegir si un pin será utilizado como una entrada o salida digital el arduino tiene una función llamada
pinMode() cuya forma general se puede ver así:
pinMode(numero_de_pin , como_entrada_o_como_salida_digital)
para el arduino uno numero_de_pin puede ser de 0 a 13, mientras que para el arduino mega puede ser de 0 a 53, para indicarle si será una entrada digital será mediante la palabra reservada INPUT y para indicarle que será una salida digital será mediante la palabra reservada OUTPUT.
Por ejemplo si se quiere utilizar el pin 37 del arduino mega como entrada digital, esto se hará así:

martes, 20 de octubre de 2015

PWM AVR, MODULACIÓN ANCHO DE PULSO

PWM AVR, PWM  quiere decir modulación por ancho de pulso; cuando se tiene una onda rectangular de un periodo fijo o de una frecuencia fija, a la parte de la onda rectangular que está a mayor nivel o en alto se le llama pulso el cual tendrá un ancho, mediante el PWM se modifica el ancho de ese pulso, con el módulo PWM pwm avrAVR es muy fácil hacerlo, el uso del PWM tiene mucha importancia en el control de dispositivos en diversos modos como son el control de velocidad de motores, control de iluminación, control de temperatura, de transistores, y mucho mas.
En la imagen se tiene un circuito en el que una carga necesita una tensión VCC para su máxima potencia sin dañarse, si la tensión sobre la carga se disminuye la potencia en la carga también disminuirá, si la tensión se hace cero la potencia en la carga será 0, se puede hacer también lo contrario, es decir aumentar la potencia en la carga aumentando la tensión de la fuente de alimentación, en este caso se ha controlado la potencia en la carga, que es lo mismo que decir se esta controlando el comportamiento de la carga, variando el valor de la tensión de la fuente de alimentación VCC.
Otra forma de lograr variar la potencia sobre la carga, o el comportamiento de la carga, en la que no se tenga que variar el valor de la fuente de alimentación VCC, sería alimentar la carga con el valor de VCC mediante pulsos en forma de una onda rectangular, esto es como cortar la alimentación y luego volver a dar alimentación a una cierta frecuencia, tiene que ser muy rápida, donde el valor máximo de la onda sería VCC y el mínimo 0V, esta onda rectangular tendrá un valor medio que estará comprendido entre VCC y 0V, el valor medio de la tensión que le llega a la carga se puede controlar variando el tiempo que el pulso estará en alto Talto, que es el ancho de pulso de la onda rectangular que alimente a la carga, y esto es justamente la modulación por ancho de pulso PWM, la tensión media máxima que le llegará a la carga será cuando el ancho del pulso sea igual al periodo de la onda rectangular y en ese momento tendrá un valor de VCC, la tensión mínima que le llegará a la carga será cuando el ancho del pulso sea de 0 y en ese momento tendrá un valor de 0V.
PWM AVR ancho de pulso
Se verá como utilizar el módulo PWM AVR para obtener estas ondas rectangulares PWM, para controlar la potencia o en este caso el comportamiento de dispositivos electrónicos, en adelante se les llamará señales PWM, como se ve en la imagen de arriba es importante que el periodo de la señal PWM sea constante y como la frecuencia es la inversa del periodo, el lo mismo que decir que la frecuencia de la señal PWM tiene que ser constante, aunque se puede cambia si se quiere, eso va depender de donde se la vaya a utilizar la señal PWM.

martes, 13 de octubre de 2015

CONVERTIDOR ANALÓGICO DIGITAL ADC CON MICROCONTROLADOR AVR

convertidor analógico digital AVR ejemplo2 imagenEl ADC convertidor analógico digital AVRpermite medir señales analógicas en forma digital, para ello el AVR cuenta con pines por donde le llegará la señal analógica, estos pines deben configurarse como entradas analógicas, el convertidor analógico digital AVR convierte la señal analógica que le llega al pin configurado como entrada analógica, en un número binario de 10 bits que representará la medida analógica, este número binario se guarda en sus registros ADCH y ADCL de 8 bits cada uno pero estos actúan como un solo registro de 16 bits, en el registro ADCH se guardan los bits mas significativos y en el registro ADCL se guardan los bits menos significativos, el número que representa la tensión analógica y guardado en forma binaria dentro de estos registros será de 10 bits para el ATMEGA88 que  será el microcontrolador AVR utilizado para los ejemplos.
El ADC convertidor analógico digital AVR necesita una tensión de referencia para poder trabajar adecuadamente, esta tensión de referencia Vref normalmente será la tensión a la cual trabaja el AVR, aunque por programa se puede elegir otras tensiones de referencia; a la relación que hay entre la tensión de referencia Vref y el máximo número binario de 10 bits 210-1=1023=1111111111 que representará la señal analógica se le conoce como resolución, por ejemplo para el caso del ATmega88 se tendrá que la resolución del convertidor analógico digital AVR será:
Resolución = Vref/(210-1) = Vref/1023
Si se toma como la Vref=5V que es la tensión adecuada a la que trabaja el ATmega88 se tendrá que la resolución de su convertidor analógico digital AVR será:
Resolución = 5V/(210-1) = 5V/1023
de donde
Resolución = 0,004887585533V ≈ 0,0049V luego la resolución para el caso del convertidor analógico digital AVR de 10 bits con un voltaje de referencia de 5V será:
Resolución=4,9mV
La resolución indica en este caso que a la tensión de referencia de 5V se le ha partido en 1023 partes iguales y cada una de esas partes equivalen a aproximadamente 4,9mV, al utilizar esto en forma digital indicará que para un 0 será 0V, si el voltaje aumenta desde 0 en 4,9mV se tendrá un 1, si aumenta 2 veces 4,9mV se tendrá un 2, si aumenta 3 veces 4,9mV se tendrá un 3, si aumenta 4 veces 4,9mV se tendrá un 4 etc.

domingo, 11 de octubre de 2015

PANTALLAS LCD CON MICROCONTROLADOR AVR

LCD AVR, se verá el uso de las pantallas LCD 2x16 sobre el cual se comentó aquí, pero  en este  caso  su utilización con el microcontrolador AVR, a lo cual se referirá a esto como LCD AVR, el microcontrolador AVR de prueba será el ATmega88, es muy importante utilizar el LCD AVR para obtener un mayor conocimiento sobre el manejo de los microcontroladores AVR, es una forma sencilla y muy práctica de poder ver en una pantalla como van trabajando los registros del AVR, o como se van actualizando los datos que interesen, con el LCD AVR se puede sacar máximo provecho al microcontrolador AVR, como ya se verá.
Ahora de lo que se tratará es sobre como hacer trabajar juntos la pantalla LCD 2x16 con el microcontrolador AVR utilizando el ATMEL STUDIO, por lo que se necesitará una librería que al ser utilizada como un archivo de cabecera, se podrá manejar el LCD AVR mediante funciones fáciles de recordar; si se busca se puede encontrar muchas librerías en la red, una  de ellas y es la que se usará es la que se puede encontrar aquí en la opción que dice "LCD library for HD44780 based LCD's", se puede descargar como un ZIP; como se puede ver también se tienen librerías para el manejo de las comunicaciones seriales I2C y UART que sería muy importante descargar para  futuros usos.
Es de mencionar que el driver descargado solo trabaja para enviar los datos y caracteres al LCD con 4 bits, se puede elegir entre el nible alto o el nible bajo del bus de datos del LCD.
LCD AVR archivosUna vez descargada y descomprimida la librería para el manejo del LCD AVR, se verá que se tienen los archivos que se muestran en la imagen, los archivos necesarios son los que están resaltados, uno es el lcd.c y el otro el lcd.h, estos archivos serán los originales y hay que cuidarlos, en lo posible no modificarlos, lo que se hará serán copias a las cuales si se podrá modificar pero se recomienda solo la parte en la que se le indica el puerto donde se conectará la pantalla LCD AVR, que viene a ser solo una línea de código, se ve en la imagen que también hay un manual que será de mucha utilidad, además los archivos vienen comentados así que no será complicado utilizarlos, se puede ver el manual en línea aquí, el archivo test_lcd es un ejemplo.

miércoles, 7 de octubre de 2015

INTERRUPCIÓN EXTERNA AVR

interrupción externa AVR atmega88La interrupción externa AVR se produce cuando en un pin preparado especialmente para este fin se produce algún evento, como por ejemplo ocurra algún cambio de estado en el pin como por ejemplo pasar de un bajo(0) a un alto(1); la interrupción externa AVR se comentará para el caso del ATmega88 pero si se quiere utilizar algún otro el procedimiento es muy similar, solo hay que guiarse de la hoja de datos del microcontrolador AVR utilizado.
La interrupción externa AVR es útil para el manejo de pulsadores, detectores de cruce por 0, teclados matriciales y mucho mas; hay 2 tipos de interrupciones externas en los microcontroladores AVR, en la imagen se tiene la  representación de los pines del Atmega88, los pines resaltados que se nombran como INT0 e INT1, son pines que están preparados para producir una interrupción externa AVR por diversos eventos que se pueden elegir por programa, otro microcontroladores AVR tienen mas pines INTx; mientras que los pines nombrados como PCINT0, PCINT1 así hasta PCINT23, son pines que están preparados para producir una interrupción externa AVR cuando en estos pines se produce un cambio de estado, esto es si sus estados pasan de alto a bajo o de bajo a alto; las interrupción externa AVR se producirá no importando si el pin elegido es una entrada o salida digital.

INTERRUPCIÓN EXTERNA AVR INT0 E INT1

Los pines INT0 e INT1 trabajan de forma independiente pero realizan el mismo tipo de tarea, a través de estos pines se pueden realizar una interrupción externa AVR, siendo la causa o el evento que produzca la interrupción uno de los siguientes motivos:
  • Un 0 o bajo en el  pin INT0 o INT1.
  • Por cambio de estado en el pin INT0 o INT1, esto  es que pase de un bajo a un alto o de un alto a un bajo.
  • Por flanco de bajada ocurrido en el pin INT0 o INT1, esto es que el estado del pin pase de un alto a un bajo.
  • Por flanco de subida ocurrido en el pin INT0 o INT1, esto es que el estado del pin pase de un bajo a un alto.
Para elegir el tipo evento que producirá la interrupción externa AVR y el pin a utilizar, se utiliza el registro llamado registro de control de la interrupción externa EICRA.

INTERRUPCIONES MICROCONTROLADORES AVR

Interrupciones Microcontroladores AVR, los microcontroladores, en este caso los microcontroladores AVR, se programan para que realicen tareas de acuerdo a lo que interese, normalmente realizarán esas tareas en forma ordenada una tras otra en forma cíclica, a esto se le conoce como el programa principal; las interrupciones microcontroladores AVR son eventos que hacen que el programa principal se detenga, para que el microcontrolador AVR se dedique ha realizar otras tareas, mientras no ocurra una interrupción el microcontrolador solo realizará las tareas indicadas dentro del programa principal.
Cada modelo de microcontrolador AVR tendrá una serie de interrupciones que podrá detectar, para que se detecte las interrupciones microcontroladores AVR, es necesario programar algunos registros dependiendo de cual se quiere que sea la causa de las interrupciones, se tienen registros para habilitar las interrupciones microcontroladores AVR y registros para detectar cuando se han producido interrupciones.
Para la programación de los microcontroladores AVR y por tanto para las interrupciones microcontroladores AVR se utilizará el ATMEL STUDIO, mediante el cual se programa en C/C++, al programar las interrupciones microcontroladores AVR se tendrá que incluir una librería llamada interrupt.h de la siguiente manera:
#include<avr/interrupt.h>
 8-) MUY IMPORTANTE "Para obtener mas información sobre las librerías que se utilizan para programar los microcontroladores AVR en C/C++ se puede visitar este enlace, aquí se encontrará una descripción detallada sobre las diversas librerías con las que se cuenta para programar los AVR, las funciones que incluyen, los modelos de microcontroladores AVR en los cuales se pueden utilizar las librerías, ejemplos".
En el siguiente enlace se puede ver toda la información respecto a la librería interrupt.h, el como iniciarla, como declararla, como utilizar sus funciones, como invocar las interrupciones y mucho mas, se recomienda mucho visitarla para tener información adecuada para el uso de esta librería.
Para habilitar el uso de interrupciones microcontroladores AVR en C/C++ se hace mediante la siguiente instrucción:
sei();//habilita el uso de las interrupciones globales.
Para deshabilitar el uso de interrupciones microcontroladores AVR en C/C++ se hace mediante la siguiente instrucción:
cli();//deshabilita todas la interrupciones.
Luego dependiendo de que tipo de interrupciones se quiere que se produzcan se tendrán que manipular algunos registros mas; los registros que le  correspondan a cada tipo de interrupción a utilizar se verán en sus respectivas secciones en los enlaces que se tendrán mas abajo o en el menú superior o lateral de está página.
Para las interrupciones microcontroladores AVR, la rutina de atención a las interrupciones se realiza mediante la siguiente macro:
ISR(causaDeLaInterrupcion_vect){
//tareas a realizar durante la interrupción
}

lunes, 5 de octubre de 2015

TIRISTOR SCR CONTROL DE FASE POTENCIA

scr control de faseSCR control fase potencia, en este caso  se comentará el uso del  tiristor scr en el control de la fase de una fuente de corriente alterna, esto consiste en recortar la señal alterna, que es una onda senoidal, en algún punto de su forma de onda.
Cuando la forma de onda de la tensión alterna, cae sobre una carga en forma completa, esto es sin ningún tipo de recorte, sobre la carga aparece una corriente, con lo cual se genera potencia sobre la carga; si de alguna manera se recorta la forma de onda de la tensión alterna, esto es lo mismo que decir se controla la fase, como se ve en la imagen por ejemplo, sobre la carga ya no aparecerá la misma cantidad de corriente que aparecía cuando sobre la carga caía la tensión alterna completa, por lo que tampoco se generará sobre la carga la misma potencia, entonces mediante el control de fase se controlará la cantidad de potencia que genera una carga conectada a una fuente de corriente alterna; de aquí que muchas veces se utilicen en forma indiferente los términos control de fase o control de potencia, en este caso aquí se le llamará control fase potencia y como esta tarea lo realizará el tiristor SCR, se le llamará SCR control fase potencia.
8-) Cabe mencionar que la intención en esta publicación solo es complementar los estudios que se siguen sobre este tema en alguna escuela especializada, se recomienda además la lectura de libros especializados en el tema ya que el control de fase de la corriente alterna es un tema muy amplio y corresponde a la especialidad de electrónica de potencia, por lo que es muy importante tener conocimientos de electricidad y electrónica, ademas de que las pruebas a realizar sean hechas en un laboratorio adecuado y con supervición.
La siguiente es la imagen del circuito utilizado para comentar como el SCR control fase potencia trabaja, es similar al circuito utilizado para ejemplo realizado en el tema anterior sobre el tiristor SCR en alterna, a este circuito se le ha añadido una resistencia SCR control fase potenciavariable RV tal como se puede apreciar, será mediante esta resistencia variable que se logrará  el control de fase con el tiristor SCR.
R es para limitar la corriente a través de la compuerta del SCR, el diodo es para proteger la compuerta del SCR de la parte negativa de la corriente alterna que le llegará mediante este circuito, RL es la carga sobre la cual circulará la corriente alterna cuando el SCR se active, generando una tensión VRL sobre la carga, será la forma de onda de esta tensión la que se controlará mediante el SCR control fase potencia.
La corriente IL tiene que ser menor que la corriente máxima que puede soportar el SCR entre su ánodo y su cátodo cuando este entre en conducción o se active, este valor se puede encontrar en la hoja de datos de tiristor SCR que se utilice como IRMS , por ejemplo para el SCR 2N5061 será de 800mA,

sábado, 3 de octubre de 2015

TIRISTOR SCR EN ALTERNA

Tiristor SCR en alternaPara ver el comportamiento del tiristor SCR en alterna, se utilizará el circuito que se muestra en la imagen, donde RL representa la carga que será conectada al SCR, a través de la cual circulará una corriente IL cuando el tiristor se active mediante una señal que le llegue a su compuerta.
La corriente IL tiene que ser menor que la corriente máxima que puede soportar el SCR entre su ánodo y su cátodo cuando este entre en conducción o se active, este valor se puede encontrar en la hoja de datos de tiristor SCR que se utilice como IRMS , por ejemplo para el SCR 2N5061 será de 800mA,
RG es una resistencia que limitará la corriente que llegará a la compuerta, para realizar el cálculo de la resistencia que garantice que el tiristor SCR se activará, se aplicará la ley de kirchoff en la malla de la compuerta, para esto será necesario conocer la corriente de disparó IGT, así como su tensión de disparo VGT del SCR, estos valores se pueden obtener de la hoja de datos del tiristor SCR que se utilice,  VS la fuente de tensión alterna que se utilizará para el ejemplo del comportamiento del tiristor SCR en alterna, por ejemplo para el SCR 2N5061 según su hoja de datos la corriente que garantiza que el 2N5061 se activará es IGT=200uA y su tensión de disparo es de VGT=0,8V a una temperatura ambiente de 25ºC; luego:
RG=(VS-VGT)/IGT

viernes, 2 de octubre de 2015

ONDA DIENTE DE SIERRA CON EL TIRISTOR SCR

onda diente de sierra con el SCRLa obtención de una onda diente sierra con la ayuda del tiristor SCR es de mucha ayuda para comprender como es el comportamiento del tiristor SCR en corriente continua, la forma en que se logra obtener la onda diente sierra será de mucha utilidad cuando se quiera utilizar el tiristor SCR en alterna como por ejemplo en el control de fase.
En el ejemplo que se realizará se obtendrá una onda diente sierra similar a la que se ve en la imagen, esto se logra conociendo las medidas de la corriente de disparo IGT, la tensión  de disparo VGT y la corriente de mantenimiento IH del tiristor SCR utilizado, del es muy importante tener a la mano su hoja de datos para utilizarlo como referencia.
Resulta que los valores para la IGT, la VGT y la IH que se ven en la hoja de datos muchas veces no serán los que le correspondan al tiristor SCR cuando se lo utilice en un circuito real, y para realizar el circuito mediante el cual se obtendrá una onda diente sierra es necesario contar con las medidas de IGT, VGT, IH que estén lo mas cercano posibles a sus valores reales; una forma práctica de obtener estos valores aproximados, no son los valores reales pero serán útiles para la realización de los circuitos, se puede ver en un vídeo publicado en el canal de Youtube de MrElberni al cual se le ha llamado Tiristor SCR 3 medidas importantes, el vídeo es el que se muestra a continuación:

Para el ejemplo de la obtención de una onda diente sierra, se utiliza el tiristor SCR 2N5061 que es el que se ve en el vídeo mostrado para el cual se obtuvieron las medidas aproximadas de su corriente de disparo IGT, su tensión de disparo VGT y su corriente de mantenimiento IH, cabe aclarar que las medidas que se obtienen son aproximadas, pero dan mejores resultados al utilizar el 2N5061 en un circuito real en comparación con las que para este caso se obtendrían con la ayuda de la hoja de datos del dispositivo, estos son: