Forum
Verständnisfrage zu Micropython (Elektronik)
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.
Gesamter Thread:
