Tabla de contenido:

Metrónomo basado en microcontrolador: 5 pasos
Metrónomo basado en microcontrolador: 5 pasos

Video: Metrónomo basado en microcontrolador: 5 pasos

Video: Metrónomo basado en microcontrolador: 5 pasos
Video: Práctica 2.4: Metrónomo con subdivisiones 2024, Junio
Anonim
Image
Image

Un metrónomo es un dispositivo de sincronización utilizado por los músicos para realizar un seguimiento de los ritmos de las canciones y para desarrollar un sentido de la sincronización entre los principiantes que están aprendiendo un nuevo instrumento. Ayuda a mantener un sentido del ritmo que es crucial en la música.

Este metrónomo construido aquí se puede utilizar para establecer el número de pulsaciones por compás y las pulsaciones por minuto. Una vez que se ingresan estos datos de configuración, emite un pitido de acuerdo con los datos acompañados de la iluminación adecuada mediante LED. Los datos de configuración se muestran en una pantalla LCD.

Paso 1: Componentes necesarios:

·

  • Microcontrolador Atmega8A
  • · Pantalla Lcd de 16 * 2
  • · Zumbador piezoeléctrico
  • · LED (verde, rojo)
  • · Resistencias (220e, 330e, 1k, 5.6k)
  • · Pulsadores (2 * antibloqueo, 1 * bloqueo)
  • · Batería de tipo botón CR2032 de 3 V (* 2)
  • Soporte para pilas de monedas (* 2)
  • · Conector Relimate (polarizado) de 6 pines

Paso 2: Hacer el circuito

Realice las conexiones del circuito como se muestra en la imagen en un veroboard y suelde las conexiones correctamente

Paso 3: características del metrónomo

La interfaz del metrónomo está ocupada principalmente por la pantalla LCD. Encima está el microcontrolador 8A colocado en el centro con los LED y el zumbador a la derecha. Los tres interruptores y el conector Relimate se colocan en la parte superior.

Todo el proyecto funciona con dos baterías de tipo botón (en serie a 6 V 220 mAh) con un tiempo de ejecución estimado de 20 días a 1 mes (no de forma continua). Por lo tanto, tiene una eficiencia energética moderada y tiene un requisito de corriente de 3 a 5 mA.

El interruptor de bloqueo automático se coloca en el extremo izquierdo y es el botón de ENCENDIDO / APAGADO. El botón del medio es el botón Configuración y el botón de la derecha se usa para cambiar los valores de bpm y beats (por compás).

Cuando se presiona el interruptor de ENCENDIDO / APAGADO, la pantalla lcd se enciende y muestra el valor de los tiempos por barra. Espera 3 segundos para que el usuario cambie el valor, después de lo cual toma el valor resultante como entrada. Este valor varía entre 1/4, 2/4, 3/4, 4/4.

Luego muestra los latidos por minuto (bpm) y nuevamente espera 3 segundos para que el usuario altere el valor después de lo cual establece el valor particular. Este tiempo de espera de 3 segundos se calibra después de que el usuario modifica un valor. Los valores de bpm pueden variar de 30 a 240. Al presionar el botón Configuración durante la configuración de bpm, se restablece su valor a 30 bpm, lo cual es útil para reducir la cantidad de clics en los botones. Los valores de bpm son múltiplos de 5.

Una vez realizada la configuración, la luz de fondo de la pantalla LCD se apaga para ahorrar batería. El zumbador emite un pitido por cada latido y los LED parpadean uno a la vez alternativamente para cada latido. Para cambiar los valores, se presiona el botón Configuración. Al hacer eso, la luz de fondo de la pantalla LCD se enciende y el indicador de ritmo aparece como se mencionó anteriormente con el mismo procedimiento después.

El microcontrolador Atmega8A consta de 500 bytes de EEPROM, lo que significa que los valores de latidos y bpm que se ingresen permanecen almacenados incluso después de apagar el metrónomo. Por lo tanto, volver a encenderlo hace que se reanude con los mismos datos que se ingresaron antes.

El conector Relimate es en realidad un encabezado SPI que se puede utilizar para dos propósitos. Se puede usar para reprogramar el microcontrolador Atmega8A para actualizar su firmware y agregar nuevas funciones al metrónomo. En segundo lugar, también se puede utilizar una fuente de alimentación externa para alimentar el metrónomo para usuarios incondicionales. Pero esta fuente de alimentación no debe ser superior a 5,5 voltios y anula el interruptor de ENCENDIDO / APAGADO. Por razones de seguridad, este interruptor DEBE estar apagado para que el suministro externo no se cortocircuite con las baterías incorporadas.

Paso 4: descripción

Este proyecto se realiza utilizando el microcontrolador Atmel Atmega8A que se programa utilizando el IDE de Arduino a través de un Arduino Uno / Mega / Nano utilizado como programador ISP.

Este microcontrolador es una versión con menos funciones del Atmel Atmega328p que se usa ampliamente en Arduino Uno. El Atmega8A consta de una memoria programable de 8 Kb con 1 Kb de RAM. Es un microcontrolador de 8 bits que funciona a la misma frecuencia que el 328p, es decir, 16 Mhz.

En este proyecto, como el consumo de corriente es un aspecto importante, se ha reducido la frecuencia de reloj y se utiliza el oscilador interno de 1 Mhz. Esto reduce en gran medida el requisito de corriente a aproximadamente 3,5 mA a 3,3 V y 5 mA a 4,5 V.

El IDE de Arduino no tiene la capacidad de programar este microcontrolador. Por lo tanto, se instaló un paquete "Minicore" (complemento) para ejecutar el 8A con su oscilador interno utilizando un cargador de arranque Optiboot. Se notó que el requisito de energía del proyecto aumentaba con el aumento de voltaje. Por lo tanto, para una utilización óptima de la energía, el microcontrolador se configuró para funcionar a 1 MHz con una sola batería de botón de 3 V que consumía solo 3,5 mA. Pero se observó que la pantalla lcd no funcionaba correctamente a un voltaje tan bajo. Por lo tanto, se aplicó la decisión de usar dos baterías de moneda en serie para aumentar el voltaje a 6V. Pero esto significó que el consumo de corriente aumentó a 15 mA, lo cual fue un gran inconveniente ya que la duración de la batería sería muy pobre. También superó el límite de voltaje seguro de 5,5 V del microcontrolador 8A.

Por lo tanto, se conectó una resistencia de 330 ohmios en serie con la fuente de alimentación de 6 V para eliminar este problema. Básicamente, la resistencia provoca una caída de voltaje en sí misma para reducir el nivel de voltaje dentro de los 5,5 V para hacer funcionar de manera segura el microcontrolador. Además, el valor de 330 se eligió teniendo en cuenta varios factores:

  • · El objetivo era hacer funcionar el 8A al voltaje más bajo posible para ahorrar energía.
  • · Se observó que el lcd dejó de funcionar por debajo de 3.2V aunque el microcontrolador seguía funcionando
  • · Este valor de 330 asegura que las caídas de voltaje en los extremos sean exactamente precisas para hacer un uso completo de las pilas de botón.
  • · Cuando las pilas de botón estaban en su punto máximo, el voltaje era de alrededor de 6,3 V, y el 8A recibía un voltaje efectivo de 4,6 - 4,7 V (@ 5 mA). Y cuando las baterías estaban casi secas, el voltaje era de alrededor de 4V con el 8A y el lcd recibiendo el voltaje suficiente, es decir, 3.2V para funcionar correctamente. (@ 3,5 mA)
  • · Por debajo del nivel de 4v de las baterías, eran efectivamente inútiles sin ningún jugo para alimentar nada. La caída de voltaje a través de la resistencia varía todo el tiempo, ya que el consumo de corriente del microcontrolador 8A y el lcd se reduce al reducir el voltaje, lo que esencialmente ayuda a aumentar la vida útil de la batería.

La pantalla LCD de 16 * 2 se programó utilizando la biblioteca LiquidCrystal incorporada del Arduino IDE. Utiliza 6 pines de datos del microcontrolador 8A. Además, su brillo y contraste se controlaron mediante dos pines de datos. Esto se hizo para no usar un componente adicional, es decir, un potenciómetro. En cambio, se utilizó la función PWM del pin de datos D9 para ajustar el contraste de la pantalla. Además, la luz de fondo de la pantalla LCD debía estar apagada cuando no se necesitaba, por lo que esto no habría sido posible sin usar un pin de datos para encenderlo. Se utilizó una resistencia de 220 ohmios para limitar la corriente a través del LED de retroiluminación.

El zumbador y los LED también se conectaron a los pines de datos del 8A (uno para cada uno). Se usó una resistencia de 5,6 k ohmios para limitar la corriente a través del LED rojo, mientras que se usó una resistencia de 1 k ohmios para el verde. Los valores de la resistencia se han elegido adquiriendo un punto óptimo entre el brillo y el consumo de corriente.

El botón ON / OFF no está conectado a un pin de datos y es simplemente un interruptor que cambia el proyecto. Uno de sus terminales se conecta a la resistencia de 330 ohmios mientras que el otro se conecta a los pines Vcc del lcd y del 8A. Los otros dos botones están conectados a pines de datos que se levantan internamente para suministrar voltaje a través del software. Esto es necesario para el funcionamiento de los interruptores.

Además, el pin de datos, al que se conecta el botón Configuración, es un pin de interrupción de hardware. Su rutina de servicio de interrupción (ISR) se activa en el IDE de Arduino. Lo que esto significa es que siempre que el usuario quiere ejecutar el menú de configuración, el 8A suspende su operación actual de trabajo como un metrónomo y ejecuta el ISR que básicamente activa el menú de configuración. De lo contrario, el usuario no podrá acceder al menú Configuración.

La opción EEPROM mencionada anteriormente asegura que los datos ingresados permanezcan almacenados incluso después de apagar la placa. Y el encabezado SPI consta de 6 pines: Vcc, Gnd, MOSI, MISO, SCK, RST. Esto es parte del protocolo SPI y, como se mencionó anteriormente, se puede usar un programador ISP para programar el 8A nuevamente para agregar nuevas funciones o cualquier otra cosa. El pin Vcc está aislado del terminal positivo de la batería y, por lo tanto, el metrónomo brinda la opción de usar una fuente de alimentación externa teniendo en cuenta las restricciones mencionadas anteriormente.

Todo el proyecto se construyó en un Veroboard soldando los componentes individuales y las conexiones apropiadas de acuerdo con el diagrama del circuito.

Recomendado: