Vumetro de 8 Leds. @AVR

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, el diodo sirve para rectificar la señal alterna de aundio a una dc pulsantes que al pasar por el filtro formado por la R y el capacitor, llega a la entrada del ADC como un nivel semi-estable de voltaje.

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». o descargarlo directamente de LINK.

aqui esta el link de donde puedes descargar el .HEX hecho para un Atmega8 —> AQUI

😀

79 respuestas

  1. Hola que tal, baje las fotos que estan anexadas y empece a realizar otra vez el circuito, ya jala muy bien, solo tengo una pregunta mas, que valor o que le muevo al programa para que sea un poco menos sensible el microfono, ya que al poner a volumen mas o menos la musica, se prenden rapidamente todos los leds aunque el volumen es bajo a medio mas o menos. Gracias por contestar, y sigue asi que tus proyectos son interesantes, ahora pasare hacer el del carrito. ARIGATO

    • me alegra escuchar que te funciono…..
      para bajar la sensibilidad, se puede hacer de dos formas: via hardware o via software.
      la mas simple es por hardware, aumentar la resistencia de 10k de polarizacion del microfono.
      o por software, aumentar el valor de comparacion de los niveles captados por el adc.

  2. oye soy nuevo con este micro y me gustaria que me pudieras ayudar diciendome que instrucciones son para poder hacer un vumetro

    • Hoila Gustavo, gracias por el comentario.
      El programa de instrucciones que comanda el vumetro presentado puede ser descrgado del BOX azul de la barra lateral izquierda, el archivo esta bajo el nombre de “vu8leds_wpress.zip”.

  3. oye disculpa ya por ultimo que programa usas para pogramar en c

    • Hola Gustavo.
      Los proyectos que se muestran en este blog, estan desarrollados en lenguaje Basic, utilizando el IDE BASCOM-AVR. Esto debido a la facilidad y baja complejidad, ya que son proyectos para estudiantes que recien comienzan en el mundo uC.
      Para usar lenguaje C, se puede utilizar el IDE WINAVR.,

  4. Hola. Soy estudiante de electrónica me ha surgido una duda con este proyecto. Me gustaría saber que pasa si le cambio el micrófono por una entrada común pluying, proveniente ya sea de un pc o un simple mp3. Abría que realizar alguna modificación en cuanto a las resistencias o algo así ?. De ante mano muchas gracias.

    • Hola Felipe…..
      si puedes usar como entrada la salida de audio de la PC o un Mp3player….debes de quitar el LM386 y sus componentes asociados…y debes de conectar tu salida del mp3 a el anodo del diodo.

      Gracias por tu comentario ¡

  5. q tal, en la programación comparas los valor que ingresan al uC y el rango que usas es de 740 hasta 830, mi pregunta es como calculo estos valores si estoy usando un sensor ultrasonico maxsonar-z1, si la salida analogica del sensor esta comprendida entre 0 y 2.55v que representa el valor de la distancia medida el factor empleado es de 10mV/pulgada, espero tu uyuda…

    saludos
    Guille

    • Gracias por tu comentario Guille.

      Primero, deseas realizar un Vumetro o un Medidor de Distancias.?
      Por el sensor me parece que quieres hacer un Medidor de Distancias, el EZ1 con salida analoga.
      ….simplemente debes de «leer» el dato analogo arrojado por elsensor, usando un canal ADC del ATMEGA con la instruccion lectura = GETADC(#canal) ….. esto regresa un valos digital que representara los voltios que da el sensor…este valor digital debe ser manipulado dentro del programa para obtener el valor de la distancia…primero lo debes convertir para que represente exacatmente los milivoltios y luego lo dividirlo entre 10 para que te de un numero de pulgadas……
      te sugiero revises el programa del termometro que se publica en este blog https://microcontroladores2utec.wordpress.com/2009/03/17/termometro-avr-atmega48/

      saludos.

  6. oye otonielflores pon en la lista de materiales el diodo 1N4148. Y (((PORFA))) ARREGLA QUE MISMO ESTA BIEN EN EL ESTEMA EL PIN 6 DEL INTEGRADO LM386 ESTA UNIDO AL PIN 7 DEL ATMEGA8 Y VUELTA EN LA FOTO DEL PROTOBOARD EL PIN 6 DEL INTEGRADO LM386 ESTA UNIDO AL PIN 20 DEL ATMEGA8. PORFA ARREGLA ESTOY HACIENDO ESTE PROYECTO PARA PASE DE CICLO

    • Hola Fernando.

      Tienes razon, hace falta en la lista el diodo !N4148 .

      …el pin 6 del LM386 es la alimentacion del chip, necesita estar conectado a Vcc….y ya que el pi7 y 20 del uC son Vcc…se puede unir a cualquiera de los dos, pin7 o 22.

      …ojala pases de ciclo.

      saludos.

  7. Y CIERTO EL PIN 1 DEL ATMEGA 8 PORQUE ESTA CON UNA RESISTENCIA DE 10K Y EL LA FOTO DEL PROTO NO ESTA

    • ….el pin 1 del micro es RESET, la resistencia es necesaria para realizar la conexion del uC con el programador para poder descargar el programa.
      …en el breadboard no se incluye, ya que el uC ya esta programado, por eso el pi1 se pone a VCC.

  8. muyy bueno yo ando intentadno hacer un vumetro activo k se incremente cada vez tres db.. gracias buen aporte

    • Gracias por tu comentario….
      …un vumetro con ls caracteristicas que mencinas se puede basar en un LM3914.

      Saludos

  9. muy buen aporte, sera posible si me puedes mandar el codigo en lenguaje ensambler para verlo en AVR, gracias

  10. muy buen aporte, sera posible si me puedes mandar el codigo en lenguaje ensambler para verlo en AVR es q estoy intentando cuadrar con el ATMEGA32, gracias

    • Hola Nicolas.
      Te comento que los progrmas estan escritos en lenguaje de alto nivel, Basic, usando el IDE BASCOM AVR, por lo tanto el ensamblador no esta disponible, mas si esta disponible el archivo .hex, si quieres te lo envio y usas un sofware de-ensamblador para recuerar la version asm del hex.

      Sakudso.

  11. hola, soy nuevo en esto
    mi pregunta es, el microcontrolador ATMEGA8 hay que programarlo, ya viene programado o que onda ???
    la verdad necesito ayuda, estoy en finales de escuela y la verdad ese proyecto esta padre !!!
    pero no se que onda con el microcontrolador ATMEGA8
    ayuda porfavor !!!

  12. hola q tal me poodrias pasar el programa para el pic???

    • Hola Javier.
      Este proyecto esta desarrollado usando uC ATMEGAx8 de la familia AVR, un micro diferente al pic.
      El programa para el ATMEGA puede descargarse del BOX azul de la barra lateral izquierda.

      Saludos

  13. Hola otonie Flores… me parece interesante tu proyecto .. crees que me puedas pasar el codigo o el .hex ? con la mayor brevedad =D gracias
    y felicidades veo buena ideas!

  14. Hola Claudia.

    El codigo del firmware esta escrito en Basic para AVR, y se ha compilado usando el BASCOM-AVR.
    Lo puedes descargar de:
    Elcodigo completo se puede descargar desde el widget lateral BOX, el archivo esta bajo el nombre de “vu8leds_wpress.zip”.

    Si lo que necesitas es el .hex (para atmega8) hasmelo saber y te lo compilo y lo subo tambien.

    Saludos.

  15. Hola… Gracias por contestar…

    Lo que me estan enseñando es con ATmel AVR studio 4 con lenguaje assembler.. no se si puedes enviarme ello y el .hex para probarlo y simularlo…

    Te lo agradeceria inmensamente ,, alli esta mi correo gracias!

  16. El cogigo que esta en el box creo q es con BASIC cierto? quisiera probarlo con AVR Studio hay alguna forma.. o algo?

    • Hola Clau,
      Si, el codigo del box es Basic para compilarlo usando Bascom.AVr…..si lo quieres usar en AVRStudio, la verdad, tendrias que reescribir todo el programa en ensamblador, es decir reacer el codigo.
      Sin embargo, con el .HEX, lo puedes descargar al atmega8 desde el AvrStudio sin problemas.

      Saludos

      • Hola nuevamente.. dentro dde tus sentencias
        If Lectura > 830 Then Goto Siete

        que exactamente indica 830 el numero de decibeles o como?

      • HOla.

        El programa es simple, recordemos que la resolucion del ADC del Atmega es de 10 bits, por lo tanto se tienen 1023 niveles digitales desde 0 a 5Vdc.
        Luego la señal que entra desde el microfono se digitaliza y estara en el rango 0 a 1023, es por eso que se divide 1023 entre 8 que es el numero de leds maximo, y a cada led se le asigna un rango de valores digitales para los cuales encendera.
        En el caso de 830, esto indica un valor de la señal de entrada de 4.05 voltios, osea que si la señal (volumen) del microfono es masyor a 4v se encenderan todos los leds.

        Saludos.

  17. una sola pregunta
    q software usas para
    cargar el programa

    para despues quemarlo???

  18. HOla, lastimosamente NO se puede, debiado a que son dos familias de uCs diferentes.
    NI el microcode ni el quemador.

    Debes usar BASCOM-AVR y un programador para AvR.

    *Si lo deseas se te pude proporcionar un microcontrolador ATMEGAx8 programado con el firmaware para el Vumetro.*

    Saludos.

  19. Hola como estas quisiera saber si me podrias enviar el .hex del proyecto que presentas al correo que pongo. Gracias

    Atte.

    Rogger R.

  20. y de donde eres amigo
    me intereso eso del micro programado

  21. y para el microfono en una software de simulacion como lo puedo localizar, o como lo hiciste para tener la simulacion

  22. …Este proyecto NO fue previamente simulado en un software, debido a justamente eso que mencionas. Sin embargo podrias ensamblarlo en Proteus y simular el microfono con una fuente variable de AC entre 1 y 2Khz @ 0 a 5 Vdc.

  23. lleva un diodo me podrias decir cual es

  24. otra pregunta este vumetro se puede extendar para 18 leds????

  25. disculpa este programa puede ser compatible para cualquier tipo de pic???
    ejemplo el 16f877a??
    o solo para el atmega8

  26. gracias.
    disulpa me podrias pasar un programa con 18 leds pero que este sea, de 6 colores cada uno, osea, q haga lo mismo pero por 6 leds.

    saludos, gracias

  27. hola soy nuevo en esto y pues en la escuela me dejaron hacer un proyecto y pues este se me hace muy interesante me podrias enviar porfavor el programa en .hex para poder hacer este proyecto

    • Hola Dar.
      Gracias por tu comentario.

      Una lectura mas detallada del post :
      «Elcodigo completo se puede descargar desde el widget lateral BOX, el archivo esta bajo el nombre de “vu8leds_wpress.zip”

      Saludos

  28. ok gracias por responder pero la verdad es que pues ya descargue el programa que esta en el windget pero lo q pasa necesito el programa en hexadecimal para poder pasarlo a lenguaje de ensamblador por que mi proyecto me pide en lenguaje de ensamblador y pues me podrias porfavor enviar el hexadecimal garacias

    • hola.
      El programa esta escrito en BASCOM-AVR, si necesitas el .hex, solo debes de compilar le programa usando el BASCOM y listo.

      Saludos.

  29. hola espero este bien me podrias por favor pasar el vumetro simulado con cualqueir programa por ejjemplo que sea proteus o algun otro la verdad ya lo trate de hacer pero no me sale y es para poder exponer en clase si me podrias facilitar el vumetro simulado se te agradeceria mucho

    • HOla, gracias por tu comentario.

      Lastimosamente, debido a que el sensor es un microfono, y el proteus no sula microfono, no se puede simular este circuto. Deras armarlo para demostrar el funcionamiento.

      Una forma en proteus seria cambiar el micro por un potenciometro. y tu manualmente mover el potenciomentro y ver como se comportan los leds.
      Otra forma seria, poner en lugar del micro una fuente de audio.

      Saludos.

  30. Disculpa otra pregunta cuanto me podrías vender el microcontrolador y en que forma podría comprartelo ya que pues si necesito el micro pero no se como que quemarlo porfa ir si puedes venderlo dame mas detalles para poder conseguirlo pues mucha gracias y espero tu respuestas

    • Hola.
      Claro que se te puede vender.
      Soy de El Salvador y te lo envio ya programado.
      Pago por pay-pal, se envia via correo.
      Si estas interesado, dime tu direccion y te calculo el costo de envio.

      Saludos

  31. A si que de preferencia ya este quemado con el programa pues muchas gracias

  32. Ok si me interesa yo soy de mexico como cuanto es el precio en total del microcontrolador ??

  33. hola disculpa me podrias informar cuanto seria el precio del microcontrolador

  34. ok esta perfecto pero no tendras otro metodo de pago
    pues le verdad si me interesa comprarte el microcontrolador
    pero pues el pay-pal es por tarjeta de credito y pues la verdad no cuento con una
    y no se tiene otro metodo de pago
    gracias

  35. para podertelo comprar ya lo antes posible ya que pues si me es de gran necesidad gracias por responder

  36. Hola que tal! oye creo que hay un problema al descargar el archivo .zip, hay manera de descargarlo de otra parte?

  37. Perdona… y si quisiera agregar mas led’s, como puedo adaptar el firmware para otro puerto? digamos un total de 16 leds solo por tomar un ejemplo… el intervalo que usas en los if mayor que… deben tambien de cambiar?

    la verdad me gusto mucho este proyecto pero seria bueno poder expandirlo…

    de antemano gracias

    saludos!…

    • Gracias por tu comentario.

      Si es posible expandirlo, y como tu dices, una opcion es reducir los intervalos de los IF y obtener 16 niveles.
      y partir de estos THEN activar el coresspondiente led de los 16.

      Un ejemplo seria: utilizar le puertoB para los ocho leds superiores.
      y dividir el intervalo de 700 a 830 entre 16 y hacer igual numero de IFs.

      el IF inferior seria:

      If Lectura < 700 Then
      Portd = &B00000001
      Portb = &B00000000
      End if

      y el If superior :

      If Lectura >830 Then
      Portd = &B00000000
      Portb = &B10000000
      End if

      Espero te haya servido .
      Y cuando lo armes me gutaria compartir fotografias de tu proyecto.

      Saludos

      • Bastante interesante, honestamente el lenguaje que estas usando se ve mucho mas sencillo y practico, yo lo tengo que programar en C con Avr Studio, 😦

        solo una molestia mas analizando el lenguaje encuentro esto que de verdad no logro entender.

        Dim Lectura As Word
        Dim I As Byte
        Dim Prom As Word

        Leds Alias Portd

        y tambien esto al final de los if…

        Leds = 3 Leds = 7

        el numero que se le esta asignando a la variable Leds corresponde a los 255 que se usan para encender los 8 led’s?

        y lo que me comentabas de dividir el intervalo de 700 a 830 entre 16 textualmente la operacion es 130/16 cierto? solo para corroborar.

        Muchisimas gracias y claro en cuanto tenga el proyecto con mucho gusto anexamos fotos de nueva cuenta gracias y disculpa el abuso

        saludos y buen dia!.

  38. Saludos Sadek_an.

    El lenguaje que se usa es el Basic con el compilador BASCOM-AVR.

    Primero:

    Los DIM son variables a dimensionar como word o byte: Lectura, I y Prom.

    Segundo:

    Es correcta tu intuicion, esos son numeros decimales para encender ciertos leds. y si se desean encender todos se hace leds=255.

    Tercero:

    Si, el limite inferor seria 700, el segundo 708 , el tercero 716 ….y asi.

    Siempre y cuando tenga tiempo, es un gusto ayudar.
    Saludos,

  39. Ya me da pena jeje,

    con el ejemplo que me estabas mostrando de los 16 leds

    IF inferior

    If Lectura 830 Then
    Portd = &B00000000
    Portb = &B10000000
    End if

    // no se supone que estos leds deben estar en 1 puesto que ahora vamos con los leds de mayor peso? bueno por decirlo de alguna manera
    quedaria el if superior de esta manera?

    Portd = &B11111111
    Portb = &B10000000
    End if

    mucha gracias!!

  40. hola soy del df… oie una pregunta…. como le hago para programar mi atmega8… tengo el programador del atmega8… (solo sirve para programar el atmega8)… pero no c como descargarlo de la compu al micro… lo se descargar del avrstudio… pero de este programa al atmega8 no se q pex… estaria chikles bomba si me podras decir. ya lo descargue en hexadecimal en el avrstudio pero no pifo por eso lo quiero descargar del bascom avr

    • Hola Billykane.
      Gracias por tu comentario.

      Entiendo que lo que no puedes es compilar el codigo usando el bascom, es decir generar el archivo .HEX listo para descargarlo al micro?

      si es asi, aqui esta el link de donde puedes descargar el .HEX hecho para un Atmega8 —> AQUI

      Saludos.

      • ya esta mi querido watson… este programa en verdad q si pifa… solo queria ver si sabes especificamente q hace cada componente osea me refiero a los capacitores y el diodo… xq razon se ponen …. de ante mano se agradece tu aporte.

  41. Bien por ti Billyka.

    Me harias el favor de enviarme algunas fotos y video de tu montaje, y con gusto las publico.

    Acerca de la diodo y capacitor, se ha acualizado el post con dicha info.

    Saludos

  42. hola q onda de q valor son los valores de los capacitores si me podrias decir por favor te lo agradeceria de ante mano

    • si lees el post:

      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

  43. Hola.. como puedo conectarlo a un amplificador?

    • En lugar del microfono, conecta estas lineas de entrada en paralelo con la bocina alimentada por el amplificador.

      Saludos

  44. […] en el interesante diseño de un vúmetro sobre un ATMEGA8 se ha elaborado un circuito un poco más complejo, pero esta vez con un microcontrolador Freescale, […]

Replica a otonielflores Cancelar la respuesta