Stereo Audio met Arduino (1 / 7 stap)

Stap 1: 8-bits DAC's en seriële vs Parallel


De TLC7528 is een soort digitaal naar analoog converter (DAC). Het duurt van digitale gegevens (getallen tussen 0 en 255) en een spanning tussen 0 en welke spanning levert u de chip met uitgangen. De uitgangsspanning van de DAC kan worden berekend volgens de volgende vergelijking:

uitgangsspanning van 8 bit DAC = (voedingsspanning) * (Digitaal invoergegevens) / 255

In dit Instructable, zal ik worden voeden van de DAC van de Arduino van gebouwd in 5V levering, zodat de bovenstaande vergelijking kan vereenvoudigd worden tot:

uitgangsspanning van 8 bit DAC = 5V * (Digitaal invoergegevens) / 255

Uit deze vergelijking, kunnen wij zien dat de TLC7528 5V zou uitgang als zij een waarde van 255, 0V ontvangt als zij een waarde van 0 ontvangt, 2.5V als zij een waarde van 127, enzovoort ontvangt. U zult zich afvragen waar de 255 vandaan kwam, dit is een gevolg van de TLC7528 wordt een 8 bit DAC. 8 bit betekent dat de binaire getallen die we naar de DAC sturen kunnen moet niet meer dan 8 cijfers in hen. In binaire, getallen die zijn vertegenwoordigd met 8 cijfers (of minder) bereik in waarde tussen 0 en 255 (in tegenstelling tot de reguliere decimaal cijfer-systeem waar en 8 cijfers variëren van 0 tot 99999999). Zo zijn er 256 mogelijke waarden (0-255) die de 8-bit DAC kunnen ontvangen. Dit kan snel worden berekend uit de onderstaande vergelijking:

2 ^ 8 = 256 mogelijke waarden

Als we een 10 bit DAC gebruikten, dan het 2 ontvangen konden ^ 10 = 1024 verschillende waarden, variërend van 0-1023. Dit betekent dat een 10 bit DAC heeft een hogere resolutie dan een 8 bit DAC. Ondanks dit, heb ik gevonden dat 8 bit DAC's over het algemeen veel nuttiger dan 10 bit DAC's zijn omdat gegevens is gemakkelijker om te slaan en output van de Arduino in 8 bits vorm dan in 10 bits vorm. Bijvoorbeeld, is de gegevens type byte in de Arduino taal voor het opslaan van getal van 8 bits. Als u opslaan een getal van 10 bits wilde, u zou moeten gebruiken een gegevenstype int , maar int gegevenstypen kunnen opslaan van 16-bits getallen, zodat u 6 bits van het geheugen verspillen zou. Daarnaast zijn de pinnen van de Arduino gegroepeerde rapporten samen in clusters van 8 of minder. Op de Uno, de alleen volledige groep van 8 zijn digitale pinnen 0-7, deze groep heet PORTD. Bij het schrijven van Arduino code kunt u gemakkelijk 8 gegevensbits uitvoeren door de Staten van digitale pinnen 0-7 allemaal tegelijk instellen. In de code wordt dit gedaan door een getal van 8 bits te sturen naar PORTD. Bijvoorbeeld:

PORTD = 255;

Hiermee stelt u digitale pinnen 0-7 hoog, is het gelijkwaardig aan het volgende:

digitalWrite(0,HIGH);
digitalWrite(1,HIGH);
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);

maar met behulp van het PORTD-opdracht alle pins gelijktijdig ingesteld en is veel sneller. De volgende opdracht stelt digitale pinnen 0-7 laag:

PORTD = 0;

het PORTD opdracht kunt u ook enkele van de hoge pinnen en anderen laag ingesteld. Bijvoorbeeld:

PORTD = 137;
137 in binaire is 10001001, dus verzenden 137 te PORTD wordt ingesteld pin 7 HIGH (omdat het eerste cijfer van het binaire getal is een "1"), 6-4 lage pinnen (want de volgende 3 cijfers zijn "0"), pin 3 HIGH, pinnen 2 en 1 laag, en pin 0 HIGH. U kunt meer lezen over hoe dit op de Arduino website werkt. U kunt zelfs verzenden binaire getallen PORTD, bijvoorbeeld:

PORTD = B10001001;
is gelijk aan het PORTD = 137;

Tot slot zal ik praten over hoe we deze gegevens in de TLC7528. De TLC7528 heet een parallelle DAC. Dit betekent dat alle de gegevens die we de DAC verzenden is verzonden in parallel. 8 bit parallel DAC's hebben acht dataverbindingen tot stand tussen de Arduino en de DAC die alle 8 gegevensbits op hetzelfde moment sturen. Het tegenovergestelde van parallel is seriële, seriële opstellingen u gebruiken minder gegevensverbindingen (meestal drie), maar slechts één bit tegelijk stuur. Dus, heb je om te verzenden een getal van 8 bits via een seriële verbinding verzenden acht 1 bit pakketten, na elkaar, terwijl in parallelle opstellingen kunt u alle 8 bits op hetzelfde moment. Dit betekent dat seriële verbindingen snellere gegevensoverdracht dan parallelle verbindingen vereisen. Bent u niet bezorgd over het gebruik van 8 digitale pinnen van de Arduino, is een parallel 8 bit DAC een goede optie, omdat het vereist minder kloksnelheid en eenvoudiger code is.

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