Die Arduino PWM-Analogausgabe arbeitet mit einer relativ niedrigen Frequenz (490 Hz), die zu hörbaren Effekten führt, wenn man sie als Modulationsquelle verwendet.

Dieser Befehl setzt die Frequenz des Timers 3 auf 31300 Hz. Dieser Timer ist für den Pin 2 zuständig.

TCCR3B = TCCR3B & 0b11111000 | 0x01;

Man muss aufpassen, dass man nicht den Timer setzt, der für die millis()-Funktion zuständig ist. Sonst muss man dort auch Umrechnungen machen.

Die Frequenz ist nun nicht mehr hörbar. Ich habe trotzdem einen einfachen R-C-Tiefpassfilter eingebaut.

Weitere Literatur: http://playground.arduino.cc/Main/TimerPWMCheatsheet

 

Nachdem ich lange ein provisorisches Netzteil mit 7812 und 7912 Spannungsreglern hatte wollte ich das nun auf etwas robustere Beine stellen, außerdem brauchte ich für die Arduinos eine 5V-Versorgung.

Ich habe mir deshalb drei günstige Schaltnetzteile gekauft (je 10€-15€) und diese eingebaut.

Stromversorgung1

Da jedes Netzteil separat angefahren werden muss sieht die Verdrahtung etwas wild aus, ist aber gut isoliert. Beim Umzug in das endgültige Gehäuse wird dann natürlich alles ordentlich festgeschraubt.

Die PWM-Pseudoanalogausgabe des Arduino ist als Steuerspannung eines VCO nicht geeignet. Ich werde deshalb als DA-Wandler ein R2R Widerstandsnetzwerk verwenden. An Stelle des ursprünglich geplanten Arduino Uno muss ich nun einen Mega verwenden, da nur dieser genügend Ausgänge hat, um mehrere analoge Signale zu erzeugen (oder multiplexen, das lasse ich aber erstmal).

http://www.auctoris.co.uk/2011/05/25/arduino-function-generator-part-2

Die Ausgänge sollte man komplett als Port ansprechen, nicht einzeln.

Hier das PINout des Arduino Mega:

https://lynx2015.files.wordpress.com/2015/08/arduino-mega-pinout-diagram.png

 

Nachtrag: es geht auch ohne

 

Weitere Beiträge ...