Ganz einfach: Gedrückt grün, losgelassen rot
#Aufzug1
from machine import Pin
import time
p2= Pin(2, Pin.OUT)
p5= Pin(5, Pin.OUT)
p19 = Pin(19, Pin.IN, Pin.PULL_UP)
while True:
if (p19.value()==0):
p2.value(1)
p5.value(0)
else:
p2.value(0)
p5.value(1)
Der zweite Versuch war komplizierter. Der Aufzug steht immer unten.
Wenn ich drücke, geht er hoch (grün). Wenn er da ist, lasse ich los und
steige ein. Dann geht er wieder runter (rot) und bleibt da bis zum
nächsten Schalterdruck.
#Aufzug2
from machine import Pin
import time
p2= Pin(2, Pin.OUT)
p5= Pin(5, Pin.OUT)
p19 = Pin(19, Pin.IN, Pin.PULL_UP)
while True:
while (p19.value()==1): #auf Taster warten
time.sleep(0.1)
while (p19.value()==0): #gedrückt
p2.value(1) #grün
p5.value(0)
time.sleep(1) #wieder losgelassen
p2.value(0)
time.sleep(1)
p5.value(1) #rot
time.sleep(5)
p5.value(0)
Geschwindigkeitsmessung
Dietrich wollte die Geschwindigkeit von Autos
messen. Er hat zwei Wegmarken im Abstand von ca. 50 m. Ein Taster wird so lange
gedrückt, wie das Auto auf dieser Strecke ist. Das Programm berechnet
dann die Geschwindigkeit.
Der im Bild obere Taster steckt nur mit den
beiden unteren Beinchen im Steckbrett und dient lediglich einem Reset
des Pico. Der untere Taster an GPIO2 und 4 gegen GND dient zur
Zeitmessung. Zur besseren Übersicht wurden alle GND-Pinne (3, 8, 13,
18) an Y gelegt.
#kmh.py
from machine import Pin
import time
led = Pin(25, Pin.OUT)
p2 = Pin(2, Pin.IN, Pin.PULL_UP)
p4 = Pin(4, Pin.IN, Pin.PULL_UP)
led.value(0)
while True:
zeit=0
strecke=44.70
while p2.value()==0:
time.sleep(0.1)
zeit=zeit+0.1
if zeit>0:
geschwindigkeit=int(3.6*strecke/zeit)
print (geschwindigkeit," km/h")