2014/11/12

Ecouter la musique avec PIC 16F628A

Aujourd'hui, nous allons voir comment jouer les notes musicales d'une chanson avec un microcontrôleur PIC. 

Les notes de musique sont tout simplement des ondes sonores de fréquences particulières. Si la fréquence d'une note est connu correctement, un microcontrôleur peut être programmé pour jouer la note en générant une onde carrée (de même fréquence)  en utilisant le PWM  à l'une de ses broches d'E/S. Le signal doit être envoyé à un haut-parleur pour écouter le son. Ici, nous allons discuter de jouer des notes de la populaire "Joyeux anniversaire" tune en utilisant un microcontrôleur PIC16F628A et un buzzer.



Notes musicales en utilisant un micro PIC




Pour jouer la mélodie d'une chanson, vous devez connaître ses notes de musique. Chaque note est jouée pendant un certain temps et il ya un certain intervalle de temps entre deux notes successives. Le tableau ci-dessous présente la fréquence des notes de musique à partir de milieu C. Le milieu C est désigné comme C4, car il est la quatrième touche C un clavier de piano à 88 touches standard. 


Notes musicales et leurs fréquences à partir du Moyen C 



Les notes des autres octaves peuvent être obtenus en multipliant ou en divisant ces fréquences par 2. Par exemple, la prochaine note C au-dessus du milieu C aurait une fréquence de 524 Hz. 

12 Tone tempérarement égal échelle:

Tableau de fréquence basé sur une A4 = 440

0 à B 8 (Moyen : C = C 4 )

NOMBRE OCTAVE
012345678
C16.3532.7065.41130,81261,63523,251046,502093,004186,01
C #17.3234.6569.30138,59277.18554,371108,732217,464434,92
18.3536.7173.42146.83293,66587,331174,662349,324698,64
D #19.4538.8977.78155.56311,13622,251244,512489,024978,03
E20.6041.2082.41164,81329,63659,261318,512637,025274,04
Fa21.8343.6587.31174.61349,23698,461396,912793,835587,65
F #23.1246.2592.50185.00369,99739,991479,982959,965919,91
Sol24.5049.0098.00196.00392.00783,991567,983135,966271,93
G #25.9651.91103,83207,65415,30830,611661,223322,446644,88
Une27.5055.00110.00220.00440.00880.001760.003520.007040,00
A #29.1458.27116,54233,08466,16932,331864,663729,317458,62
B30.8761.74123.47246,94493,88987,771975,533951,077902,13

Pour utiliser ces valeurs de fréquence, arrondir au nombre entier le plus proche


Les notes de musique peuvent être générés en utilisant des ondes carrées des fréquences de notes. Ainsi, afin de jouer la mélodie d'une chanson avec un microcontrôleur, tout ce que vous devez savoir sont les notes de musique et les informations de synchronisation; le reste est toute la programmation. Une onde carrée peut être généré à une broche d'E / S de microcontrôleur PIC à peu cogner la broche haute et basse. Une autre façon de réaliser cela est d'utiliser un module de PWM du matériel. 

Le PWM  est une technique couramment utilisée pour synthétiser des signaux continus à l'aide de circuits à fonctionnement tout ou rien, ou plus généralement à états discrets.
Le principe général est qu'en appliquant une succession d'états discrets pendant des durées bien choisies, on peut obtenir en moyenne sur une certaine durée n'importe quelle valeur intermédiaire...




Schéma électrique:

Le schéma de cette expérience est assez simple. La broche RB0 du microcontrôleur PIC16F628A est peu-frappé à générer une tonalité d'onde carrée de fréquence souhaitée. Une broche d'E / S de PIC16F628A peut fournir du courant jusqu'à 25 mA, ce qui peut ne pas être suffisante pour entraîner une sonnerie électrique directement. Par conséquent, un transistor NPN BC547 est utilisé comme amplificateur de courant pour le signal sonore. Un filtrage RC peut être utilisé pour améliorer la qualité de l'audio (ondes carrées ne sont pas des ondes pures et ils ne sonnent pas aussi bon que les ondes sinusoïdales), mais par souci de simplicité, il est pas mis en œuvre ici.


Schéma du montage sur le simulateur ISIS Proteuse


Montage pratique



Logiciel

La génération des tonalités audio est très facile à mikroC Pro pour compilateur PIC. Il a intégré dans la bibliothèque sonore pour servir ce but. La bibliothèque a deux fonctions suivantes:
Sound_Init ( omble * snd_port, omble snd_pin): Configure la broche MCU approprié pour la production sonore. Par exemple, Sound_Init (& PORTB, 0) permet de configurer la broche RB0 pour la sortie audio.
Sound_Play ( non signé freq_in_hz, non signés duration_ms): Génère un signal carré sur la broche appropriée.
Les fréquences de notes d'une chanson peuvent être définis soit comme un tableau de variables ou enregistrés dans un tableau constant dans la ROM (si la taille de la RAM ne suffit pas) du microcontrôleur. Les notes de la chanson "Happy Birthday to You" ne sont pas trop gros et donc, peut être définie dans un tableau de type entier dans mikroC, comme:


   **Hap py  Birth Day  to  you,  Hap py  birth day  to 
   **C4   C4   D4   C4   F4   E4   C4   C4   D4   C4   G4 
unsigned int notes[] = { 262, 262, 294, 262, 349, 330, 262, 262, 294, 262, 392, ...}


 Télécharger le montage isis + hex

 Demander le code source 

Utilisation du PIC en art :)

Aucun commentaire:

Enregistrer un commentaire