Raspberry Pi Pico: Summer-Lautstärke mit einem Potentiometer einstellen

Im Prinzip kennt ein GPIO nur zwei Zustände: „High“ und „Low“. Also „An“ und „Aus“ oder „1“ und „0“. Es handelt sich dabei um die binäre Logik. Werte dazwischen gibt es nicht. Demnach kann man einen Summer an einem GPIO-Ausgang auch nur ein- und ausschalten.

Trotzdem gibt es einen Trick mit dem Du die Lautstärke eines Summers einstellen kannst. Das geht, in dem Du zwischen den Zuständen „1“ und „0“, also „An“ und „Aus“, schnell hin- und herschaltest und die Lautstärke über die An-Zustand regelst. Je weniger An, desto geringer ist die Lautstärke. Den Zustandswechsel realisiert man über ein PWM-Signal.

Aufbau und Bauteile

Raspberry Pi Pico: Summer-Lautstärke mit einem Potentiometer einstellen

Ein aktiver Summer ist gepolt. Das lange Anschlussbein ist der positive Pol, der mit dem GPIO verbunden wird. Das kurze Anschlussbein ist der negative Pol, der mit Ground (GND) verbunden wird.

  • Potentiometer, 10K (103)
  • Summer

Programmcode

Im Programmcode wird ein GPIO als Ausgang mit PWM-Signal für den Summer und ein ADC-Eingang initialisiert. Der ADC-Eingang misst den Spannungsabfall am Potentiometer und liefert eine Ganzzahl zurück. Durch Drehen des Potentiometers ändert sich die Ganzzahl.
In einer Endlosschleife wird abhängig vom ADC-Eingang das PWM-Signal (Duty Cycle) gesetzt und auf diese Weise die Lautstärke des Summers eingestellt. Der Wert wird zusätzlich auf der Kommandozeile ausgegeben.

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

# Initialisierung des ADC0-Eingang (GPIO26)
adc0 = ADC(0)

# Initialisierung: GPIO16 als Ausgang mit PWM-Signal
pwm = PWM(Pin(16, Pin.OUT))
pwm.freq(1000)

# Wiederholung (Endlos-Schleife)
while True:
    # ADC0 lesen
    value = adc0.read_u16()
    # PWM-Duty-Cycle setzen
    pwm.duty_u16(value)
    print(value)
    sleep(0.5)

Weitere verwandte Themen:

Elektronik-Sets für das Hardware-nahe Programmieren

Elektronik-Sets für das Hardware-nahe Programmieren

Programmieren mit dem Raspberry Pi Pico
Online-Meeting

Programmieren mit dem Raspberry Pi Pico

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

Termine und Newsletter-Anmeldung

Frag Elektronik-Kompendium.de