Arduino Audio Input (7 / 8 steg)

Steg 7: avbryta



i denna del av koden, jag satt upp Arduino att kontinuerligt övervaka pin A0 på 38,5 kHz, men nu har jag lagt en bit kod som automatiskt uppdaterar variabeln "incomingAudio" varje gång ett nytt värde från A0 har beräknats. Istället för att sätta raden:

incomingAudio = ADCH;

i funktionen loop() av Arduino skiss, har jag lagt det i en speciell funktion som kallas en "avbrott rutin." Avbryta operationsföljden ser ut så här:

ISR(ADC_vect) {
incomingAudio = ADCH;
}

Se det som en normal skiss, Arduino första går genom setup() fungera då det börjar loop(), men varje 26us (när ett nytt värde är redo från A0) den Arduino stannar vad det gör i slingan och gör vad är inkapslat i rutinen avbrott (i detta fall bara raden "incomingAudio = ADCH;"). När rutinen avbrott är klar, plockar Arduino upp igen där det var i loop() för en annan 26us. Sedan körs avbryta rutinen igen... Detta går för upprepande för evigt. Om du vill, du kan läsa mer om Arduino avbryter här.

Denna avbrottskod generellt ett bättre sätt att läsa den inkommande signalen än hur jag skrev det i sista steget eftersom du bara uppdaterar den variabla incomingAudio när varje gång ett nytt värde kommer. Variabeln att uppdatera flera gånger, innan värdet har även haft tid att ändra är redundant. Också, om du vill spela in dessa värden kan du sätta lagring koden i rutinen avbrott så att du vet att din lagring samplingsfrekvens är exakt 38,5 kHz.

Ljud ut med 38,5 samplingsfrekvensen och avbryter
av Amanda Ghassaei

Sept 2012

/*
* Detta program är fri programvara; Du kan vidaredistribuera det och/eller ändra
* det enligt villkoren i GNU General Public License som offentliggjorts av
* den Free Software Foundation; antingen version 3 av licensen, eller
* (på ditt alternativ) någon senare version.
*
*/

int incomingAudio;

void setup() {

(CLI); //disable avbrott

Ställ in kontinuerlig provtagning av analoga pin 0

Rensa ADCSRA och ADCSRB register
ADCSRA = 0;
ADCSRB = 0;

ADMUX | = (1 << REFS0); ange referens spänning
ADMUX | = (1 << ADLAR); Vänsterjustera ADC värde - så vi kan läsa högst 8 bitar från ADCH register endast

ADCSRA | = (1 << ADPS2) | (1 << ADPS0); ställa in ADC klockan med 32 prescaler - 16mHz/32 = 500 kHz
ADCSRA | = (1 << ADATE); enabble automatisk utlösare
ADCSRA | = (1 << Ebba Grön); Aktivera avbrott när mätningen är klar
ADCSRA | = (1 << ADEN); Aktivera ADC
ADCSRA | = (1 << ADSC); Starta ADC mätningar

SEI (); //enable avbrott

Om du vill lägga till andra saker i setup(), göra det här

}

ISR(ADC_vect) {//when nya ADC värdet redo
incomingAudio = ADCH; //update den variabel incomingAudio med nytt värde från A0 (mellan 0 och 255)
}

void loop() {
göra andra saker här
}

Se Steg
Relaterade Ämnen

Hur du ansluter en Sensor med Audio Input och Output

en sensor är en av en grundläggande komponent för att fånga fysiska miljön. Du kan få förändringen av ljus med en CDS fotocell, kan du mäta utrymmet med en distansera sensor och du kan fånga din rörelse med en accelerometer.Det finns redan flera sätt...

Arduino audio switch

Inuti min skydd har jag en 5.1 Bose surround system och ett par högtalare Yamaha NS - 10M Studio. Jag behövde för att driva dem med bara en förstärkare, så jag behövde en anpassade ljud växla mellan högtalare och LFE alltför. Jag har hittat en enkel...

Hur du ansluter en tryckknapp med Audio Input och Output

en tryckknapp är en av en grundläggande komponent för att fånga din åtgärd. Dynamiskt kan du trycka en knapp för att göra något.Det finns redan flera sätt att använda tryckknappar i dina projekt (t.ex. hacka mus och tangentbord eller Arduino, gainer,...

Hur du ansluter en Fader med Audio Input och Output

en fader är en av en grundläggande komponent för mixerbord. Dynamiskt kan du styra din källa med rörelsen av en fader.Det finns redan flera sätt att använda tryckknappar i dina projekt (t.ex. hacka mus och tangentbord eller Arduino, gainer, MCK). Det...

Arduino Audio DSP sköld

Arduino Audio DSP sköld har ring modulering, echo, reverb, en oscope, oscillator, godtycklig vågform generator, etc. Det är ett program- och maskinvara system, en god man, i en burk!Steg 1: Skaffa en arduino ljud sköldSköldarna finns på kickstarter h...

6-kanals AUDIO INPUT

6-kanals AUDIO INPUT (audioin selector)Du kan gjorde det med, TIC106D tyristor och med några kondensatorer och LEDväljaren av den audio ina enkeltgenom att ansluta den här enheten, många musikinstrument, som enCableknock ut honom... Om vi vill göra a...

Hur du sätter din bil askfat till en Audio Input

detta är ett roligt projekt så länge som du inte en rökare. Räkna ut vad gränssnitt du behöver kommer att vara prioritet nummer ett. Detta är en bra ändring om du går på långa resor och Don 't för att få alla dina CD-skivor med dig.Du behöver...01. S...

Arduino frekvens identifiering

Som en uppföljning till den Arduino-Audio-ingång tutorial som jag postat förra veckan, skrev jag en skiss som analyserar en signal som kommer in den Arduino analog ingång och bestämmer hur ofta. Koden använder en samplingsfrekvens på 38,5 kHz och har...

Baserade Arduino Bi-color LED Matrix Audio Spectrum Visualizer

Efter att vi kom med Bi-color LED Matrix drivrutinsmodulen kit, har vi letat efter intressanta projekt att arbeta med den.Du kan vara intresserad av några av de projekt som vi har lagt upp på instructables använder detta ledde matrisen kit.Instructab...

Överföra data från Android till Arduino genom audio domkraft

Med detta projekt kan du skicka byte från android till arduino använder endast en audio jack-kontakt.Hur fungerar det?I princip, signal android en "morse" audio till arduino. Arduino i andra hand avkoda Morsealfabetet till en byte. Så enkelt.Del...

3D Stereo Audio Spectrum Visualizer

I en av våra tidigare instructables, byggde vi en Arduino baserade Audio Spectrum Visualizer med våra bi-color LED Matrix moduler för visning. Du kan kolla upp det påFör några månader sedan, designat vi jolliCube, en 8 x 8 x 8 LED cube. Vi är mycket...

Intellekten Edison driftigt bluetooth audio.

Introduktion.Jag ville ha en ny bilstereo och en Ogg Vorbis-spelare som spelade låtar i den ordning jag ville. Jag beslutade att använda de bästa funktionerna på en Intel Edison åstadkomma detta.Edison har Bluetooth HW och SW.Edison har Perl programm...

Arduino Dubstep Piano Keyboard

som musiker, jag ständigt skriver musik. En del av min kreativa process innebär spelar melodier eller ackord mönster på min gitarr eller piano så att jag kan vidareutveckla dem och (förhoppningsvis) förvandla dem till låtar. Jag har redan en ryggsäck...

Cykel - drivna arduino vattenreningssystem (med UVC ljus)

Detta instructable visar hur att driva en UV-C vattenreningssystem med en cykel och arduino kontroll. En dynamo i den bakre delen av cykeln laddar ett batteri (som vi har från början ut redan för detta projekt) som kör arduino och ljuset.De flesta av...

Arduino ljud sköld

I den här videon visar vi de enkla steg för montering av din Arduino ljud sköld fall. För att köpa en av dessa fall, bara tillbaka min kicken project på: Arduino ljud sköldSteg 1: Hur göra montera din Arduino Audio DSP sköld fallDet första steget är...

Uppgradera tube radio med nya mössor och IPOD/AUX input

Efter fastställande av upp skåpet till denna radio och njuta stirrade på det ett tag, är det äntligen dags för att ta en smäll på chassit. Det fungerade ganska bra som det var men det hade ett brummande som alltid i bakgrunden som blir ganska irriter...

ANT + och Arduino Integration med Cateye Ergociser utöva cykel

Detta instructable förklarar hur du integrerar ANT + transceivern med Arduino controller i en vintage 1987 motionscykel så att PC-baserade eller Garmin sport klocka/cykel dator inspelning av träningsdata som 1) kadens, 2) makt och 3) puls.Stegen inbl...

3.5 mm Audio adapter

3,5 mm till RCA och RCA till 3,5 mm Stereo/adapteranslutningDetta är en enkel adapter som jag gjorde för att ansluta min HDTV ljud till min 4.1 surround ljudsystem, den är liten, bara runt 1,5 inchesAnvändningsområden• Stereo Connectivity (vänster oc...

LED Strip styrenhet med LED Amp + Arduino

Glöm DIY LED drivers med mosfet transistorer! Det är extremt enkelt att köra hög driv LED-strips med Arduino till låg kostnad utan att gå in för mycket kretsar. Hemligheten är billigt mini LED förstärkare.Detta instructable är bara om körning LED str...