Das Objekt Pin: Unterschied zwischen den VersionenAus Attraktor Wiki
Version vom 19. Januar 2024, 10:05 UhrIn Python ist alles ein Objekt und Objekte haben eine ID.
Nach dem StartDirekt nach dem Einschalten sehen die Pins folgendermassen aus: MicroPython v1.21.0 on 2023-10-06; Raspberry Pi Pico W with RP2040 Type "help()" for more information. >>> from machine import Pin >>> for i in range(30): print(i,id(Pin(i)),Pin(i)) 0 268906036 Pin(GPIO0, mode=ALT, pull=PULL_DOWN, alt=31) 1 268905924 Pin(GPIO1, mode=ALT, pull=PULL_DOWN, alt=31) 2 268905812 Pin(GPIO2, mode=ALT, pull=PULL_DOWN, alt=31) 3 268905700 Pin(GPIO3, mode=ALT, pull=PULL_DOWN, alt=31) 4 268905588 Pin(GPIO4, mode=ALT, pull=PULL_DOWN, alt=31) 5 268905476 Pin(GPIO5, mode=ALT, pull=PULL_DOWN, alt=31) 6 268905364 Pin(GPIO6, mode=ALT, pull=PULL_DOWN, alt=31) 7 268905252 Pin(GPIO7, mode=ALT, pull=PULL_DOWN, alt=31) 8 268905140 Pin(GPIO8, mode=ALT, pull=PULL_DOWN, alt=31) 9 268905028 Pin(GPIO9, mode=ALT, pull=PULL_DOWN, alt=31) 10 268904916 Pin(GPIO10, mode=ALT, pull=PULL_DOWN, alt=31) 11 268904804 Pin(GPIO11, mode=ALT, pull=PULL_DOWN, alt=31) 12 268904692 Pin(GPIO12, mode=ALT, pull=PULL_DOWN, alt=31) 13 268904580 Pin(GPIO13, mode=ALT, pull=PULL_DOWN, alt=31) 14 268904468 Pin(GPIO14, mode=ALT, pull=PULL_DOWN, alt=31) 15 268904356 Pin(GPIO15, mode=ALT, pull=PULL_DOWN, alt=31) 16 268904244 Pin(GPIO16, mode=ALT, pull=PULL_DOWN, alt=31) 17 268904132 Pin(GPIO17, mode=ALT, pull=PULL_DOWN, alt=31) 18 268904020 Pin(GPIO18, mode=ALT, pull=PULL_DOWN, alt=31) 19 268903908 Pin(GPIO19, mode=ALT, pull=PULL_DOWN, alt=31) 20 268903784 Pin(GPIO20, mode=ALT, pull=PULL_DOWN, alt=31) 21 268903660 Pin(GPIO21, mode=ALT, pull=PULL_DOWN, alt=31) 22 268903536 Pin(GPIO22, mode=ALT, pull=PULL_DOWN, alt=31) 23 268903412 Pin(GPIO23, mode=ALT, alt=31) 24 268903288 Pin(GPIO24, mode=ALT, alt=31) 25 268903164 Pin(GPIO25, mode=ALT, pull=PULL_DOWN, alt=31) 26 268903052 Pin(GPIO26, mode=ALT, pull=PULL_DOWN, alt=31) 27 268902940 Pin(GPIO27, mode=ALT, pull=PULL_DOWN, alt=31) 28 268902828 Pin(GPIO28, mode=ALT, pull=PULL_DOWN, alt=31) 29 268902716 Pin(GPIO29, mode=ALT, pull=PULL_DOWN, alt=31) >>> Die Instanz Pin(11) existiert, auch wenn GPIO11 noch nicht initialisiert worden ist: >>> from machine import Pin >>> id(Pin(11)) 268904804 Sie besitzt auch schon einige default Einstellungen: >>> print(Pin(11)) Pin(GPIO11, mode=IN, pull=PULL_DOWN) Wenn eine Instanz von Pin erzeugt wird, so wird ihr ein Namen zugewiesen und ggf. die Einstellungen gesetzt: >>> b_up = Pin(11, Pin.IN, Pin.PULL_DOWN) >>> id(b_up) 268904804 >>> print(b_up) Pin(GPIO11, mode=IN, pull=PULL_DOWN) Eine solche Instanz kann auch mehrere Namen haben: >>> x = b_up >>> print(x) Pin(GPIO11, mode=IN, pull=PULL_DOWN) >>> id(x) 268904804 Es bleibt aber immer die selbe ID, also auch das selbe Objekt.
>>> Pin(11) == b_up True >>> Pin(11) == x True >>> Pin(11) is b_up True >>> Pin(11) is x True
|