Arduino vågform Generator sköld (13 / 15 steg)

Steg 13: Firmware




Hämta Arduino IDE och ladda upp koden längst ner i detta steg på Arduino. Koden använder en timer avbryta en frekvens på 100kHz för att skicka nya data ut till den digital till analog omvandlare (DAC). Resten av koden övervakar tillståndet av knappar och rattar och justerar variabler därefter. Sedan avbryter uppstår på sådan en hög frekvens, jag var tvungen att hålla avbrott rutinen, del av koden inkapslat i ISR(TIMER1_COMPA_vect) {} så kort som möjligt. Tid intensiva operationer som matematiska operationer med flöten och använda funktionen sin() tar för mycket tid att slutföra. Jag använde flera verk runt omkring att få av detta:

För triangel och såg skapat jag den variablerna sawByte, triByte, sawInc och triInc. Varje gång frekvensen ändras jag beräknade beloppet som funktionen triangel och såg skulle ha att tillväxten på en samplingsfrekvens på 100kHz:

triInc = 511/period.
om (triInc == 0) {
triInc = 1;
}
sawInc = 255/period.
om (sawInc == 0) {
sawInc = 1;
}

då alla de behövs göras i rutinen avbrott var några enkla matematiska:

fall 1: / / triangel
IF((period-t) > t);
om (t == 0) {
triByte = 0;
}
annat {
triByte += triInc;
}
}
annat {
triByte-= triInc;
}
om (triByte > 255) {
triByte = 255;
}
annars om (triByte < 0) {
triByte = 0;
}
Wave = triByte;
bryta;

fall 2: / / såg
om (t = 0) {
sawByte = 0;
}
annat {
sawByte += sawInc;
}
Wave = sawByte;
bryta;

För funktionen sinus skrev jag en enkel python skript som utgångar 20000 värden för 127+127sin(x) för en komplett cykel:

importera matematik

x i rad (0, 20000):
skriva ut str(int(127+127*math.sin(2*math.pi*x*0.00005)),)+str(","),

I lagras denna matris i den Arduino minne som kallas sine20000 [] och påminde om de värden som jag behövde för att skicka till DAC. Detta är mycket snabbare än beräkna värden individuellt.

Se Steg
Relaterade Ämnen

10 resistor Arduino vågform Generator

Om du har en Arduino UNO är detta projekt praktiskt taget gratis!Det gör också en stor Arduino Nano projekt.Vad du behöver (bara passiva komponenter):Bara 10 motståndEtt filter kondensatorVad du får:En direkt Digital syntes (DDS) vågform GeneratorÄkt...

IOS-kontrollerade Arduino vågform generator

Denna vågform generator är baserad på arbete av Amanda Ghassaei. Vågform generatorer (eller funktion generatorer) används för testning och felsökning kretsar. e.g. frekvensomfång på op amp eller sensorer. Denna vågform generator drivs av Arduino med...

Arduino vågform Generator

vågform generatorer (även kallad funktion generatorer) är användbar för testning och felsökning kretsar. Jag använder dem ofta för att testa frekvenssvaret av elektronikkomponenter som op förstärkare och sensorer. Denna vågform generator drivs av en...

Arduino Zero DAC översikt och vågform Generator exempel

I detta Instructable tar vi en titt på digital till analog omvandlare (DAC) på Arduino nolla. Vi kommer att titta på ett enkelt exempel hur du använder DAC och sedan ska vi titta på ett mer komplicerat exempel som förvandlar DAC i en pseudo vågform g...

Godtycklig vågform generator, för ~ 20$

en godtycklig vågform generator (AWG) är en användbar men ofta dyrt testutrustning (ebay det för skrattar). Används för att bestämma komponent frekvensomfång, generera bäraren signalerar, som en LCR-mätare om du har ett scope, tune resonant går runt,...

Låg kostnad vågform generator (0 - 20MHz)

ABSTRATHDetta projekt kommer från nödvändigheten av att få en våg generator med en bandbredd på över 10 Mhz och en harmonisk distorsion under 1%, allt detta med en låg kostnad pris.Detta dokument beskriver en design av en våg generator med en bandbre...

Atmel Xmega-USB/seriell godtycklig vågform Generator

detta instructable går igenom programmering och användning i Boston Android Xmega utvärdering styrelsen för att arbeta som en enkel godtycklig vågform generator att utnyttja den integrerade 12 bitars DAC och hög hastighet DMA-styrenheten. Jag har läm...

Lätt Atmel Xmega sinusvåg / vågform Generator

detta är hur du kan använda en av de BostonAndroid.com Xmega utvärdering styrelserna ($20) för att skapa en enkel justerbar sine vågform generator med 12 bitars upplösning och kan producera frekvenser från 125Hz - 20KHz och med inbyggd DAC. Du kan än...

Arduino blogg ämne Generator

I början, efter att ha startat en ny blogg, fick jag många ämnen att skriva på bloggen. Nu när elden har dött och jag har svårt att få bra ämnen. Jag fick några bra verktyg som blogg ämne generatorer men de arbetade online. De flesta gånger befinner...

Arduioscillo-Arduino VoltMeter/frekvens Generator

vad gjorde jag? Syftet med detta projekt är att skapa en prisvärd och praktisk voltmeter/frekvens generator av material liggande på din arbetsbänk. Denna länk tar dig till min youtube video förklarar enheten http://www.youtube.com/watch?v=dkgbP2kvnME...

Arduino ursäkt Generator

behöver en ursäkt bråttom?Ser längre än den ursäkt Generator.Steg 1: Vad du behöver / tråd det upp Vi använder:Arduino UnoLCD-modul (HD44780 kompatibel)PotentiometerTilt Switch220 Ohm Resistor (röd-röd-svart-svart) / (röd-röd-brun) eller 470 Ohm elle...

Arduino Grattis Tone Generator

I sist instructable jag visade dig hur man generera en ton med hjälp av Arduino UNO. Nu kan sätta att använda, i denna tutorial jag ska visa dig hur man skapar en födelsedagen låten på din Arduino. Detta kan vara skapad i ett kort eller bara ställa u...

Arduino Timer avbryter

Timer avbrott kan du utföra en aktivitet på mycket specifikt tidsintervall oavsett vad som händer i din kod. I detta instructable jag ska förklara hur man ställer in och kör ett avbrott i tydlig Timer på Jämför Match eller CTC läge. Hoppa direkt till...

Nattliga utsläpp: Min Arduino Powered Internet aktiverat dröm Generator

måste vi alla drömmer mer så jag har skapat denna Arduino Powered "dream generator" för att plantera frön för några stora tänkande galenskap. När du närmar dig generatorn en Maxbotix ultrasonic sensor utlöser ljus och musik som drar du i så du k...

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...

Girino - snabb Arduino oscilloskop

jag är en fysiker och den trevligaste delen av arbetet på detta område är att jag får att bygga mitt eget instrument. Med detta sätt att tänka, jag bestämde mig att bygga en homebrew Arduino oscilloskop. Detta instructable skrevs med syfte att underv...

Arduino ljud utgång

Skapa ljud- eller analoga spänningar med en Arduino. Detta Instructable visar dig hur du ställer in en riktigt grundläggande digital till analog omvandlare så du kan börja generera analoga vågor av alla former och storlekar från några digitala stifte...

Vågorna för Arduino

Detta instructable visar hur man manipulera GUI för att skapa och ladda ner waveshapes till arduino ljud sköld (nu tillgänglig på kicken). Vänligen stödja detta projekt och hjälpa mig få den här ny produkt på marknaden.Steg 1: Vågform generatornFör a...

Hur man installerar vågformer 2015 i Linux

Vågformer 2015 är en mjukvara som utvecklats av Digilent avsedd att användas med Analog Discovery 2, Analog Discovery, EE styrelseneller Analog Discovery 2 NI Edition.Det ger användargränssnittet för ett 2 kanal oscilloskop, logik Analyzer, godtyckli...