
Projekte mit dem Raspberry Pi PicoDer Mikrocontroller RP2040 wurde von der Raspberry Pi Foundation entwickelt und wird unter anderem auf dem Raspberry Pi Pico eingesetzt. Auf diesem Teil unserer Webseite möchte ich ein paar Anregungen zum Arbeiten mit dem Raspberry Pi Pico geben. Raspberry Pi Pico Schnelleinsteig - von Thomas Brühlmann 2. Auflage 2023 MITP Verlags GmbH ISBN 9783747506400 Informationen über dem Raspberry Pi Pico von www.raspberrypi.com Dokumentation über MicroPython https://docs.micropython.org/en/latest/rp2/quickref.html https://docs.micropython.org/en/latest/library/machine.I2C.html Gute Artikel zum Thema State Machine https://media.elv.com/file/253236_raspberry_pi_pico_teil3.pdf https://raspithek.de/pico/pio-state-machine/
In Thonny konnte unter Linux der Dialog zum lokalen Speichern und Öffnen von Dateien nicht geöffnet werden.
Also:
# args = ["zenity", "--name=Thonny", "--class=Thonny"] + args
args = ["zenity"] + args
Als ersten Schritt wollen wir die ID des Chips auslesen. Folgende Schritte sind dazu notwendig:
# Manuelles Auslesen des Sensors BMP280 # Auslesen der DCHIP-ID # Programmiert von Sherlock19@posteo.de # Dez. 2025 / Jan. 2026 # Verwendete Quellen im Internet # https://forum-raspberrypi.de/forum/thread/51200-bme280-und-bmp280-mit-python3-auslesen/ # https://docs.micropython.org/en/latest/library/machine.I2C.html # Verwendete Literatur: # Raspberry Pi Pico Schnelleinstieg # Die notwendige Bibliothek importieren from machine import I2C # Den I2C-Bus initialisieren # Dazu anlegen eines PIN-Objektes, welcher physikalisch den PIN 8 anspricht. # Dieses Objekt wird dann über die Variable sdaPinObj angesprochen. sdaPinObj = machine.Pin(8) # Zudem anlegen eines PIN-Objektes, welcher physikalisch den PIN 9 anspricht. # Dieses Objekt wird dann über die Variable sclPinObj angesprochen. sclPinObj = machine.Pin(9) # Nun anlegen des I2C-Objektes über welches die Steuerung des # I2C-Busses durchgefuehrt wird i2cObj = machine.I2C(0, scl=sclPinObj, sda=sdaPinObj, freq=100000) # Geraeteadresse des BMP280 deviceID = 0x77 # Auslesen der CHIP-ID # datenbyte = i2cObj.readfrom_mem(deviceID, 0xD0,1) print(datenbyte) Wenn kein Fehler aufgetreten ist, dann wird folgendes im Kommandozeilenbereich von Thonny angezeigt: b'X' Wenn der Sensor nicht gefunden oder er nicht angesprochen werden kann, dann kann es hingegen zur nachfolgenden Fehlermeldung kommen. Traceback (most recent call last): File " Solche möglichen Fehler müssen abgefangen werden! Dazu gibt es den Befehl try. Im nachfolgenden Programmbeispiel habe ich diesen verwendet um einen Fehler abzufangen.
# Manuelles Auslesen des Sensors BMP280
# Auslesen der CHIP-ID
# Programmiert von Sherlock19@posteo.de
# 13. Januar 2026 mit Abfangen eines Kommunikationsfehlers
# Verwendete Quellen im Internet
# https://forum-raspberrypi.de/forum/thread/51200-bme280-und-bmp280-mit-python3-auslesen/
# https://docs.micropython.org/en/latest/library/machine.I2C.html
# https://www.elektronik-kompendium.de/sites/raspberry-pi/2803101.htm
# Verwendete Literatur:
# Raspberry Pi Pico Schnelleinstieg
# Die notwendige Bibliothek importieren
from machine import I2C
# Den I2C-Bus initialisieren
# Dazu anlegen eines PIN-Objektes, welcher physikalisch den PIN 8 anspricht.
# Dieses Objekt wird dann über die Variable sdaPinObj angesprochen.
sdaPinObj = machine.Pin(8)
# Zudem anlegen eines PIN-Objektes, welcher physikalisch den PIN 9 anspricht.
# Dieses Objekt wird dann über die Variable sclPinObj angesprochen.
sclPinObj = machine.Pin(9)
# Nun anlegen des I2C-Objektes über welches die Steuerung des
# I2C-Busses durchgefuehrt wird.
i2cObj = machine.I2C(0, scl=sclPinObj, sda=sdaPinObj, freq=100000)
# Geraeteadresse des BMP280
deviceID = 0x77
# Auslesen der CHIP-ID
allesInOrdnung = 1
try:
# Auslesen der CHIP-ID
#
datenbyte = i2cObj.readfrom_mem(deviceID, 0xD0,1)
except (OSError):
print("FEHLER: Das Auslesen des Sensors ist gescheitert.")
allesInOrdnung = 0
if allesInOrdnung == 1:
print(datenbyte)
Wird fortgesetzt... Wir hoffen, dass diese Seite gefallen hat und hilfreich war. Achtung: Es handelt sich lediglich um Bastelvorschläge! Es wird keinerlei Haftung
für den Einsatz der Schaltungen übernommen. Diese Seite ist zudem nicht kommerziell. Bei der Erstellung des Grundgerüstes dieser Internetseite wurde auf W3Schools.com zugegriffen W3Schools.com. Zudem waren viele Quellen im Internet bei Details hilfreich. Grafiken
HTML, JavaScript, ...
Details Letzte Überarbeitung am 24.03.2026 |