Arduino Timer unterbricht (5 / 6 schritt)

Schritt 5: Beispiel 3: DAC


In diesem Projekt verwendet ich einen Timer-Interrupt eine Sinuswelle mit einer bestimmten Frequenz aus dem Arduino ausgegeben. Ich gelötet einfachen 8-Bit R2R DAC digital Pins 0-7.  Diese DAC errichtet von 10 k und 20 k Widerstände in einem mehrstöckigen Spannungsteilerangeordnet.  Ich werde Entsendung mehr über den Bau der DAC in einem anderen instructable, für jetzt habe ich des Fotos oben.
Ich habe die Ausgabe aus der DAC bis zu einem Oszilloskop.  Benötigen Sie Hilfe zu verstehen, wie Nutzung/das Oszilloskop Auschecken dieses Tutorial lesen.  Ich lud den folgenden Code auf dem Arduino:

 //63Hz sine wave //by Amanda Ghassaei 2012 

Richte ich einen Timer-Interrupt, Schritten die Variable t bei einer Frequenz von 40kHz.  Sobald t 627 erreicht es wieder auf Null zurückgesetzt (Dies geschieht mit einer Frequenz von 40.000/628 = 63 Hz).  Unterdessen in der Hauptschleife sendet der Arduino einen Wert zwischen 0 (Binär 00000000) und 255 (11111111 binär) digitale Pins 0 bis 7 (PORTD).  Es wird dieser Wert mit folgender Gleichung berechnet:

PORTD=Byte(127+127*sin(t/100));

So wie t-Schritten von 0 bis 627 bewegt sich die Sinusfunktion durch einen vollständigen Zyklus.  Der Wert an PORTD geschickt ist eine Sinuskurve mit 63Hz Frequenz und Amplitude 127, oszillierende rund 127.  Wann wird dies durch die 8-Bit-Widerstand-Leiter gesendet, DAC es eine schwingende Ausgänge signal rund 2,5 v mit einer Amplitude von 2,5 v und Frequenz von 63 Hz.

Die Frequenz des Sinus kann verdoppelt werden, durch Multiplikation des Begriffs (T/100) mit 2, vervierfachte sich durch Multiplikation mit 4 und So weiter...
Beachten Sie auch, dass wenn Sie die Häufigkeit der Timer-Interrupt erhöhen zu viel durch eine Verringerung der Vorteiler oder OCR2A Sinus nicht korrekt ausgegeben werden.  Und zwar deshalb, weil die Funktion des sin() rechnerisch teuer ist, und bei hohen Interrupt Frequenzen es nicht genügend Zeit für die Ausführung muss.  Verwendest du Hochfrequenz-Interrupts, anstatt eine Berechnung während die Interrupt-Routine in Anbetracht Speichern von Werten in einem Array und rufen einfach diese Anwendung irgendeiner Art von Index Werte.  Ein Beispiel finden Sie in meinem Arduino Waveform Generator von 20.000 Werte der Sünde in einem Array speichern, ich Ausgang Sinuswellen mit einer Sampling-Frequenz von 100 kHz konnte.

In Verbindung stehende Artikel

Arduino-Time-Lapse-Controller

Arduino-Time-Lapse-Controller

dieses Projekt ursprünglich begann mit ein paar einfachen Teile zusammen, um einen sehr einfachen Zeitraffer Controller für eine DSLR-Kamera geworfen. Nachdem ich zufrieden mit dem ersten Prototyp war, wollte ich machen eine endgültige Version, die d
Machen einen Arduino-Timer

Machen einen Arduino-Timer

Hi, also mir und meinem Kumpel einrichten, damit wir, Wartungsteilen sicherstellen können. Wir machen derzeit eine UV Belichtung Box (möglicherweise eine andere Instrucable) und für diese Box, wir brauchten einen Timer, so dies, ist was wir bisher ge
Arduino-Timer

Arduino-Timer

Hallo allerseits, diese instructable geht es darum wie man baut eine Stoppuhr / Timer mit Arduino.Merkmale dieser Timer: (Check für mehr Tiefe Details gewusst wie: verwenden Sie diese Funktionen im Abschnitt "Code/Skizze"1. Sie können eine Zielz
Iontophorese von Arduino Timer gesteuert

Iontophorese von Arduino Timer gesteuert

DIY Iontophorese Gerät powered by Arduino mit Timer-FunktionDiese Geräte haben einen Polarität-Schalter auf dem eingestellten Zeitintervall (ON und OFF).Schritt 1: Hintergrund GESCHICHTE:Hyperhidrose ist die Bedingung gekennzeichnet durch krankhaft v
Timer unterbricht auf die DP32

Timer unterbricht auf die DP32

Timer! Ich freue mich, endlich Timer auf meinem Lieblings-Board, DP32abdecken!Denken Sie daran, wie damals, als ich über externe Interrupts schrieb? Wenn Sie nicht mit Interrupts und deren Funktionsweise vertraut sind, empfehle ich das Tutorial zuers
DIY Arduino Time Lapse Panner für GoPro

DIY Arduino Time Lapse Panner für GoPro

Ich brauchte, um ein Panner, die 1 Umdrehung über 5 Minuten schaffen würde.Entdeckte ich zwei weitere Projekte auf mir basieren. Bau ist ziemlich identisch mit der Source-Projekte weiter unten.Ich schrieb Teil des Codes. Mein TimeLapse-Panner fordert
Arduino Time Lapse-Slider

Arduino Time Lapse-Slider

Also ich hatte in die Herstellung ein Timelapse video mit meiner Dslr gesucht und gesehen hatte, viele mit einem Slider-Mechanismus, eine weitere Dimension hinzuzufügen. Ich schaute auf zu kaufen, aber sie sind ein wenig teuer zu kaufen, nur um "die
Autopilot - basierend auf dem Arduino Boot

Autopilot - basierend auf dem Arduino Boot

Hier ist, wie man einen Autopiloten zu bauen, die eine RC lenken kann Boot zu Wegpunkten! Es ist leicht zu bauen, basierend auf der beliebten Plattform Arduino und ideal für Bastler wollen einige Löten Praxis! Mit dieser Autopilot kann eine RC Boot l
Eine solar-Tracking-automatische motorisierte Fenster blind Nachrüstung mit Arduino

Eine solar-Tracking-automatische motorisierte Fenster blind Nachrüstung mit Arduino

Gebäude-Konto für 20-40 % der Gesamtenergie verwenden in den entwickelten Ländern. Jalousien (oder Jalousien) können helfen, reduzieren Gebäude Energie verwenden und Sehkomfort (d. h. reduziert Blendung und Erhöhung der Tageslichtnutzung) verbessern.
Ein Arduino RSS-Feed anzeigen

Ein Arduino RSS-Feed anzeigen

das Arduino-Projekt zeigt RSS-feed-Schlagzeilen auf einem LCD über ein Arduino und ein USB-Kabel. Es funktioniert ganz gut, und lässt Sie mit den Weltnachrichten mithalten, während Sie an Ihrem Schreibtisch sitzen. Viele der Werte im Code können geän
Lesen u/min von Arduino-basierte IR Drehzahlmesser mit MATLAB GUI

Lesen u/min von Arduino-basierte IR Drehzahlmesser mit MATLAB GUI

Hallo wieder, ein paar Tage zurück ich gepostet ein instructable Infrarot-Drehzahlmesser mit Arduino, dann merkte ich, dass anstatt den u/min-Wert in der Arduino IDE serial Monitor lesen, mehr High-Tech-aussehen würde die u/min in einen entsprechende
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-
WLAN-Arduino Oszilloskop

WLAN-Arduino Oszilloskop

In dieser Anleitung erkläre ich wie man eine Windows 8.1 Telefon, Arduino Uno Board und HC-05 Bluetooth-Modul verwenden, um eine drahtlose Oszilloskop zu bauen. Die Telefonanwendung hat die kritischen Funktionen eines Oszilloskops, obwohl die Bandbre
Einfache Mobile Data Logging mit PfodApp, Android und Arduino

Einfache Mobile Data Logging mit PfodApp, Android und Arduino

Moblie Data Logging leicht gemachtverwenden PfodApp, Andriod Handy und Arduino.KEIN Android Programmierung.Plotten Daten auf Ihrem Android-Gerät finden Sie in dieser späteren InstuctableEinfache Remote Daten Plotten mit Android / Arduino / PfodAppEin