Arduino Audio-uitgang (9 / 10 stap)

Stap 9:40 kHz Sampling Rate


Voor degenen onder u die geïnteresseerd zijn in het produceren van audio op 40kHz-bemonsteringssnelheid, hier is wat code die gebruikmaakt van timer interrupts te laten u dat doen.  Arduino timer interrupts kunnen onderbreken wat je aan het doen zijn in de functie van uw belangrijkste loop en Spring naar een speciale functie genaamd een "interrupt routine."  Zodra deze routine wordt gedaan terugkomen u waar u was gebleven in de loop.  U instellen en de frequentie van deze interrupts opgeven in het Setup-gedeelte van uw code.  U kunt de details van het instellen van interrupts hier leren, maar als u alleen geïnteresseerd in 40kHz interrupts bent, dan kun je gewoon kopiëren delen van de onderstaande code.

Als u wilt instellen van de interrupt moet u de volgende regels kopiëren in uw Setup-functie:

cli (); //disable interrupts
set timer0 interrupt op 40kHz
TCCR0A = 0; / / hele TCCR0A register ingesteld op 0
TCCR0B = 0; / / zelfde voor TCCR0B
TCNT0 = 0; //initialize waarde van de teller op 0
set vergelijk wedstrijd registreren voor 40khz stappen
OCR0A = 49; / / = (16 * 10 ^ 6) / (40000 * 8) - 1 (moet < 256)
CTC-modus inschakelen
TCCR0A | = (1 << WGM01);
CS11-bit ingesteld voor 8 prescaler
TCCR0B | = (1 << CS11);
inschakelen van de timer vergelijk interrupt
TIMSK0 | = (1 << OCIE0A);
Sei (); //enable interrupts

de inhoud van de interrupt routine worden ingekapseld in de volgende functie:

ISR(TIMER0_COMPA_vect) {//40kHz interrupt routine
}

U wilt bewaren van de interrupt routine zo kort mogelijk te houden, alleen de noodzakelijkheden.  U kunt al uw andere taken (controle op de knoppen draaien op LED's, etc) in de loop doen.  Ook houd in gedachten dat het opzetten van interrupts andere Arduino functies zoals analogWrite en vertraging kan beïnvloeden.

In de onderstaande code gebruik ik de interrupt-functie te PORTD een nieuwwaarde van sinus [] verzenden met een snelheid van 40 kHz en verhogen de variabele "t".  Vijgen 1 en 2 Toon de (ongefilterd) output van de code op een oscilloscoop.  We kunnen de verwachte frequentie als volgt berekenen:

frequentie = (sampling-frequentie) / (stappen per cyclus)
frequentie = 40.000 / 100 = 400 hz

bij een sampling-frequentie van 40kHz verwachten we de duur van elke stap te zijn:

duur van elke steekproef stap = 1 / (samplingfrequentie)
duur van elke steekproef stap = 1/40.000 = 25us

 //Sine out w/ 40kHz sampling rate //by Amanda Ghassaei 

Gerelateerde Artikelen

Arduino Audio Input

Arduino Audio Input

Geluid in je Arduino sturen. Dit Instructable zal u tonen hoe om audio te bereiden, zodat het kan worden bemonsterd en verwerkt door een Arduino sound responsieve projecten en audio-effecten te maken. (Dit artikel is een aanvulling op een ander Instr
Arduino audio switch

Arduino audio switch

Ik heb binnen mijn schuilplaats een 5.1 Bose surround systeem en een paar van Yamaha NS - 10M Studio luidsprekers. Ik nodig had om ze te rijden met slechts één eindversterker, dus ik nodig een aangepaste audio schakelen tussen luidsprekers en LFE ook
Synthesizer: Een toetsenbord UI met Audio uitgang

Synthesizer: Een toetsenbord UI met Audio uitgang

We bouwden een toetsenbord UI met vijf synthese wijzen allemaal in Javascript, zodat de kracht van het gebruik van de audio-uitgang hardware pinnen van Kinoma maken. U kunt het open source project nu downloaden als u wilt uitvoeren in de simulator Ki
Arduino Audio Shield

Arduino Audio Shield

In deze video laten we de eenvoudige stappen voor montage van uw zaak Arduino audio schild. Om te kopen een van deze gevallen, gewoon terug mijn kickstarter-project op: Arduino Audio ShieldStap 1: Hoe Assemble uw zaak Arduino Audio DSP ShieldDe eerst
Arduino Audio DSP Shield

Arduino Audio DSP Shield

De Arduino Audio DSP schild heeft Ringmodulatie, echo, reverb, een oscope, oscillator, willekeurige golfvorm generator, enz. Het is een software- en hardware-systeem, een goede man, in een blikje!Stap 1: Krijgen een arduino audio schildDe schilden zi
Arduino Audio geactiveerd / uit-schakelaar

Arduino Audio geactiveerd / uit-schakelaar

ooit wilde uw huisvermaak of geluidsinstallatie aan power up zelf toen inpluggen in uw iPod of andere draagbare MP3-speler?Bekijk deze video om te zien hoe het werkt. Dan flip door de stappen om erachter te komen hoe maak je met behulp van de Arduino
Spelen met een Arduino audio geluidsbestanden (wav)

Spelen met een Arduino audio geluidsbestanden (wav)

Afspelen van wav bestand Audio van uw Audino SD-kaart.Dit Instructable zal u tonen hoe een wav-bestand op je SdCard kan worden afgespeeld via een eenvoudige schakeling aan een spreker.Het wav-bestand moet 8 bits mono. Ik heb geen probleem 44 KHz-best
Gemakkelijk Arduino Audio Annoyatron

Gemakkelijk Arduino Audio Annoyatron

zulks simpel eenvoudig apparaat speelt een kleine tune op een willekeurige interval, tussen 5 en 30 seconden wanneer de lichten op een kamer afgaan. Het kan slim worden vermomd in een doos van weefsels, of binnen of onder een willekeurig aantal huish
Stereo Audio met Arduino

Stereo Audio met Arduino

Onlangs heb ik zijn detachering een heleboel projecten die een 8 bit weerstand ladderdigitaal naar analoog converter (DAC) en een Arduino gebruiken om geluid te maken. (Zie het vocale effecten Arduino, de Arduino drum sampler en mijn audio-uitgang-tu
Toezending van gegevens van Android aan Arduino via audio-aansluiting

Toezending van gegevens van Android aan Arduino via audio-aansluiting

Met dit project kunt u bytes van android naar arduino met behulp van alleen een audio jack connector.Hoe het werkt?Principe, signaal android een "morse" audio naar arduino. Arduino in de andere hand decoderen de morse-code aan een byte. Zo eenvo
How to convert een Nvidia-videokaart DVI-uitgang naar HDMI met Audio voor HTPC

How to convert een Nvidia-videokaart DVI-uitgang naar HDMI met Audio voor HTPC

In dit Instructable zal ik laten zien hoe de DVI-uitgang op de Nvidia-videokaart omzetten in een HDMI-uitgang die geluid op uw HTPC zal voeren.   Eenvoudig met behulp van een DVI-HDMI-adapter is genoeg om video-uitgang op uw televisie maar als u het
Sleutels toe te voegen aan een Arduino Synth de harde manier-het Blacklord: het Organ Donor Project deel 2

Sleutels toe te voegen aan een Arduino Synth de harde manier-het Blacklord: het Organ Donor Project deel 2

(Opmerking-Dit is mijn 20e instructable! Dank aan iedereen volgende en commenting.on mijn projecten en aan de medewerkers die dit mogelijk maken. Deze site heeft zeker maakte me brengen mijn A game aan de workbench.)De Auduino granulaire synth door P
Arduino gebaseerd Desktop lijn volgeling - jolliBot

Arduino gebaseerd Desktop lijn volgeling - jolliBot

Een van de klassieke projecten die vermelding niveau robotica hobbyist kunnen interesseren is de regel die volgt robot die is meer algemeen bekend als een volgeling van de lijn. Er zijn veel kit beschikbaar om te bouwen van volgelingen van de lijn in
Arduino gebaseerde Bi-color LED Matrix Tetris Game

Arduino gebaseerde Bi-color LED Matrix Tetris Game

Een van de elektronica DIY kit jolliFactory kwam omhoog met is de Bi-color LED Matrix Driver Module Kit. Deze module is ontworpen om kunnen keten-zodat u kan serieschakeling de modules samen aan het aantal modules moet u past bij uw project.De volgen