Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
Dit is een eenvoudig toongeneratorproject met Arduino Pro Mini. Een deel van de superhit "Jimikky Kammal" van de film "Velipadinte Pusthakam" is monotoon ontwikkeld.
Muzieknoten komen in de natuur voor als vloeiende en rollende sinusoïdale golven. In dit project zullen we, in plaats van gladde sinusgolven, geluid produceren met vierkante golven. Vierkante golven produceren een toon, maar deze is helderder en metaalachtiger dan een normale sinusgolf. Een muzieknoot kan worden gecreëerd door frequentie te genereren. Elke frequentie heeft een unieke toon. Hier wordt Arduino gebruikt om deze frequentie te creëren.
Stap 1: Hardware-installatie
Het is heel eenvoudig om hardware in te stellen. Voor de ontwikkeling van dit project hebben we nodig:
- Arduino Pro Mini
- Spreker
- FTDI USB naar seriële adapter (voor het uploaden van programma naar Arduino Pro Mini)
Interface FTDI USB naar seriële adapter naar Arduino Pro Mini voor programmering zoals weergegeven in het schakelschema. Sluit een pin van de luidspreker aan op digitale pin 11 (je kunt het pinnummer wijzigen in Programma) van de Arduino Pro Mini en de andere met aarde.
In dit circuit voegen we geen versterkercircuit toe, zodat het volume erg laag kan zijn. U kunt dus elk audioversterkercircuit toevoegen, u krijgt veel geluid naar de uitgang of u kunt een pc-luidspreker gebruiken met instelbare volumeregeling.
Stap 2: Softwareontwikkeling
Muzieknoten kunnen worden gemaakt door oscillatie te genereren in Arduino. De oscillatiefrequentie is de toonhoogte van de melodiesnelheid van de gespeelde muzieknoten. Beats is de periode van elke gespeelde melodie. We moeten dus exacte toonhoogte, beats en tempo maken voor elke muzieknoot.
In dit programma genereren we niet alle frequenties voor alle geluiden. Alleen het geluid dat nodig is voor de muziek "Jimikky Kammal" wordt toegevoegd. De frequenties voor alle noten worden hieronder weergegeven.
impacttechnolabz.com/fd1_jk.html
We moeten deze frequenties converteren naar een tijdsperiode, zodat Arduino de duur krijgt om de digitale pin AAN en UIT te zetten. De berekening van de tonen gebeurt volgens de wiskundige bewerking:
timeHigh = 1/(2 * toneFrequency) = periode / 2
bv:
Om 100 Hz-oscillaties te genereren, d.w.z. Tijdsperiode = 1/100 S = 0,01 S = 10000 uS
Dus we moeten pin HOOG maken voor 5000 us en LAAG voor 5000 us
d.w.z. timeHigh = 1/(2*100)
= 0,005 S
= 5000 us
Volledige code downloaden
Stap 3: Simulatie
We hebben een simulatie gemaakt met behulp van Proteus Proffessional-software die op een Windows-pc is geïnstalleerd, zodat de audio-uitvoer via de geluidskaart op de pc kan worden geverifieerd. U moet de Arduino-bibliotheek expliciet aan Proteus toevoegen.
Stap 4: Coderen
Volledige code downloaden