Raspberry Pi Pico: CircuitPython-Programmier-Kurs
CircuitPython ist ein Fork von MicroPython und damit eine Software-Implementierung der Programmiersprache Python 3 für Mikrocontroller. CircuitPython weist an manchen Stellen Vereinfachungen und Verbesserungen gegenüber MicroPython auf. Allerdings sind ein paar Dinge anders. Im folgenden Programmier-Kurs wird die Programmierung wichtiger Hardware-naher Komponenten gegenübergestellt. Wer MicroPython beherrscht kann so die entsprechende Lösung für CircuitPython vergleichen und adaptieren.
Wenn auf Deinem Raspberry Pi Pico die CircuitPython-Firmware noch nicht installiert ist, dann solltest Du diese zuerst installieren.
Übersicht: CircuitPython
- Onboard-LED einschalten und ausschalten
- Onboard-LED blinken lassen
- Mit einem Taster die Onboard-LED einschalten und ausschalten
- GPIO-Eingang als ADC
- GPIO-Ausgang mit PWM-Signal
1. Onboard-LED einschalten und ausschalten
Programmcode für MicroPython
# Bibliotheken laden from machine import Pin from time import sleep # Initialisierung von GPIO25 als Ausgang led_onboard = Pin(25, Pin.OUT) # LED einschalten led_onboard.on() # 5 Sekunden warten sleep(5) # LED ausschalten led_onboard.off()
Programmcode für CircuitPython
# Bibliotheken laden import time import board import digitalio # Initialisierung der Onboard-LED led_onboard = digitalio.DigitalInOut(board.LED) led_onboard.direction = digitalio.Direction.OUTPUT # LED einschalten led_onboard.value = True # 5 Sekunden warten time.sleep(5) # LED ausschalten led_onboard.value = False
2. Onboard-LED blinken lassen
Programmcode für MicroPython
# Bibliotheken laden
from machine import Pin
from time import sleep
# Initialisierung von GPIO25 als Ausgang
led_onboard = Pin(25, Pin.OUT)
# Wiederholung (Endlos-Schleife)
while True:
# LED einschalten
led_onboard.on()
# halbe Sekunde warten
sleep(0.5)
# LED ausschalten
led_onboard.off()
# 1 Sekunde warten
sleep(1)
Programmcode für CircuitPython
# Bibliotheken laden
import time
import board
import digitalio
# Initialisierung der Onboard-LED
led_onboard = digitalio.DigitalInOut(board.LED)
led_onboard.direction = digitalio.Direction.OUTPUT
# Wiederholung (Endlos-Schleife)
while True:
# LED einschalten
led_onboard.value = True
# halbe Sekunde warten
time.sleep(0.5)
# LED ausschalten
led_onboard.value = False
# 1 Sekunde warten
time.sleep(1)
3. Mit einem Taster die Onboard-LED einschalten und ausschalten
Programmcode für MicroPython
# Bibliotheken laden
from machine import Pin
# Initialisierung von GPIO25 als Ausgang
led_onboard = Pin(25, Pin.OUT)
# Initialisierung von GPIO14 als Eingang mit internem PULLDOWN-Widerstand
btn = Pin(14, Pin.IN, Pin.PULL_DOWN)
# Funktion zur Taster-Auswertung
while True:
if btn.value() == 1:
led_onboard.on()
else:
led_onboard.off()
Programmcode für CircuitPython
# Bibliotheken laden
import time
import board
import digitalio
# Initialisierung der Onboard-LED
led_onboard = digitalio.DigitalInOut(board.LED)
led_onboard.direction = digitalio.Direction.OUTPUT
# Initialisierung von GPIO 14 als Eingang
btn = digitalio.DigitalInOut(board.GP14)
btn.switch_to_input(pull=digitalio.Pull.UP)
# Wiederholung
while True:
if btn.value:
led_onboard.value = False
else:
led_onboard.value = True
time.sleep(0.1)
4. GPIO-Eingang als ADC
Programmcode für MicroPython
# Bibliotheken laden
from machine import ADC
# Initialisierung des ADC0 (GPIO26)
adc = ADC(0)
# ADC0 als Dezimalzahl lesen
read = adc.read_u16()
# Spannung berechnen
voltage = read * 3.3 / 65536
# Daten ausgeben
print('ADC:', read, '/', voltage, 'V')
Programmcode für CircuitPython
# Bibliotheken laden
import board, analogio
# Initialisierung des ADC0 (GPIO26)
adc = analogio.AnalogIn(board.GP26)
# ADC0 als Dezimalzahl lesen
read = adc.value
# Spannung berechnen
voltage = read * 3.3 / 65536
# Daten ausgeben
print('ADC:', read, '/', voltage, 'V')
5. GPIO-Ausgang mit PWM-Signal
Hinweis: Die Ansteuerung der Onboard-LED funktioniert nur bei einem Raspberry Pi Pico ohne WLAN-Chip.
Programmcode für MicroPython
# Bibliotheken laden from machine import Pin, PWM # GPIO25 mit PWM initialisieren (Onboard-LED) pwm = PWM(Pin(25)) # Frequenz in Hertz (Hz) einstellen pwm.freq(8) # Tastgrad (Duty Cycle) einstellen pwm.duty_u16(1000)
Programmcode für CircuitPython
# Bibliotheken laden import board, pwmio # GPIO25 mit PWM initialisieren (Onboard-LED) pwm = pwmio.PWMOut(board.GP25, variable_frequency=True) # Frequenz in Hertz (Hz) einstellen (Default: 500 Hz) pwm.frequency = 8 # Tastgrad (Duty Cycle) einstellen pwm.duty_cycle = 1000
Übersicht: Weitere Lösungen mit CircuitPython
- CircuitPython: Datum und Uhrzeit lesen und ausgeben
- CircuitPython: Echtzeituhr (RTC) mit NTP-Server einstellen
- Raspberry Pi Pico W als WLAN-Client (mit CircuitPython)
- Raspberry Pi Pico: Taster entprellen (mit CircuitPython)
- Raspberry Pi Pico: MP3-Dateien abspielen (mit CircuitPython)
- Raspberry Pi Pico als USB-Endgerät (mit CircuitPython)
Raspberry Pi mit CircuitPython programmieren
Ein Raspberry Pi, der Einplatinen-Computer, lässt sich auch mit CircuitPython programmieren. Das Besondere dabei ist, dass mit CircuitPython eine native Unterstützung der HDMI-Schnittstelle vorhanden ist und somit ein HDMI-Bildschirm zur Text- und Bildausgabe verwendet werden kann. Außerdem hat ein Raspberry Pi mehr Rechenleistung und Speicher als ein Mikrocontroller-Board wie der Raspberry Pi Pico.
Weitere verwandte Themen:
- Raspberry Pi Pico: CircuitPython
- Raspberry Pi Pico: CircuitPython installieren und aktualisieren (manuell)
- Raspberry Pi Pico: TOP 10 Tipps und Tricks für CircuitPython
- Raspberry Pi Pico: Grundlegende Befehle von CircuitPython
Elektronik-Sets für das Hardware-nahe Programmieren
Elektronik-Sets für das Hardware-nahe Programmieren
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.




