Raspberry Pi Pico als einstellbarer Taktgenerator

Ein Taktgenerator ist in digitalen Schaltungen ein wichtiges Element, dass dafür sorgt, dass alle Teile der Schaltung synchron arbeiten. In der Regel arbeitet man dann mit einem festgelegten bzw. fest eingestellten Takt. Wenn man mit elektronischen Schaltungen experimentiert, dann braucht man in der Regel nicht immer den selben Takt sondern unterschiedliche. Deshalb sollte der verwendete Taktgenerator einstellbar sein.

Zu diesem Zweck verfügt der Aufbau über ein Potentiometer, mit dem man die Taktfrequenz in Hertz (Hz) stufenlos einstellen kann.

Der Nachteil dieser Lösung ist, dass die geringste Frequenz für das PWM-Signal bei ungefähr 10 Hz liegen muss. Darunter kann man die Hardware nicht einstellen. Dazu müsste man eine Timer-Lösung wählen.

Aufbau und Bauteile

Raspberry Pi Pico als einstellbarer Taktgenerator

Hinweis: Wenn man keine LED-Leiste hat, dann kann man auch einfach die Onboard-LED (nicht beim PIco W) verwenden.

Programmcode

Der Programmcode erzeugt ein PWM-Signal auf Basis des eingestellten Potentiometers. Der dabei ausgelesene ADC liefert einen Wert zwischen 0 und 65.535. Eine Funktion im Programmcode rechnet diesen Wert in einen Wert von 10 bis 50 Hertz (Hz) um.

# Bibliotheken laden
from machine import Pin, ADC, PWM
from time import sleep

# Frequenzen
F_MIN = 10   # Hz
F_MAX = 50   # Hz

# Initialisierung des ADC0 (GPIO26)
adc0 = ADC(Pin(26))
sleep(.1)   # Wartezeit

# Initialisierung PWM-Ausgang
pwm_out = PWM(Pin(15, Pin.OUT))
pwm_out.duty_u16(32268)   # 50% Tastverhältnis

# Korrektur des Wertebereichs
def scale_value(value, in_min=0, in_max=65535, out_min=F_MIN, out_max=F_MAX):
    return int( out_min + (value - in_min) * (out_max - out_min) / (in_max - in_min) )

# Wiederholung (Endlos-Schleife)
while True:
    # ADC0 lesen
    value = adc0.read_u16()
    # Wert in Frequenz umrechnen
    freq = scale_value(value)
    # Frequenz (Hz) einstellen
    pwm_out.freq(freq)
    # Ausgabe
    print(freq, 'Hz', end=" \r")
    sleep(0.5)

Experimente

Wenn man möchte, dann kann man noch ein Display anschließen, auf dem die Frequenz in Hertz (Hz) angezeigt wird.

Weitere verwandte Themen:

Frag Elektronik-Kompendium.de

Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython

Elektronik-Set Pico Edition

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

Elektronik-Set jetzt bestellen Online-Workshop buchen

Online-Workshop: Programmieren mit dem Raspberry Pi Pico

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.

Online-Workshop buchen

Besuchen Sie unser fast monatlich stattfindendes Online-Meeting PicoTalk und lernen Sie uns kennen. Die Teilnahme ist kostenfrei.

Termine und Newsletter-Anmeldung

 

Elektronik-Sets für das Hardware-nahe Programmieren