""" Hier ist ein Python-Programm für den Raspberry Pi Pico, das zwei Motoren über Transistoren (BC547) steuert. Die Motoren stoppen, wenn der Ultraschallsensor (HC-SR04) eine Entfernung von 10 cm oder weniger misst. Verdrahtung: HC-SR04 (Ultraschallsensor): VCC → 3.3V (Pin 39) GND → GND (Pin 38) Trigger → GP13 (Pin 18) Echo → GP14 (Pin 19) Motoren (über BC547-Transistoren): Motor 1: Steuerpin (GP15) → Basis des BC547 (über Widerstand, z. B. 1 kΩ) Motor-Versorgung: Externe Spannung (z. B. 5V–9V) Motor-GND: An GND der externen Spannung Motor 2: Steuerpin (GP16) → Basis des BC547 (über Widerstand, z. B. 1 kΩ) Motor-Versorgung: Externe Spannung (z. B. 5V–9V) Motor-GND: An GND der externen Spannung """ from machine import Pin, PWM import time # --- Ultraschallsensor (HC-SR04) --- trigger = Pin(13, Pin.OUT) echo = Pin(14, Pin.IN) # --- Motorsteuerung (über BC547) --- motor1 = Pin(15, Pin.OUT) # Steuerpin für Motor 1 motor2 = Pin(16, Pin.OUT) # Steuerpin für Motor 2 def get_distance(): # Trigger-Impuls für 10 Mikrosekunden trigger.low() time.usleep(2) trigger.high() time.usleep(10) trigger.low() # Echo-Impuls messen while echo.value() == 0: pulse_start = time.ticks_us() while echo.value() == 1: pulse_end = time.ticks_us() # Entfernung in cm berechnen pulse_duration = time.ticks_diff(pulse_end, pulse_start) distance = (pulse_duration * 0.0343) / 2 return distance def stop_motors(): motor1.low() motor2.low() def start_motors(): motor1.high() motor2.high() # Hauptprogramm try: while True: distance = get_distance() print(f"Entfernung: {distance:.1f} cm") if distance <= 10.0: # Stoppen, wenn Entfernung ≤ 10 cm stop_motors() print("Hindernis erkannt! Motoren gestoppt.") else: start_motors() time.sleep(0.1) # Kurze Pause für Stabilität except KeyboardInterrupt: stop_motors() # Motoren stoppen bei Programmabbruch