Go Down

Topic: Soundausgabe mit Arduino ATMega328p steuern (Read 38 times) previous topic - next topic

Tom111

Hallo liebe Community,

ich würde gerne die Soundausgabe mit einem ATMega328p steuern. (Arduino uno)

Dazu habe ich die pcm.h + pcm.c von Michael Smith genutzt. https://playground.arduino.cc/Code/PCMAudio/

Jetzt würde ich gerne ein Motorgeräusch abspielen, bei dem ich die Geschwindigkeit ändern kann (Auto beschleunigt). Dazu habe ich die Funktion ISR(TIMER1_COMPA_vect) etwas angepasst, um das Geräusch in einem loop laufen zu lassen.

Durch anpassen der Sample_Rate

Code: [Select]
// Set the compare register (OCR1A).
    // OCR1A is a 16-bit register, so we have to do this with
    // interrupts disabled to be safe.
    OCR1A = F_CPU / SAMPLE_RATE;    // 16e6 / 8000 = 2000


kann ich die Geschwindiglkeit verändern. Wenn ich dies allerdings über eine globale Variable während der Laufzeit anpasse, entstehen merkwürdige Geräusche.

Ich programmiere normalerweise nicht so Hardwarenah, daher bitte ich um Hilfe :)

Grüße
Tom

Tom111

Hier noch ein Video der Soundausgabe zum besseren Verständnis.

Video engine start stop

Go Up