ZUSAMMENFASSUNG: In unserem ersten Projekt messen wir Entfernungen mit dem Ultraschallsensor und visualisieren die gemessene Entfernung, indem
wir die Grafik auf dem TFT-Display mehr oder weniger stark füllen. In unserem Beispiel füllen wir das Display ab einer gemessenen Entfernung von 100 cm
vollständig.
# Bibliotheken laden
from
machine
import
Pin, SPI
import
ST7735
import
time
import
lcd_gfx
# Initialisierung von GPIO16 als Input und GPIO17 als Ausgang
trig
=
Pin(17, Pin.OUT)
echo
=
Pin(16, Pin.IN, Pin.PULL_DOWN)
# LCD initialisieren
spi
=
SPI(0, baudrate=8000000, polarity=0, phase=0, sck=Pin(18), mosi=Pin(19),
miso=Pin(16))
lcd
=
ST7735.ST7735(spi, rst=6, ce=17, dc=3)
backlight
=
Pin(2, Pin.OUT)
backlight.high()
lcd.reset()
lcd.begin()
lcd.fill_screen(lcd.rgb_to_565(255, 255, 255))
def
translate(value, leftMin, leftMax, rightMin, rightMax):
# Figure out how 'wide' each range is
leftSpan
=
leftMax
-
leftMin
rightSpan
=
rightMax
-
rightMin
# Convert the left range into a 0-1 range (float)
valueScaled
=
float(value
-
# Convert the 0-1 range into a value in the right range.
return
rightMin
+
(valueScaled
# Endlosschleife zur Messung der Distanz
while
True:
# Abstandsmessung wird mittels des 10us langen Triggersignals gestartet
trig.value(0)
time.sleep(0.1)
trig.value(1)
# Nun wird am Echo-Eingang gewartet, bis das Signal aktiviert wurde
# Danach wird die Zeit gemessen, wie lang es aktiviert bleibt
time.sleep_us(2)
trig.value(0)
while
echo.value()==0:
pulse_start
=
time.ticks_us()
while
echo.value()==1:
pulse_end
=
time.ticks_us()
pulse_duration
=
pulse_end
leftMin)
/
float(leftSpan)
*
rightSpan)
-
pulse_start
Initialisierung des Ultraschall-
sensors und des TFT-Displays
Hilfsfunktion zur Anpassung des
Wertebereiches
Distanzmessung
18