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
Weitere verwandte Themen:
- Raspberry Pi Pico: TOP 10 Tipps und Tricks für CircuitPython
- Raspberry Pi Pico: Grundlegende Befehle von CircuitPython
- Raspberry Pi Pico W als WLAN-Client (mit CircuitPython)
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.