import machine
import time
import network
# WLAN-Informationen
SSID = 'FRITZ!Box 7530 MB-ex24'
PASSWORD = 'gx3systems9966'
# Pin-Definitionen für Ultraschall-Sensoren
TRIG1 = machine.Pin(5, machine.Pin.OUT) # D1 = GPIO5
ECHO1 = machine.Pin(18, machine.Pin.IN) # D2 = GPIO4
TRIG2 = machine.Pin(19, machine.Pin.OUT) # D6 = GPIO12
ECHO2 = machine.Pin(21, machine.Pin.IN) # D5 = GPIO14
# Maximale Entfernung in cm
MAX_DISTANCE = 400
# Pin-Definitionen für den Stepper-Motor (A4988)
DIR = machine.Pin(13, machine.Pin.OUT) # D7 = GPIO13 (Richtung)
STEP = machine.Pin(15, machine.Pin.OUT) # D8 = GPIO15 (Schritt)
# Anzahl der Schritte für 180 Grad (bei 1.8° Schrittwinkel = 200 Schritte)
STEPS_PER_REV = 200
HALF_TURN = STEPS_PER_REV // 2 # 180 Grad = Hälfte der Schritte
# Funktion zur WLAN-Verbindung
def connect_to_wifi():
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
if not wlan.isconnected():
print('Verbinde mit dem WLAN...')
wlan.connect(SSID, PASSWORD)
while not wlan.isconnected():
time.sleep(1)
print('Mit dem WLAN verbunden!')
print('Netzwerkinformationen:', wlan.ifconfig())
# Funktion zur Entfernungsmessung
def distance(trig, echo):
trig.off()
time.sleep_us(2)
trig.on()
time.sleep_us(10)
trig.off()
start_time = time.ticks_us()
while echo.value() == 0:
start_time = time.ticks_us()
while echo.value() == 1:
stop_time = time.ticks_us()
time_elapsed = time.ticks_diff(stop_time, start_time)
distance_cm = (time_elapsed * 0.0343) / 2
return min(distance_cm, MAX_DISTANCE)
# Funktion zum Bewegen des StepperMotors
def move_motor(steps, direction):
DIR.value(direction) # Richtung festlegen: 1 vorwärts, 0 rückwärts
for _ in range(steps):
STEP.on()
time.sleep(0.01) # Schritt-Impuls (ca. 10 ms High)
STEP.off()
time.sleep(0.01) # Wartezeit
# Hauptprogramm
try:
connect_to_wifi()
while True:
# Hinbewegung: 180 Grad
print("Bewege Motor: 180 Grad vorwärts")
move_motor(HALF_TURN, 1) # Vorwärts bewegen
time.sleep(1)
# Rückbewegung: 180 Grad
print("Bewege Motor: 180 Grad rückwärts")
move_motor(HALF_TURN, 0) # Rückwärts bewegen
time.sleep(1)
except KeyboardInterrupt:
print("Programm beendet.")
#https://randomnerdtutorials.com/micropython-hc-sr04-ultrasonic-esp32-esp8266/