Table des matières:

Métronome basé sur un microcontrôleur : 5 étapes
Métronome basé sur un microcontrôleur : 5 étapes

Vidéo: Métronome basé sur un microcontrôleur : 5 étapes

Vidéo: Métronome basé sur un microcontrôleur : 5 étapes
Vidéo: Microcontrôleur : Comment ça marche ? - SILIS Electronique - 2024, Novembre
Anonim
Image
Image

Un métronome est un dispositif de chronométrage utilisé par les musiciens pour suivre les rythmes des chansons et pour développer un sens du chronométrage chez les débutants qui apprennent un nouvel instrument. Il aide à maintenir un sens du rythme qui est crucial dans la musique.

Ce métronome construit ici peut être utilisé pour régler le nombre de battements par mesure et les battements par minute. Une fois ces données de configuration saisies, il émet un bip en fonction des données accompagné d'un éclairage approprié à l'aide de LED. Les données de configuration sont affichées sur un écran LCD.

Étape 1: Composants requis:

·

  • Microcontrôleur Atmega8A
  • · Écran LCD 16*2
  • · Avertisseur piézo
  • · LED (vert, rouge)
  • · Résistances (220e, 330e, 1k, 5,6k)
  • · Boutons-poussoirs (2* antiblocage, 1* verrouillage)
  • · Pile bouton 3V CR2032 (*2)
  • Support de pile bouton (*2)
  • · Connecteur Relimate 6 broches (polarisé)

Étape 2: faire le circuit

Effectuez les connexions du circuit comme indiqué sur l'image sur un veroboard et soudez correctement les connexions

Étape 3: Caractéristiques du métronome

L'interface du métronome est principalement occupée par l'écran lcd. Au-dessus se trouve le microcontrôleur 8A placé au centre avec les LED et le buzzer à droite. Les trois interrupteurs et le connecteur Relimate sont placés en haut.

L'ensemble du projet est alimenté par deux piles boutons uniquement (en série @6V 220mAh) avec une autonomie estimée de 20 jours à 1 mois (pas en continu). Par conséquent, il est modérément économe en énergie et nécessite un courant de 3 à 5 mA.

L'interrupteur à verrouillage automatique est placé à l'extrême gauche et est le bouton ON/OFF. Le bouton au milieu est le bouton de configuration et le bouton à droite est utilisé pour modifier les valeurs de bpm et de battements (par barre).

Lorsque l'interrupteur ON/OFF est enfoncé, l'écran LCD s'allume et affiche la valeur des battements par mesure. Il attend 3 secondes que l'utilisateur modifie la valeur, après quoi il prend la valeur résultante comme entrée. Cette valeur est comprise entre 1/4, 2/4, 3/4, 4/4.

Ensuite, il affiche les battements par minute (bpm) et attend à nouveau pendant 3 secondes que l'utilisateur modifie la valeur après laquelle il définit la valeur particulière. Ce temps d'attente de 3 secondes est calibré après que l'utilisateur ait modifié une valeur. Les valeurs bpm peuvent varier de 30 à 240. Appuyer sur le bouton Setup pendant la configuration bpm réinitialise sa valeur à 30 bpm, ce qui est utile pour réduire le nombre de clics sur les boutons. Les valeurs bpm sont des multiples de 5.

Une fois la configuration terminée, le rétroéclairage LCD s'éteint pour économiser la batterie. Le buzzer émet un bip pour chaque battement et les LED clignotent une à la fois alternativement pour chaque battement. Pour modifier les valeurs, appuyez sur le bouton Setup. Une fois cela fait, le rétroéclairage de l'écran LCD s'allume et l'invite de rythme apparaît comme mentionné précédemment avec la même procédure par la suite.

Le microcontrôleur Atmega8A se compose de 500 octets d'EEPROM, ce qui signifie que quelles que soient les valeurs de battements et de bpm saisies, elles restent stockées même après la désactivation du métronome. Par conséquent, le réactiver le fait reprendre avec les mêmes données que celles saisies auparavant.

Le connecteur Relimate est en fait un en-tête SPI qui peut être utilisé à deux fins. Il peut être utilisé pour reprogrammer le microcontrôleur Atmega8A pour mettre à jour son firmware et ajouter de nouvelles fonctionnalités au métronome. Deuxièmement, une alimentation externe peut également être utilisée pour alimenter le métronome pour les utilisateurs inconditionnels. Mais cette alimentation ne doit pas être supérieure à 5,5 volts et elle outrepasse l'interrupteur ON/OFF. Pour des raisons de sécurité, cet interrupteur DOIT être éteint afin que l'alimentation externe ne court pas avec les batteries intégrées.

Étape 4: Description

Ce projet est réalisé à l'aide du microcontrôleur Atmel Atmega8A qui est programmé à l'aide de l'IDE Arduino via un Arduino Uno/Mega/Nano utilisé comme programmeur ISP.

Ce microcontrôleur est une version moins détaillée de l'Atmel Atmega328p qui est largement utilisée dans l'Arduino Uno. L'Atmega8A comprend une mémoire programmable de 8 Ko avec 1 Ko de RAM. Il s'agit d'un microcontrôleur 8 bits fonctionnant à la même fréquence que le 328p soit 16Mhz.

Dans ce projet, comme la consommation de courant est un aspect important, la fréquence d'horloge a été réduite et l'oscillateur interne de 1 Mhz est utilisé. Cela réduit considérablement l'exigence de courant à environ 3,5 mA à 3,3 V et 5 mA à 4,5 V.

L'IDE Arduino n'a pas la possibilité de programmer ce microcontrôleur. Par conséquent, un package "Minicore" (plugin) a été installé pour exécuter le 8A avec son oscillateur interne à l'aide d'un chargeur de démarrage Optiboot. Il a été remarqué que les besoins en énergie du projet augmentaient avec l'augmentation de la tension. Par conséquent, pour une utilisation optimale de l'énergie, le microcontrôleur a été configuré pour fonctionner à 1 MHz avec une seule pile bouton de 3 V ne consommant que 3,5 mA. Mais il a été observé que l'écran LCD ne fonctionnait pas correctement à une tension aussi basse. Par conséquent, la décision d'utiliser deux piles boutons en série a été appliquée pour augmenter la tension à 6V. Mais cela signifiait que la consommation de courant augmentait à 15 mA, ce qui était un énorme inconvénient car la durée de vie de la batterie deviendrait très faible. Il a également dépassé la limite de tension de sécurité de 5,5 V du microcontrôleur 8A.

Par conséquent, une résistance de 330 ohms a été connectée en série avec l'alimentation 6V pour se débarrasser de ce problème. La résistance provoque essentiellement une chute de tension sur elle-même pour abaisser le niveau de tension à moins de 5,5 V pour faire fonctionner le microcontrôleur en toute sécurité. De plus, la valeur de 330 a été choisie en tenant compte de divers facteurs:

  • · L'objectif était de faire fonctionner le 8A à une tension aussi basse que possible pour économiser de l'énergie.
  • · Il a été observé que l'écran lcd a cessé de fonctionner en dessous de 3,2 V bien que le microcontrôleur fonctionnait toujours
  • · Cette valeur de 330 garantit que les chutes de tension aux extrêmes sont exactement exactes pour utiliser pleinement les piles boutons.
  • · Lorsque les piles boutons étaient à leur apogée, la tension était d'environ 6,3 V, le 8 A recevant une tension efficace de 4,6 à 4,7 V (@ 5mA). Et lorsque les batteries étaient presque sèches, la tension était d'environ 4V avec le 8A et l'écran LCD recevant juste assez de tension, c'est-à-dire 3,2V pour fonctionner correctement. (@3.5mA)
  • · En dessous du niveau 4v des batteries, elles étaient effectivement inutiles sans aucun jus pour alimenter quoi que ce soit. La chute de tension aux bornes de la résistance varie tout le temps puisque la consommation de courant du microcontrôleur 8A et de l'écran LCD diminue avec la réduction de la tension, ce qui contribue essentiellement à augmenter la durée de vie de la batterie.

L'écran LCD 16 * 2 a été programmé à l'aide de la bibliothèque LiquidCrystal intégrée de l'IDE Arduino. Il utilise 6 broches de données du microcontrôleur 8A. De plus, sa luminosité et son contraste étaient contrôlés à l'aide de deux broches de données. Cela a été fait de manière à ne pas utiliser de composant supplémentaire, c'est-à-dire un potentiomètre. Au lieu de cela, la fonction PWM de la broche de données D9 a été utilisée pour ajuster le contraste de l'écran. De plus, le rétroéclairage LCD devait être éteint lorsqu'il n'était pas nécessaire, donc cela n'aurait pas été possible sans l'utilisation d'une broche de données pour l'alimenter. Une résistance de 220 ohms a été utilisée pour limiter le courant à travers la LED de rétroéclairage.

Le buzzer et les LED étaient également connectés aux broches de données du 8A (une pour chaque). Une résistance de 5,6 kohms a été utilisée pour limiter le courant à travers la LED rouge tandis qu'une résistance de 1k ohms a été utilisée pour la verte. Les valeurs de résistance ont été choisies en acquérant un point idéal entre la luminosité et la consommation de courant.

Le bouton ON/OFF n'est pas connecté à une broche de données et est simplement un interrupteur qui commute le projet. L'une de ses bornes se connecte à la résistance de 330 ohms tandis que l'autre se connecte aux broches Vcc de l'écran lcd et du 8A. Les deux autres boutons sont connectés à des broches de données qui sont tirées en interne pour fournir la tension via le logiciel. Ceci est nécessaire pour le fonctionnement des interrupteurs.

De plus, la broche de données à laquelle le bouton de configuration se connecte est une broche d'interruption matérielle. Sa routine de service d'interruption (ISR) est activée dans l'IDE Arduino. Cela signifie que chaque fois que l'utilisateur souhaite exécuter le menu de configuration, le 8A suspend son fonctionnement actuel de métronome et exécute l'ISR qui active essentiellement le menu de configuration. Sinon, l'utilisateur ne pourrait pas accéder au menu de configuration.

L'option EEPROM mentionnée précédemment garantit que les données saisies restent stockées même après la mise hors tension de la carte. Et l'en-tête SPI comprend 6 broches - Vcc, Gnd, MOSI, MISO, SCK, RST. Cela fait partie du protocole SPI et comme mentionné précédemment, un programmeur ISP peut être utilisé pour programmer à nouveau le 8A pour ajouter de nouvelles fonctionnalités ou autre chose. La broche Vcc est isolée de la borne positive de la batterie et, par conséquent, le métronome offre la possibilité d'utiliser une alimentation externe en gardant à l'esprit les restrictions mentionnées précédemment.

L'ensemble du projet a été construit dans un Veroboard en soudant les composants individuels et les connexions appropriées selon le schéma de circuit.

Conseillé: