Arduino-Audio-Ausgang (10 / 10 schritt)

Schritt 10: Zusätzliche Tipps


Dieser DAC verwendet einiges an den Arduino verfügbar digitale Stifte, darunter auch einige, die normalerweise für die serielle Kommunikation und PWM verwendet werden, so sind hier ein paar Tipps, die Ihnen hilft mit Pin Konflikten umgehen.

Wenn Sie seriellen Kommunikation tun möchten: Serielle Software ist ein Arduino-Bibliothek, die Ihnen erlaubt, alle von dem Arduino Pins in serielle Pins zu verwandeln.  Normalerweise, wenn Sie ein Arduino-Projekt, die seriellen Kommunikation erfordert durchführen, verwenden Sie digitale Pins 0 und 1 weil sie serielle Daten schicken sein müssen.  Ich möchte ihnen für die 8-Bit DAC verwenden, da Pins 0-7 alle Teil des PORTD auf dem Arduino Atmel328 Chip sind, dies ermöglicht es mir, alle in einer einzigen Codezeile anzugehen.  PORTB hat nur 6 Pins (digitale Stifte 8-13) und COSINUS hat nur 6 pins (analogen Pins 0-5), so dass Sie eine 8-Bit DAC mit diesen Ports allein erstellen können nicht.

Möchten Sie verwenden die PWM Pins oder sonst müssen verschiedene Pins als DAC verwenden: Wenn Sie, die PWM-Pins verwenden müssen können Sie Bit Manipulation Pins 3, 5 und 6 und ersetzen Sie diese durch Stifte 8, 12 und 13.  Sagen Sie, dass Sie die Zahl 36 an PORTD senden möchten.  Hier können Sie die folgenden Zeilen:

definieren Sie Variablen:
Boolesche bit3state ;
Boolesche bit5state;
Boolesche bit6state;

in Ihren wichtigsten loop():

bit3state = (36 & B00001000) >> 3; //get das dritte Bit 36
bit5state = (36 & B00100000) >> 5; //get das fünfte Bit der 36
bit6state = (36 & B01000000) >> 6; //get das sechste Bit 36

Senden von Daten an Portd w/o-Pins 3, 5 und 6 zu stören
PORTD | = (36 & B10010111); //set hohe Pins hoch mit der Nummer 36 mit Nullen ersetzen Bits 3, 5 und 6
PORTD & = (36| B01101000); //set niedrigen Stifte niedrig mit der Nummer 36 mit Bits 3, 5 und 6 zu ersetzen

Senden von Daten an Portb w/o-Pins 9, 10 und 11 zu stören
PORTB | = 0 | (bit3state) | (bit5state << 4) | (bit6state << 5); //set hohe Stifte
PORTB & = 255 & ~(1-bit3state) & ~((1-bit5state) << 4) & ~((1-bit6state) << 5); //set niedrigen Stifte

Achten Sie darauf, diese PORTD und PORTB Linien direkt neben einander in Ihrem Code zu halten, Sie wollen die Pins am Port d und Port b, möglichst zur gleichen Zeit wie möglich zu wechseln.

Hier ist der Code aus dem vorherigen Schritt bearbeitet, so dass keine PWM Stifte verwendet werden.  Wie Sie in Abb. 1 sehen, hat die ungefilterte Ausgabe aus der DAC viele Diskontinuitäten, verursacht durch die Verzögerung zwischen dem Senden von Daten an Port d und Port b sowie die Aufspaltung der Befehle zur Einstellung Pins hoch und niedrig.  Sie können die meisten dieser Brüche mit Tiefpassfilter (Abb. 2) loswerden.  Wollten Sie diese Technik verwenden, sollten Sie überlegen, Erhöhung der Grenzfrequenz Tiefpass-Filter.  Wenn Sie dies machen wollte wirklich gut, Sie könnten Ihre 5 wichtigsten Bits an Port d und Ihre 3 niederwertigsten Bits an Port b senden.  Dies würde die Amplitude von einigen der Diskontinuitäten, reduzieren die Größe des Rauschens verringern.  Ich lasse Sie herausfinden, dass man auf eigene Faust.

 //Sine out, 40kHz sampling rate, w/o using PWM pins //by Amanda Ghassaei 

Wenn Sie von digitalen Stifte laufen und mehr brauchen:  Denken Sie daran, dass Sie immer Ihre analogen Pins als digitale i/o verwenden können.  Probieren Sie die folgenden Funktionen, sie funktionieren genauso wie mit einem normalen digitalen Stift zu tun haben.

DigitalWrite (A0, HIGH); //set Pin A0 hoch
DigitalWrite (A0, niedrige); //set Pin A0 niedrig
DigitalRead (A0); //read digitale Daten von Pin A0

Andernfalls verwenden Sie einen multiplexer.  Benötigen Sie weitere digitale Ausgänge, können die 74HC595 Sie drei der Arduino digitale Stifte in 8 Ausgänge zu verwandeln.  Sie können auch Daisy-Chain, die mehrere 595 zusammen ist, um viele weitere Ausgänge Pins zu erstellen.  Sie können Ihre ganze DAC auf einen dieser Chips einrichten, wenn man wollte (obwohl es ein paar Zeilen Code bräuchte, um es anzugehen und möglicherweise Sie zuviel für höhere Abtastraten verlangsamen).  Die Arduino-Webseite ist ein guter Ort zum Einstieg zur Verwendung von 595.

Benötigen Sie weitere digitale Eingänge, können 74HC165 oder CD4021B Sie drei der Arduino digitale Stifte in 8 Eingänge zu verwandeln.  Der Arduino-Webseite ist wiederum ein guter Ort zum lernen, wie man diese Chips zu verwenden zu beginnen.

Wenn Sie die Informationen in diesem Instructable mit dem Mega oder anderen Boards verwenden möchten: In dieser Instructable sprach ich ausschließlich über den Arduino Uno mit Atmel328.  Der gleiche Code wird auf jedem Board mit einem Atmel328 oder Atmel168 Chip darauf problemlos ausgeführt.  Sie können auch die gleichen Ideen mit einem Mega.  Sie sollten versuchen, Ihre DAC an jedem Port anhängen, die hat 8 Pins zur Verfügung, so können Sie Ihre DAC mit einer Zeile Code beheben ("PORTD =") auf die Uno, ist der einzige Hafen, die 8 verfügbaren Pins hat Port d.  



Bild zeigt an, dass die Mega mehrere Ports mit 8 Pins hat: Ports a, b, C und l sind die offensichtliche Wahl.  Wenn Sie kümmern sich nicht um Verschwendung von analogen Pins können Sie auch Häfen f oder k.

In Verbindung stehende Artikel

Arduino-Audio-Eingang

Arduino-Audio-Eingang

Senden Sie sound in Ihrem Arduino. Diese Instructable wird Ihnen zeigen, wie Audio so vorbereiten, dass es abgetastet und durch ein Arduino, reaktionsschnelle Klangprojekte und audio-Effekte machen bearbeitet werden kann. (Dieser Artikel ist eine Erg
Arduino audio Schalter

Arduino audio Schalter

Ich habe in meine Zuflucht ein 5.1 Bose surround-System und ein paar Yamaha NS - 10 M Studio Lautsprecher. Ich musste fahren sie mit nur einer Endstufe, so ich auch einen benutzerdefinierten audio Schalter zwischen Lautsprecher und LFE brauchte. Anst
Arduino Audio Schild

Arduino Audio Schild

In diesem Video zeigen wir die einfachen Schritte für die Montage von Ihrem Arduino audio Abschirmkäfig. Einer dieser Fälle zu kaufen, nur zurück mein Kickstarter-Projekt bei: Arduino Audio SchildSchritt 1: Wie tun montieren Ihre Arduino Audio DSP Ab
Arduino Audio-DSP-Schild

Arduino Audio-DSP-Schild

Der Arduino-Audio-DSP-Schild hat Ringmodulation, Echo, Hall, ein Oscope, Oszillator, willkürliche Waveform Generator, etc.. Es ist ein Soft- und Hardware System, einem Tontechniker in der Dose!Schritt 1: Holen Sie einen Arduino-audio-SchildDie Schild
Arduino Audio ausgelöst ein-/Ausschalter

Arduino Audio ausgelöst ein-/Ausschalter

Ever wollte Ihre home-Entertainment oder sound-System an die macht, selbst wenn Ihr iPod oder andere tragbare MP3-Player anschließen?Dieses Video zeigt wie es funktioniert. Dann blättern Sie durch die Schritte, um herauszufinden, wie ein mit dem Ardu
Einfach Arduino Audio Annoyatron

Einfach Arduino Audio Annoyatron

dieses einfache Gerät einfach spielt eine kleine Melodie in zufälligen Abständen, zwischen 5 und 30 Sekunden, wenn das Licht in einen Raum gehen. Es kann innerhalb eines Kastens Gewebe oder innen oder unter beliebig viele Haushaltsgegenstände geschic
Stereo-Audio mit Arduino

Stereo-Audio mit Arduino

Vor kurzem habe ich eine Menge Projekte Entsendung, die eine 8-Bit Widerstand Leiterdigital zu analog Konverter (DAC) und ein Arduino verwenden, um klingen zu lassen. (siehe Feld Stimmeffekten Arduino, Arduino-Drum-Sampler und meine Anleitung, audio-
So verbinden Sie einen Sensor mit Audio ein- und Ausgang

So verbinden Sie einen Sensor mit Audio ein- und Ausgang

ein Sensor gehört zu einer Grundkomponente für die Erfassung der physischen Umgebung. Kann man die Änderung des Lichts mit einer Fotozelle CDS und Messen Sie den Raum mit einem Distanzsensor können Sie Ihre Bewegung mit einem Beschleunigungsmesser er
So verbinden Sie einen Druckknopf mit Audio ein- und Ausgang

So verbinden Sie einen Druckknopf mit Audio ein- und Ausgang

Knopfdruck gehört zu einer Grundkomponente für die Erfassung Ihrer Aktion. Sie können dynamisch ein Tastendruck, etwas zu tun.Es gibt bereits mehrere Wege, Drucktasten in Ihren Projekten (z.B. hacking Maus und Tastatur oder Arduino, Gainer, MCK) zu v
So verbinden Sie einen Fader mit Audio ein- und Ausgang

So verbinden Sie einen Fader mit Audio ein- und Ausgang

ein Fader gehört zu einer Grundkomponente für Mischpult. Sie können Ihre Quelle mit der Bewegung eines Faders dynamisch steuern.Es gibt bereits mehrere Wege, Drucktasten in Ihren Projekten (z.B. hacking Maus und Tastatur oder Arduino, Gainer, MCK) zu
Übertragung von Daten von Android mit Arduino durch audio-Buchse

Übertragung von Daten von Android mit Arduino durch audio-Buchse

Mit diesem Projekt können Sie Bytes von Android an Arduino mit nur einem Audio-Klinkenstecker senden.Wie funktioniert es?Im Grunde Signal Android ein "Morse" audio für Arduino. Arduino in der anderen Hand decodieren den Morse-Code auf ein Byte.
Ein Arduino-Synth Tasten hinzufügen die harte Art und Weise-die Blacklord: das Organ Donor Projektteil 2

Ein Arduino-Synth Tasten hinzufügen die harte Art und Weise-die Blacklord: das Organ Donor Projektteil 2

(Hinweis-Dies ist mein 20. instructable! Vielen Dank an alle folgenden und commenting.on meine Projekte für die Mitarbeiter, die dies möglich machen. Diese Seite hat auf jeden Fall mich meine A bringen Spiel an der Werkbank gemacht.)Die Auduino körni
Einfache Wav Player mit Arduino

Einfache Wav Player mit Arduino

Reden mit Arduino, um Musik zu spielen, ist es das Arduino MP3 schützen nicht das erste, was Sie sich einfallen lassen? Oder vielleicht einigen Freaks werden über tone() Funktion prüfen? Sie sind nicht die Dinge, die unser Thema geht es um heute. Wir
Wecker mit Verkabelung (oder Arduino)

Wecker mit Verkabelung (oder Arduino)

Dies ist ein Wecker auf die Verkabelung Mikrocontroller gebaut und angepasst für Kolumbien (er Konto Feiertage berücksichtigt und zeigt alle Texte in spanischer Sprache). Der Wecker zeigt, Stunde, Datum, Mondphase, personalisierte Nachrichten vom Tag