Raspberry Pi Pico als Signalgenerator mit dem MCP4725
Der Raspberry Pi Pico ist ein Mikrocontroller mit vielen digitalen Ein- und Ausgängen. Allerdings besitzt er keinen analogen Ausgang. Er kann also keine echten analogen Spannungen erzeugen, sondern nur digitale Signale (z. B. PWM). Für die Ausgabe analoger Signale wird ein Digital-Analog-Wandler (DAC) benötigt. Ein solcher DAC kann im einfachsten Fall ein MCP4725-Modul sein, der vom Raspberry Pi Pico gesteuert wird.
Der MCP4725 ist ein integrierter Schaltkreis (IC), den man per I2C-Schnittstelle steuern kann. Der MCP4725 eignet sich als Signalgenerator für verschiedene Signalformen. In engen Grenzen können das auch Audiosignale sein.
Der Raspberry Pi Pico liefert die digitale Logik und erzeugt die Werte für das Signal (z. B. Sinus, Dreieck, Rechteck usw.).
Der MCP4725 wandelt diese digitalen Werte in eine analoge Spannung um.
Die Frage ist, was damit technisch machbar, praktisch sinnvoll ist und wo die Grenzen liegen.
Grenzen
Signalformen
Welche Signalformen einstellbar sind, hängt nicht vom DAC ab. Der DAC stellt immer nur die Spannung an seinem Ausgang ein, die ihm als Wert geliefert wird. Die Signalform muss von einem Programm erzeugt werden, die dann über die Änderung der DAC-Ausgangsspannung entsteht. Die Signalform kann dynamisch berechnet werden oder als vorberechneter Datenstrom vorliegen.
Amplitude
Die Höhe der Ausgangsspannung kann zwischen 0 Volt und VCC liegen. Dazu teilt der DAC VCC in 4096 Schritte ein. Über diesen Wert wird dann die Höhe der Ausgangsspannung eingestellt. Der niedrigste Wert ist 0 (Volt) und der höchste Wert ist 4095 (= VCC).
Frequenz des Ausgangssignals
Die tatsächliche Ausgangsfrequenz hängt von der jeweiligen Anwendung ab, da sie durch den Mikrocontroller und die Geschwindigkeit der I2C-Schnittstelle begrenzt wird.
Eine I2C-Übertragung zum Senden (Fast Mode) eines 12-Bit-Wertes an den MCP4725 umfasst 3 Byte (Adresse, 2 Datenbytes) plus Start-/Stopp-Bedingungen und Bestätigungsbits (ACKs). Das umfasst insgesamt etwa 29 Taktzyklen pro Update.
Bei einer I2C-Taktrate von 400 kHz (geteilt durch 29) ergibt das 13.793 Samples pro Sekunde. Die Abtastrate liegt dann bei 7 kHz bis 10 kHz, womit man theoretisch Signale von 3,5 bis 5 kHz erzeugen kann. Für ein sauberes Signal sind aber eher Frequenzen von ca. 500 Hz bis 1 kHz realistisch.
Audio- oder Ton-Erzeugung
Der MCP4725 eignet sich nur für einfache Sound- oder Synthesizer-Experimente. Allerdings ist der I2C in seiner Geschwindigkeit begrenzt, was die maximale Abtastrate einschränkt. Daher ist die Klangqualität eher für experimentelle Tonerzeugung geeignet und nicht für Hi-Fi-Audio.
Raspberry Pi Pico als Gleichspannungsgenerator mit dem MCP4725
Der Raspberry Pi Pico kann mit einem MCP4725-Modul als Gleichspannungsgenerator verwendet werden. Der Mikrocontroller erzeugt analoge Spannungen zwischen 0 und 3,3 V über einen Digital-Analog-Wandler (DAC). Der Programmcode steuert den DAC über I2C und ermöglicht die Ausgabe von Gleichspannungen.
Raspberry Pi Pico als Referenzspannungsquelle mit dem MCP4725
Um analoge Spannungen auszugeben, kann ein MCP4725-Digital-Analog-Wandler verwendet werden. Dieser ermöglicht die Erzeugung einer einstellbaren Referenzspannung zwischen 0 und 3,3 V. Das ist nützlich zur Kalibrierung von Messgeräten.
Raspberry Pi Pico als Sinus-Signalgenerator mit dem MCP4725
Der Raspberry Pi Pico kann mit einem MCP4725-DAC als Sinus-Signalgenerator verwendet werden. Der DAC erzeugt ein Sinus-Signal zwischen 0 und 3,3 V. Der Programmcode ermöglicht die Anpassung der Frequenz und zeigt die Werte in der Kommandozeile an. Experimente sind möglich, jedoch ist die Frequenz auf maximal 1000 Hz begrenzt.
Raspberry Pi Pico als Rechteck-Signalgenerator mit dem MCP4725
Der Raspberry Pi Pico kann mit einem MCP4725-Modul als Rechtecksignalgenerator verwendet werden. Er erzeugt PWM-Signale mit Frequenzen bis 1 kHz und variablen Tastgraden. Der Programmcode steuert die Signalgenerierung in einer Endlosschleife und ermöglicht Experimente mit Frequenz und Tastgrad, um beispielhaft das Blinken einer LED zu steuern.
Raspberry Pi Pico als Sägezahn-Signalgenerator mit dem MCP4725
Der Raspberry Pi Pico kann mit dem MCP4725-Modul als Sägezahn-Signalgenerator verwendet werden. Der Programmcode ermöglicht die Anpassung von Frequenz und Auflösung des Signals. Das Sägezahn-Signal kann visuell mit einem Oszilloskop oder durch das Blinken einer LED dargestellt werden.
Raspberry Pi Pico als Stufen-Signalgenerator mit dem MCP4725
Der Raspberry Pi Pico kann mit einem MCP4725-DAC als Stufen-Signalgenerator verwendet werden, um analoge Signale zu erzeugen. Der Programmcode ermöglicht die Anpassung von Frequenz, Stufenanzahl und Amplitude. Experimente mit einer LED zeigen, ab welcher Spannung sie leuchtet.
Weitere verwandte Themen:
- Messen mit dem Raspberry Pi Pico
- Raspberry Pi Pico: MCP4725 programmieren
- Raspberry Pi Pico: Elektronik lernen
- Raspberry Pi Pico als Signalgenerator
- Raspberry Pi Pico: Elektronische Schaltungen programmieren
Frag Elektronik-Kompendium.de
Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython
Das Elektronik-Set Pico Edition ist ein Bauteile-Sortiment mit Anleitung zum Experimentieren und Programmieren mit MicroPython.
- LED: Einschalten, ausschalten, blinken und Helligkeit steuern
- Taster: Entprellen und Zustände anzeigen
- LED mit Taster einschalten und ausschalten
- Ampel- und Lauflicht-Steuerung
- Elektronischer Würfel
- Eigene Steuerungen programmieren
Online-Workshop: Programmieren mit dem Raspberry Pi Pico
Gemeinsam mit anderen und unter Anleitung experimentieren? Wir bieten unterschiedliche Online-Workshops zum Raspberry Pi Pico und MicroPython an. Einführung in die Programmierung, Sensoren programmieren und kalibrieren, sowie Internet of Things und Smart Home über WLAN und MQTT.
Besuchen Sie unser fast monatlich stattfindendes Online-Meeting PicoTalk und lernen Sie uns kennen. Die Teilnahme ist kostenfrei.






