PROYECTO: Relog Digital Basico con ATMEGA

Para continuar con la publicacion de proyectos didacticos enfocados al uso del microcontrolador ATMEGA de AVR, en esta ocasion se presenta este sencillo proyecto: un relog digital.

Descripcion. Este proyecto esta diseñado para funcionar como reloj simple, es decir muestra la hora en 4 displays (88:88), dos para las Horas y dos para los Minutos. El formato en que se muestran es de doce horas, pudiendo cambiar a formato de 24 horas, esto via software . Ademas cuenta con dos pulsadores para el ajuste de horas y minutos, y dos leds indican si la hora que se muestra es AM o PM.

Todo esto manejado por un microcontrolador ATMEGA8 o ATMEGA88, se hace notar que este proyecto NO funciona para ATMEGA48 o ATMEGA88pa.

El micro se programa usando una funcion del BASCOM para el manejo de tiempo real y para mostrar la hora se hace por medio de los 4 displays  por un solo puerto digital utilizando la tecnica del Multiplexeo, lo que hace que sea posible manejar los 29 pines de los displays con tan solo 12 lineas del micro.

Hardware. Basicamente el circuito usado se compone de pocos elementos:

1 microcontrolador ATMEGA8 / 88 : encargado de llevar el tiempo real, por medio del sofware y un cristal externo, y ademas el micro debe manejar el envio de la informacion hacia los 4 display. Tambien el micro maneja dos interrupciones externas, dos pulsadores, con las que se ajustan los Minutos y las Horas.

1 cristal de 32768 hertz : oscilador externo para la sincronizacion de las operaciones y manejo del tiempo real por parte de el micro, se utiliza esta frecuencia porque esta es la requerida por la funcion del BASCOM.

1 display cuadruple o 4 displays individuales: En el caso del montaje que se presenta se utiliza un display cuadruple modelo NFD-5643 catodo comun.

10 resistores de 330 ohmios: Limitan el brillo de los display y leds.

3 resistores de 10k: 2 como pull-up para los pulsadores y una el reset del micro.

2 leds: para la indicacion de AM o PM.

2 pulsadores: normalmente abiertos, de tipo miniatura, el ajuste de Horas y Minutos.

En la imagen siguiente se muestra el circuito completo del proyecto:

Software: El programa de control para el microcontrolador se encarga de llevar el tiempo real, cargar ciertas variables con el valor de las Horas y Minutos, esto por medio de una funcion especial de BASCOM-AVR:

Config Clock = Soft

Esta funcion sirve para configurar el timer 1 para funcionar como un temperorizador en tiempo real, simcronizado por software mediante el crystal externo de 32678 hrz.

Ademas el programa se encarga de desplegar el valor de las variables Horas y Minutos en 4 displays, esto usando la tecnica del multiplexeo.

El codigo completo puede ser descargado desde el widget BOX de la barra lateral izquierda, bajo el nombre de : “relog_simple_wpress.bas”

A continuacion se muestran unas images del ensamble en breadboard del proyecto.

….Let Your Geek Shine ¡¡¡

…and … RTFM ¡¡¡¡¡

Opinion: Batalla de Microcontroladores – ¿PIC o AVR?

El siguiente es un articulo escrito para el boletin informativo de la Facultad de Informatica de la Universidad Tecnologica de El Salvador. Espero les guste ¡

Abstract — Piense en un mp3player, un celular, un horno microondas, la lavadora, el sistema de frenos ABS, un sistema de posicionamiento GPS, el sistema de vigilancia del hogar; todos estos  dispositivos electrónicos tienen algo en común, usan un microcontrolador como unidad central de proceso. El microcontrolador es una pieza importante dentro del diseño electrónico de sistemas embebidos, y cada vez mas se populariza su uso dentro de profesionales y aficionados de la electrónica. El mercado de los microcontroladores esta invadido por decenas de fabricantes, cada uno ofreciendo microcontroladores cada vez mas poderosos, pero dentro de todo esta oferta se encuentran dos fabricantes y es especial dos familias de microcontroladores que pujan por el domino del mercado de los diseñadores de sistemas y de los aficionados y aun estudiantes que utilizan los microcontroladores en diversos diseños ya sea para uso personal o académico.

 

Este documento contiene una comparación entre ventajes y desventajas de estas dos familias de microcontroladores, y pretende dar un vistazo a aquellas características que hacen de los microcontroladores los aliados preferidos en las soluciones embebidas.

Leer documento completo …180909_Articulo_colaboracion_boletin_FICA_Omar_Otoniel_Flores

PROYECTO: Vumetro de 8 Leds.

Un vumetro es un instrumento analogico o digital cuya funcion es mostrarnos el nivel de volumen de un sonido, ya sea captado desde un microfono o desde una entrada de audio fija.

En esta ocacion se presenta el proyecto de un Vumetro Digital de 8 Leds diseñado a partir de un ATMEGA 8, se hace notar que este circuito se puede expandir hasta 21 leds para formar una sola barra indicadora.

El circuito es sencillo, formado por la etapa de audio mas la etapa de muestreo o el  microcontrolador ATMEGA 8, pudiendo ser 48,88 u 88pa.  la etapa de audio formada por el LM386 toma la señal proveniente de un microcofono electret y la amplifica para ser enviada a un canal ADC del micro. Como salidas de tienen los 8 leds que se encenderan dependiendo de la intensidad del la señal entrante al ADC. El esquema completo del circuito se muestra en la imagen siguiente:

*correccion: la resistencia en serie con el cap de 2200pf es de 100 ohmios y no de 10k, como aparece en el esquema.

esquema del proyecto: vumetro 8 leds

Componentes usados:

  • 1 microcontrolador ATMEGA8
  • 8 resistores 330×1/4w
  • 2 resistores 10kx1/4w
  • 1 resistor 100×1/4w
  • 8 leds (3 verdes, 3 amarillos, 2 rojos)
  • 1 IC lm386
  • 1 microfono electret miniatura
  • 1 capacitor 0.1u/15v
  • 1 capacitor 10u/15v
  • 1 capacitor 2200p
  • fuente de alimentacion 5Vdc/500mA

El software de control para el microcontrolador es sencillo y simplemente se encarga de leer el nivel del ADC y compararlo con una tabla, dependiendo del valor leido asi es el numero de leds ha encender, desde 0 hasta 8 leds, o desde 0 hasta 255. Elcodigo completo se puede descargar desde el widget lateral BOX, el archivo esta bajo el nombre de “vu8leds_wpress.zip”.

:-D

Proyecto: VEHICULO SEGUIDOR DE LUZ con Electronica Analogica

IMAG0104Hace poco llego la inquiedtud de desarrollar un prototipo de robot (vehiculo autonomo) que siguiera una fuente de luz, usando simplemente componentes basicos de electronica analogica y con un chasis o base formada por dos motores, derecho e izquierdo, y una rueda trasera sin traccion, lo que le dara movilidad en todos los sentidos al vehiculo.

Siguiendo el esquema basico de un robot, nuestro carrito debe estar dotado de:

sensores —> cerebro —-> actuadores.

Motores, Engranes y Rueda delantera.

Como sensores se utilizaran 2 Resistencias Dependientes de la Luz (LDR) para captar la luz de cada lado de el movil, el cerebro estara formado por 2 transistores BC547 en conjunto con un circuito integrado L293D  para el control de los dos motores DC  a usar como actuadores de nuestro movil. Los motores se acoplan a las ruedas por medio se sendas cajas reductoras de velocidad, formadas por engranes y piñones.

El diagrama del circuito de control del movil se muestra en la figura siguiente, el funcionamiento de este circuito es simple  y tratare de describirlo a continuacion.

SIGUE_LUZ_Q_L293

Diagrama Electronico de Control del SigueLuz

Como se observa del diagrama , el circuito es simple y de bajo costo, los LDR son los encargados de captar la luz de una fuente, al ‘ver’ una fuente de luz el LDR cambia su resistencia ( existe una relacion inversamente proporcional entre la intesidad de luz captada y el valor de la resistencia entre terminales del LDR).  Entonces cuando se ilumina el LDR  aumenta voltaje del divisor formado por el LDR y el POT, este voltaje excita la base del transistor llevandolo  a saturacion, circula corriente entre C-E y hay una caida de voltaje en la resistencia de emisor, esto hace que se presente un voltaje en el PIN ENABLE del L293d que hace mover el motor. El mismo principio de funcionamiento es valido para ambos LDR, por lo tanto se debera conectar el LDR izquierdo controlando el motor derecho y el LDR derecho controlando el motor izquierdo, esto para lograr el giro hacia la fuente de luz. Como se puede ver en el diagrama electronico, el POT forma un divisor de voltaje con el LDR, este POT se encarga se regular la sensibilidad del novil, es decir se debe ajustar a gusto para obtener el minimo valor de intensidad de luz con la que se movera el carrito.

IMAG0134IMAG0123

El circuito integrado L293D se utiliza para manejar las correintes necesacias pra la activacion de los motores DC, la conexion de este IC es la que recomienda el fabricante para el manejo de dos motores  DC,  hacia adelante y detener. Es de hacer notar que este IC tambien posee entradas para el manejo de reversa de cada motor, pero en esta aplicacion no se usan.

El prototipo del movil fue ensamblado en BreadBoard y se alimenta con 4 baterias AA recargables, las LDR se deben orientar de tal forma que cada una este orientada hacia cada lado del movil.

IMAG0109IMAG0117


Los resultados obtenidos fueron satisfactorios XD … el movil fue capaz de seguir una fuente de luz y detenerse en ausencia de esta. (ver videos adjuntos al final del ariculo). Como se observa el movil se mueve hacia la luz a una velocidad relativamente normal, es la velocidad de los motores + engranes. Esta velocidad no pude ser modificada por el circuito de control, en futuros proyectos se incluira en el control un MICROcontrolador, con lo cual sera posible el control de la velocidad como de mas caracteristicas del movil.

A continuacion se muestra el listado de componentes usados, los cuales son pocos y faciles de encontrar. Si ud. esta interesado en adquirir algunos de los componentes de este u otro proyecto aqui presentados, se puede poner en contacto con IngenieriaNacional (polancco@yahoo.com o otonielflores@gmail.com) .

  • 2 Resistores dependientes de luz. LDR
  • 2 Resistores variables de 10k
  • 2 Transistores BC547
  • 2 Resistores 100k
  • 1 IC L293D
  • 2 Motores DC 5V + Engranes reductores
  • 4 baterias AA
  • Rueda delantera sin traccion. (Rueda Loca)
  • Breadboard
  • alambre

IMAG0118 IMAG0126

Espero sus comentarios e ideas. ¡ Let Your Geek Shine ¡

Proyecto: TERMOMETRO AVR Atmega 8/48/88

prime_termoComo primer circuito con los microcontroladores AVR, se presenta en esta ocasion un termometro  basado en el ATmega48 de ATMEL. Este uC posee 4Kb de Flash, un oscilador inteno de hasta 10Mhz, 6 ADCs, 23 pines I/O y mas.

Este circuito presenta en tres displays de 7 segmantos la temperatura, en dos muestra las decenas y unidades , y en el tercer display muestra el simbolo C que representa la escala de medicion CELSIUS. El cerebro de este 02012006171termometro  es el ATmega48 que lee la salida analoga de un sensor de temperatura, esta lectura es procesada y desplegada en los displays (XXC) , ademas el uC  detecta si la temperatura sensada es mayor a un valor preestablecido activando una salida digital y haciendo sonar un Beep en un buzzer. El circuito funciona con 5Vdc con un consumo alrededor de los 400mA, los que bien pueden conseguirse por medio de una bateria de 9v y un regulador 78l05.

Como se menciono el termometro toma la temperatura ambiente por medio de un sensor, cuyo numero es LM35, el cual es un sensor de tres terminales,Vcc, Vout y Gnd, este sensor provee en su salida 10mV por 1 lm35cktgrado Celsius, osea, para una temperatura de 30ºC la salida del sensor entrega un voltaje de 300mVdc. Es esta salida la que se conecta a la entrada de un canal ADC del ATmega48, el cual se programa para tomar la lectura en milivoltios y transformarla a su representacion digital y mostrar la temperatura en tres display (decenas-unidades-letra); ademas el programa activa una alarma (led y buzzer) cuando la03012006219 temperatura sobrepasa un limite previamente establecido. El desempeño del circuito ha resultado satisfactorio, la temperatura mostrara es la correcta y activa el aviso (beep beep beep) al momento de aumentar sobre  el limite. Ver video al final de la nota.

El programa de control a sido escrito en lenguaje BASIC y se ha desarrollado utilizando el IDE BASCOM AVR.  Para detalles acerca del programa, pueden descargar el codigo original en .BAS dentro del .ZIP del enlance disponible en el BOX la barra lateral izquierda. El esquema electronico del hardware usado se muestra a continuacion.

Diagrama del Termometro ATmega48

Diagrama del Termometro ATmega48

La construccion del circuito es sencilla ya que son pocos elemnetos y disponibles en cualquier comercio de componentes electronicos. para el montaje se utilizan:
El tipo de display dependera de la version del programa que se descargue.

  • Microcontrolador ATMEGA48  (se puede utilizar tambien ATMEGA8 o ATMEGA88)
  • Un display AC/CC de tres digitos (o tres display AC/CC de un digito cada uno)
  • Un sensor LM35dz
  • 9 resistores de 330×1/4w
  • Dos leds (rojo y verde)
  • Un buzzer
  • Un LM78l05
  • Bateria de 9v

 

Si tienen dudas o consultas, por favor comenten ¡

Proyecto: PROGRAMADOR ISP STK200 para uC AVR

Como inicio dentro del mundo de desarrollo de proyectos embebidos basados en microcontroladores AVR, debemos posser un circuito interfase que nos servira para grabar, quemar o programar la memoria del uC con el programa de aplicacion especifico.

Es por eso que aqui se presenta la construccion de una interfase programadora para uC AVR familia Atmega. el circuito que se presenta se conoce como STK200 y permite la programacion de la memoria Flash de los micros ATMEGA via el puerto Paralelo del PC, la conexion al microcontrolador se realiza a traves de su interface ISP (MOSI, MISO, SCK). Este circuito a sido probado con excelentes resultados utilizando el IDE BASCOMAVR de la compañia MSCelectronics.

A continuacion se presenta el esquema electronico del programador. 

stk200_21

El PCB o circuito impreso de la implementacion del programador se presenta en la siguiente imagen, este diseño es compacto y practico, el conector al puerto paralelo del PC se monta sobre el mismo circuito impreso y la coneccion al microcontrolador se realiza por medio de un cable de 6 hilos. (MISO MOSI SCK GND VCC RESET)

pcb3

Los componentes  que se utilizan para fabricar este circuito son:

  • Conector DB25 macho, montaje en PCB 
  • Circuito integrado 74ls244 
  • Resistencia 100k x 1/4w 
  • Resistencia 330 x 1/4w 
  • Capacitor Ceramico 0.1uF 
  • Led miniatura 
  • Cable de 6 hilos
  • Conector hacia el uC, 6 pines
  • Tableta de cobre 
A continuacion se presentan algunas imagenes del programador construido y funcional.

Espero este circuito les sea de mucha utiliadad ¡ 

Si tienen alguna duda no duden en consultar :-D

Lee más »

Microcontroladores AVR

He aqui una breve descripcion de los microcontroladores AVR de ATMEL

de Wikipedia:

The AVR is a Modified Harvard architecture 8-bit RISC single chip microcontroller (µC) which was developed by Atmel in 1996. The AVR was one of the first microcontroller families to use on-chip flash memory for program storage, as opposed to One-Time Programmable ROM, EPROM, or EEPROM used by other microcontrollers at the time.

The AVR is a Modified Harvard architecture machine with program and data stored in separate physical memory systems that appear in different address spaces, but having the ability to read data items from program memory using special instructions.

Basic Families

AVRs are generally classified into four broad groups:

  • tinyAVR — the ATtiny series
    • 1–8 kB program memory
    • 8–32-pin package
    • Limited peripheral set
  • megaAVR — the ATmega series
    • 4–256 kB program memory
    • 28–100-pin package
    • Extended instruction set (Multiply instructions and instructions for handling larger program memories)
    • Extensive peripheral set
  • XMEGA — the ATxmega series
    • 16–384 kB program memory
    • 44–64–100-pin package (A4, A3, A1)
    • Extended performance features, such as DMA, “Event System”, and cryptography support.
    • Extensive peripheral set with DACs

Estos microcontroladores poseen ciertas ventajas con respecto a los famosos PIC, los espacios de memoria FLASH y SRAM no estan segmentados en paginas como en los PIC, ademas la serie ATmega posee un oscilador interno que hace opcional el uso de un cristal externo, sumado a esto el costo de los AVR’s es menor.

Existen muchos IDE para desarrollo de programas para AVR’s , con diferentes compiladores desde ASM, C, C++ o BASIC.

Ademas su interfase de programacion ISP es simple y se puede implementar via diferentes puertos del PC.

AVR’s Rules !!!

Proyecto: Termometro PICAXE28X1

En esta ocasion se presenta un proyecto sencillo, un termometro, el cual muestra la temperatura en formato XXC o XXF, en Celsius o Farengeith.

El hardware del proyecto esta basado en el sensor de temperatura LM35, el cual es un sensor de tres terminales, en cuya salida se tiene 10mV por 1 grado Celsius, osea para una temperatura de 30ºC la salida del sensor entrega un voltaje de 300mVdc.

Teniendo en cuenta el funcionamiento del sensor, la salida de este se lee via el conversor analogo digital del microcontrolador PICAXE28X1, el cual se programa para tomar la lectura en milivoltios y transformarla a su representacion digital y  mostrar la temperatura en tres display (decenas-unidades-letra).

Por medio de un interruptor conectado a una entrada digital de microcontrolador, se puede elegir si la temperatura se muestra en ºC o ºF, la conversion entre escalas se realiza via software.

Ademas el microcontrolador se ha programado, para detectar si la temperatura sensada pasa de 30ºC se active una salida digital, con la caul se activa un led alarma. Esta linea digital tambien puede servir para activar algun otro dispositivo tal como ventilador o sirena.

A continuacion se muestra el esquema del circuito usado:

El programa cargado en el microcontrolador esta escrito en lenguaje Basic para Picaxe, usando el PICAXE Programming Editor.

El programa esta estructurado asi:

1 leer por medio del ADC del micro, el valor del voltaje analogo proveniente del sensor LM35, digitalizar el dato.

2 Conociendo que por cada 10mV leidos sera 1ºC, se calcula el valor real de la temperatura en el sensor, dado que se utilizara la resolucion de 10 bits para el ADC, se tendra que para cada posicion binaria su peso en mV sera de 4.88mV, sabiendo esto se aplica la ecuacion Temp_centigrados = ValordelADC*4.88/10.

3 Si ese valor de temperatura es mayor a 30º se activara la salida 1 del micro, es aqui donde conectamos la indicacion o alarma.

4 Si el interrurtor conectado en la entrada digital esta activo (on=1) se hara la conversion a Farengeith, usando la formula Temp_Real=9/5 Temp_centigrados + 32; si no, Temp_Real=Temp_centigrados

5 Mostrar en los display el valor de la Temp_Real por medio de una subrutina que utiliza el multiplexado para manejar tres display usando un solo bus para los datos de segmento y tres salidas para el encendido y apagado de cada unos de los displays.

6 Volver a tomar una nueva lectura y ejecutar esto infinitamente.

Ver codigo ¡

He aqui algunas imagenes de implementaciones basadas en este proyecto, realizadas por estudiantes de la Universidad Tecnologica de El Salvador.

Comentarios?

Proyecto: Matrix de Leds con PICAXE ¡

He aqui un pequeño proyecto basado en un microcontrolador PICAXE28X1, el objetivo del proyecto es desplegar en una pantalla mensajes personalizados, la forma de despliege es de tipo scroll.

A continuacion una descripcion breve, sin detalles tecnicos, acerca de como funciona el proyecto.

El diseño del circuito externo hace uso de las 16 salidas disponibles del microcontrolador,8 para controlar las columnas y 8 para manejar las filas, hay que notar que la pantalla esta constituida por una matriz de 64 leds (diodos emisores de luz) conectados en columnas y filas; tambien se hace uso del IC ULN2803 para amplificar la corriente que demandan los leds.

El diseño del programa que esta ejecutando el microcontrolador, se ha realizado en lenguaje BASIC para microcontroladores PICAXE, lo que ha hecho que sea sencilla para aquellos que ya hallamos programado en ASSEMBLER; el programa basicamente se encarga de eencendido secuencial de las columnas y el envio de informacion para el encendido de determinados leds en las filas, es este encendido de las filas el que hace que se formen letras y simpbolos en la pantalla.

Se adjuntan imagenes y video acerca del prototipo del proyecto.

PICAXE28x1 + LedMatrix8x8 = FUN ... XD
PICAXE28x1 + LedMatrix8x8 = +FUN ... XD
PICAXE28×1 + LedMatrix8×8 = FUN … XD

-D

Diagrama del Circuito :-D

Matriz de leds

Matriz de leds

PinOut de la Matriz

PinOut de la Matriz

Pinout2 de la matrix

Pinout2 de la matrix

EL codigo .BAS puede ser descargado del BOX azul ubicado en el lateral izquierdo del blog. el archivo se llama MANEJO_DE_MATRIZ_WORDPRESS.BAS

En espera de que este proyecto les haya parecido interesante, me despido ¡ espero publicar mas proyectos y tambien recibir sus colaboraciones.

Cualquier duda o consulta acerca del proyecto, por favor dejen sus comentarios ¡¡¡

Salu¡

otoniel.flores@mail.utec.edu.sv

Que es un MICROCONTROLADOR ?

Empezaremos definiendo que es un microcontrolador.

segun Wikipedia:

Un microcontrolador es un circuito integrado o chip que incluye en su interior las tres unidades funcionales de una computadora: CPU, Memoria y Unidades de E/S, es decir, se trata de un computador completo en un solo circuito integrado.

microcontrolador tipico

microcontrolador tipico