21. Lektion: Pin's: Difference between revisions
Jump to navigation
Jump to search
| Line 52: | Line 52: | ||
=== toggle / XOR '^'=== | === toggle / XOR '^'=== | ||
XOR ist eine logische Vernüpfung die nur 1 ergibt, wenn a oder b 1 ist, wenn a und b 1 sind wird 0 ausgegeben. | XOR ist eine logische Vernüpfung die nur 1 ergibt, wenn a '''oder''' b 1 ist, wenn a '''und''' b 1 sind wird 0 ausgegeben. | ||
===== Übung:===== | ===== Übung:===== | ||
<pre> | <pre> | ||
Revision as of 20:35, 15 August 2023
Was bietet uns die Klasse Pin?
Im M5Microphyton:
>>> import machine >>> dir(machine.Pin) ['__class__', '__name__', 'value', '__bases__', '__dict__', 'IN', 'IRQ_FALLING', 'IRQ_RISING', 'OPEN_DRAIN', 'OUT', 'PULL_DOWN', 'PULL_HOLD', 'PULL_UP', 'WAKE_HIGH', 'WAKE_LOW', 'init', 'irq', 'off', 'on']
Im Raspi Microphyton:
>>> import machine >>> dir(machine.Pin) ['__class__', '__name__', 'value', '__bases__', '__dict__', 'ALT', 'ALT_GPCK', 'ALT_I2C', 'ALT_PIO0', 'ALT_PIO1', 'ALT_PWM', 'ALT_SIO', 'ALT_SPI', 'ALT_UART', 'ALT_USB', 'IN', 'IRQ_FALLING', 'IRQ_RISING', 'OPEN_DRAIN', 'OUT', 'PULL_DOWN', 'PULL_UP', 'board', 'cpu', 'high', 'init', 'irq', 'low', 'off', 'on', 'toggle']
Pins initialisieren.
So sieht eine umfangreiche Initialisierung aus:
my_pin = machine.Pin(id, mode=- 1, pull=- 1, *, value=None, drive=0, alt=- 1)
Üblicherweise reicht diese Kurzform:
from machine import Pin p0 = Pin(0, Pin.OUT) p2 = Pin(2, Pin.IN, Pin.PULL_UP)
Bedeutung der Parameter:
- id
- Nummer des Pin (GPIOxx)
- mode
- Pin.IN, Pin.OUT, Pin.OPEN_DRAIN
Open Collector / Open Drain - pull
- None, Pin.PULL_UP, Pin.PULL_DOWN
PullUp / PullDown
Methoden von Pin
- Pin.value(x)
- Diese Methode ermöglicht das Setzen und Lesen des Pins. Wird x (0 oder 1) angegeben wird der Pin darauf gesetzt. Ohne x wird der Wert des Pins ausgelesen.
- Pin.high()
- Setzt den Pin auf 1. Nicht ESP32!
- Pin.low()
- Setzt den Pin auf 0. Nicht ESP32!
- Pin.off()
- Setzt den Pin auf 0.
- Pin.on()
- Setzt den Pin auf 1.
- Pin.toggle()
- Pin invertieren. Nicht ESP32!
Pins als Ausgang
LED ansteuern.
LED blinken lassen.
toggle / XOR '^'
XOR ist eine logische Vernüpfung die nur 1 ergibt, wenn a oder b 1 ist, wenn a und b 1 sind wird 0 ausgegeben.
Übung:
>>> led_pin = 0 >>> led_pin = led_pin ^ 1 >>> led_pin 1 >>> led_pin = led_pin ^ 1 >>> led_pin 0 >>>
Als konkretes Beispiel:
# mit toggle-Methode led_pin.toggle() # ohne toggle-Methode # mit bitwise xor led_pin = led_pin ^ 1
LED dimmen.
Das Dimmen einer LED unterscheidet sich vom Blinken nur durch die Umschaltgeschwindigkeit. Sobald unser Auge den Wechel nicht mehr wahrnimm,t wird da Impuls-Pausen-Verhältnis in in Helligkeit umgesetzt.
Übung:
Schreibt ein Programm mit dem die Helligkeit der LED verändert werden kann. Die Helligkeit wird nicht im laufenden Programm geändert. Dazu wird dad Programm gestoppt. Entsprechende Werte im Script geändert und neu gestartet.