Stereo Audio met Arduino (7 / 7 stap)

Stap 7: Simple pannen Circuit met Arduino


In dit stukje code die ik gebruikte een potentiometer (potmeter) om te controleren de pan tussen twee audiokanalen.  Eerst bedraad ik de middelste voorsprong van een potentiometer aan A0 en de buiten leidt tot 5V en ground.  (Ik gebruikte een 100kOhm potentiometer, maar om het even wat tussen de 1 k en 1M zal werken ook goed).  Ik heb geüpload vervolgens de volgende code:

 //stereo pan with 44.1kHz sampling rate //by Amanda Ghassaei //Nov 2012 

Deze code uitgangen 440hz sinusgolven uit beide stereo-uitgangen.  Toen de potmeter is helemaal aan de ene kant, zal een van de uitgangen bij maximale amplitude en de andere zal flat-lijn op 0 (fig 2).  Zoals de potmeter staat in de andere richting, de amplitude van één kanaal zal ingaan en de andere zal gaan tot het kanaal die was eerder platte-voering is bij volledige amplitude en het andere kanaal is bij 0 (fig 3-6).

Deze code is redelijk eenvoudig, maar het gebruikt een paar trucjes om te maximaliseren van de efficiëntie die ik een beetje verder hier uitleggen zal.  Zoals in stap 4, heb ik alle opdrachten van de digitalWrite() vervangen door PORTB & = en PORTB | = opdrachten.  Ik deed dit puur omwille van de snelheid (wanneer u met 88kHz onderbreekt werkt, moet u snel werken), en de opmerkingen van elk van deze regels geeft hun equivalent Arduino library commando.  bijvoorbeeld de regel:

PORTB & = B11111011;

is gelijk aan:

digitalWrite(WR,LOW);
waar WR = digital pin 10

meer info over de werking van deze opdrachten vindt u op de website van Arduino.  De functie checkPan() controleert de status van de pan-potentiometer.  Aangezien het is niet essentieel zijn voor het meten van deze pot op een hoge frequentie, ik alleen de functie aangeroepen in de belangrijkste loop in plaats van de interrupt.  De inhoud van checkPan() worden herhaald hieronder:

pan = analogRead(A0);
pan pan = >> 3; //convert vanaf 10 bit 7 bit (0-127)
panA = pan;
panB = 127-pan;

Eerst is de variabele pan ingesteld op de uitvoer van analogRead(A0).  De functie analogRead() zal altijd een getal tussen 0 en 1023 - een 10 bit getal retourneren.  Ik denk niet dat dergelijke hoge resolutie was noodzakelijk voor wat ik aan het doen was, dus ik verminderde de resolutie van dit getal naar beneden af 7 bit in de tweede lijn om het te maken een beetje meer beheersbaar.  Nu in plaats van een getal tussen 0 en 1023, is pan verkleind om te passen tussen 0 en 127.  Ik deed dit met een eenvoudige beetje shift, je kan dit ook doen met sommige verdeling, of de kaart van functie, ze hebben allemaal het hetzelfde eindresultaat (maar de verschuiving van bits is de snelste manier om dit te doen).  Nu dat ik heb de pan, een waarde tussen 0 en 127, ik heb sommige eenvoudige aftrekken als u wilt berekenen van de amplitudes verzenden naar DACA en DACB en deze waarden toegewezen aan panA en panB.

In de interrupt routine verving ik de eenvoudige sinus output uit stap 4:

PORTD = sinus [index2];

met een vermogen dat vergroot of verkleind:

PORTD = (sine[index2]*panB) >> 7;

deze regel is functioneel gelijk aan de volgende:

PORTD = (sinus [index2] * panB) / 127;

maar aangezien het een beetje verschuiving in plaats van de divisie gebruikt, het is veel efficiënter.  Dit is zeer belangrijk in hoge frequentie interrupts, in feite, de bovenstaande regel zal vertragen de interrupt zozeer dat het zal niet zitten kundig voor volledig uitvoeren voordat het tijd voor een nieuwe onderbreken om te beginnen.  Het gebruik van deze bits shift truc is de enige manier om de code om correct te werken.

Gerelateerde Artikelen

Vertegenwoordigen van audio via trillingen met Arduino

Vertegenwoordigen van audio via trillingen met Arduino

Dit project werkt om weer te geven geluid met behulp van de trillingen.  U sluit uw iPod, computer of TV erin en tactiele feedback vertegenwoordigt van het volume van de audio te krijgen.  Het kan helpen dove mensen ervaren van geluid.Tools:Draad str
Bedien uw Tv, Dvd en Audio systeem met Arduino en Android

Bedien uw Tv, Dvd en Audio systeem met Arduino en Android

Hallo iedereen, dit is mijn tweede instructable en mijn eerste in het Engels, dus, sorry voor de fouten.Ik wil delen dit project die het gaat over hoe u kunt uw Tv, DVD en uw audiosysteem met Arduino en een app voor Android gemaakt met app uitvinder.
Stereo Audio-versterker met IC TEA2025

Stereo Audio-versterker met IC TEA2025

Bent u het denken over het maken van een stereo versterker? Als u bent, dan is de juiste plaats! Dit project is over het maken van een 5 Watt stereo audio versterker met behulp van de IC TEA2025.Speciale dank aan deze website.OPMERKING: DE MEESTE FOT
3D Stereo Audio Spectrum Visualizer

3D Stereo Audio Spectrum Visualizer

In een van onze eerdere instructables, bouwden we een Arduino gebaseerd Audio Spectrum Visualizer met behulp van onze bi-color LED Matrix modules voor de weergave. Je kan check it out opEen paar maanden geleden, ontwierpen we jolliCube, een 8 x 8 x 8
RC auto RC Tank conversie met Arduino

RC auto RC Tank conversie met Arduino

Ik heb altijd al gefascineerd door grote machines, tanks in het bijzonder. De Duitse Tiger Tank, zoals in de film Fury!, is een ontzagwekkende machine. Ik wilde een! Ik heb wat zoeken en gevonden dat RC Tiger Tank replica's meer dan $150 kosten, en z
Aan de slag met Arduino - twee speler Arduino Pong

Aan de slag met Arduino - twee speler Arduino Pong

In deze tutorial gaan we een arduino gebaseerde controller die we gebruiken kunnen om te bepalen van een spel voor 2 spelers van pong bouwen.We gaan een paar van dial potentiometers (het draaien van knoppen) gebruiken om te controleren de pong vleerm
DIY Bluetooth telefoon gecontroleerd BB-8 Droid met Arduino UNO

DIY Bluetooth telefoon gecontroleerd BB-8 Droid met Arduino UNO

Ik ben een grote fan van Star Wars en toen zag ik de Star Wars: The Force ontwaakt dacht ik dat ik behoefte aan een BB-8 droid. Het was geweldig hoe dit kleine gebied verplaatst in de film. Dus heb ik besloten dat ik moet dit droid die is gebaseerd o
Streaming video van SD-kaart naar Nokia LCD met Arduino

Streaming video van SD-kaart naar Nokia LCD met Arduino

Voor een lange tijd, ik dacht dat het afspelen van video met kon audio niet op de Arduino. Toen op een dag besloot ik te geven het een schot en het bleek eenvoudiger dan ik dacht.Ik besloot te schrijven van de stappen in een instructable ten behoeve
Gemotoriseerd, geluid reageren Star Wars At-St Bandai Model, met Arduino.

Gemotoriseerd, geluid reageren Star Wars At-St Bandai Model, met Arduino.

Gemaakt van Star Wars bij-St-Model van Bandai.Reageert op geluid en draait zijn hoofd naar toe.Gemaakt met Arduino Nano, een aangepast onderdeel van 3dprinted, microfoons, micro servo.Dit instructable is gemaakt om te delen van de wijzigingen die nod
Ongebonden van spraakherkenning en spraaksynthese met Arduino

Ongebonden van spraakherkenning en spraaksynthese met Arduino

MOVI staat voor 'Mijn eigen Interface van de stem' en is een kickstarter-backed Arduino schild dat maakt het zeer eenvoudig om te bouwen van uw eigen toespraak dialogen aan controle-apparaten binnen de Arduino IDE. Dit instructable snel ziet u hoe aa
32W Stereo Audio versterker

32W Stereo Audio versterker

speciale dank aan ALAMGIR NASIRhttps://www.Facebook.com/profile.php?id=100001497433614Die hielp me dit project makenIntroductieHet doel van het project was om een stereo audio versterker. Naast dit moet extra functies dat moet volumeregeling, bass co
Krabben met Arduino

Krabben met Arduino

MIT heeft een fantastische visuele programmeertaal genaamd Scratchontwikkeld. Het is ook een geweldig leermiddel voor kinderen, want het is eenvoudig, leuk, en door interactie met de echte wereld een bord 'Scratch Sensor Board' genoemd.Dit Instructab
Spraakherkenning en -synthese met Arduino

Spraakherkenning en -synthese met Arduino

In mijn vorige Instructable toonde ik hoe om te controleren enkele LED's met behulp van een Arduino board en de BitVoicer Server. In dit Instructable ga ik om dingen een beetje ingewikkelder te maken. Ik ben ook gaan te synthetiseren toespraak met be
Bouwen van uw FM-transmissie Station met Arduino

Bouwen van uw FM-transmissie Station met Arduino

Hi elk lichaam.Voordat een 3 maanden geleden, een van mijn vriend me om te bouwen van een eenvoudige FM-zender vraagt, zou hij een audiobestand verzenden vanaf computer en spelen op elke radiozender, door het aanpassen van de frequentie van de ontvan