Forum

Einloggen | Registrieren | RSS  

Jürgen Jänicke(R)

27.07.2026,
07:12
 

Verständnisfrage zu Micropython (Elektronik)

Vorab: Ich habe erstmalig mit dem Pi Pico und Microython zu tun. Also totales Neuland für mich. Und daher habe ich da ein kleines Verständnisproblem:
Simpler Code (als Beispiel):
**
from machine import ADC
import time
**
Ist klar, die beiden Module werden eingebunden. Dann folgt:
**
sensor_AO = machine.ADC(26) # Auch klar deswegen ja das Modul 'machine'. Oder?
**
Aber in vielen Beispielen im Netz wird das 'machine' an dieser Stelle auch weggelassen. Und es funktioniert gleichermaßen.
Also nur "sensor_AO = ADC(26)". Was ist da der Hintergrund für die zwei verschiedenen Schreibweisen?
Danke für jede Hilfe die mir den Einstieg dieses System etwas erleichtert.

Grüße Jürgen

Techniker

27.07.2026,
10:43

@ Jürgen Jänicke

Verständnisfrage zu Micropython

Ich habe das einfach in eine KI kopiert und nicht selber beantwortet.
Lange habe ich mich geweigert, aber seit ich KI Nutze machen meine ESPs das was ich will ABER ich verblöde dabei !

Das ist eine hervorragende Einstiegsfrage! Es ist völlig normal, dass das am Anfang verwirrt. Der Grund für die beiden Schreibweisen liegt ausschließlich darin, wie die Module in den ersten Zeilen importiert werden.Hier ist der genaue Hintergrund einfach erklärt:1. Die Schreibweise ohne "machine."Wenn du folgendes schreibst:pythonfrom machine import ADC
sensor_AO = ADC(26)

Erklärung: Durch das Wort from sagst du Python: „Gehe in den Werkzeugkasten machine und hole direkt das Werkzeug ADC heraus.“Auswirkung: Das Werkzeug liegt nun direkt auf deinem Arbeitstisch. Du musst nicht mehr sagen, woher es kam, sondern kannst es direkt mit ADC(26) ansprechen.2. Die Schreibweise mit "machine."Damit die Zeile machine.ADC(26) funktioniert, müsste der Import am Anfang so aussehen:pythonimport machine
sensor_AO = machine.ADC(26)

Erklärung: Hier sagst du Python nur: „Stelle mir den ganzen Werkzeugkasten machine auf den Tisch.“Auswirkung: Wenn du jetzt das Werkzeug ADC nutzen willst, musst du Python genau sagen, in welchem Kasten es liegt. Deshalb der Punkt: machine.ADC(26) (übersetzt: „Nutze aus dem Kasten machine das Werkzeug ADC“).Warum funktionierte dein Beispiel trotzdem?In deinem Code-Schnipsel hast du geschrieben: from machine import ADC und danach machine.ADC(26).Dass das funktioniert hat, liegt vermutlich daran, dass du Thonny oder eine andere IDE nutzt und das machine-Modul aus einem vorherigen Programmdurchlauf oder im Hintergrund bereits komplett geladen war. Rein syntaktisch gehört das machine. vor dem ADC nur dann dorthin, wenn du vorher import machine (ohne from) genutzt hast.Was ist besser?Beide Wege sind völlig korrekt, aber in der MicroPython-Welt hat sich Folgendes etabliert:from machine import ADC, Pin: Das wird meistens genutzt. Es spart Schreibarbeit im Code und macht ihn übersichtlicher, weil man nicht permanent machine. vor jedes Bauteil schreiben muss.

Jürgen Jänicke(R)

27.07.2026,
14:45

@ Techniker

Verständnisfrage zu Micropython

» 1.
» Erklärung: Durch das Wort from sagst du Python: „Gehe in den
» Werkzeugkasten machine und hole direkt das Werkzeug ADC
» heraus.
» 2.
» Erklärung: Hier sagst du Python nur: „Stelle mir den ganzen
» Werkzeugkasten machine auf den Tisch.“Auswirkung: Wenn du jetzt das
» Werkzeug ADC nutzen willst, musst du Python genau sagen, in welchem Kasten
» es liegt. Deshalb der Punkt: machine.ADC(26) (übersetzt: „Nutze aus dem
» Kasten machine das Werkzeug ADC“).

Danke der ausführlichen und verständlichen Beschreibung der Varianten. Ja so verstehe sogar ich das. . .
Seltsamerweise existieren bei mir einige Projekte mit dem Rapberry PI, aber da ist mir das nie aufgefallen. Selbst bei meinem größten Projekt mit mehr als 3000 Programmzeilen. Erst hier bei dem primitiven Pico stolpere ich darüber ;-((
Aber gut, wieder was gelernt.
Grüße Jürgen