1.3.4 Relais

Einführung

In diesem Projekt lernen wir, ein Relais zu verwenden. Es ist eine der häufig verwendeten Komponenten in automatischen Steuersystemen. Wenn die Spannung, der Strom, die Temperatur, der Druck usw. den vordefinierten Wert erreicht, überschreitet oder unterschreitet, wird das Relais den Stromkreis verbinden oder unterbrechen, um die Geräte zu steuern und zu schützen.

Erforderliche Komponenten

Für dieses Projekt benötigen wir folgende Komponenten.

../_images/1.3.4_relay_list.png

Schaltplan

../_images/1.3.4_relay_schematic.png

Versuchsdurchführung

Schritt 1: Bauen Sie die Schaltung.

../_images/1.3.4_relay_circuit.png

Schritt 2: Öffnen Sie die Code-Datei.

cd ~/davinci-kit-for-raspberry-pi/python-pi5

Schritt 3: Ausführen.

sudo python3 1.3.4_Relay_zero.py

Während der Ausführung des Codes leuchtet die LED auf. Darüber hinaus können Sie ein Ticken hören, verursacht durch das Unterbrechen des normalerweise geschlossenen Kontakts und das Schließen des normalerweise offenen Kontakts.

Code

Bemerkung

Sie können den folgenden Code Ändern/Zurücksetzen/Kopieren/Ausführen/Stoppen. Bevor Sie das tun, müssen Sie jedoch zum Quellcodepfad wie davinci-kit-for-raspberry-pi/python-pi5 gehen. Nach der Änderung des Codes können Sie ihn direkt ausführen, um die Wirkung zu sehen.

#!/usr/bin/env python3
from gpiozero import OutputDevice  # Importieren Sie die Klasse zur Steuerung der GPIO-Pins
from time import sleep  # Importieren Sie die Schlaffunktion für Verzögerungen

# Initialisieren Sie das Relais, das mit dem GPIO-Pin 17 verbunden ist
relais = OutputDevice(17)

try:
    # Schleife zum kontinuierlichen Umschalten des Zustands des Relais alle Sekunde
    while True:
        print('Relais öffnet...')  # Informieren Sie, dass das Relais aktiviert wird
        relais.on()  # Schalten Sie das Relais ein (unter der Annahme einer aktiven Niedrigkonfiguration)
        sleep(1)   # Halten Sie das Relais für 1 Sekunde im eingeschalteten Zustand

        print('...Relais schließt')  # Informieren Sie, dass das Relais deaktiviert wird
        relais.off()  # Schalten Sie das Relais aus
        sleep(1)   # Halten Sie das Relais für 1 Sekunde im ausgeschalteten Zustand

except KeyboardInterrupt:
    # Behandeln Sie eine Tastaturunterbrechung (wie Ctrl+C), um aus der Schleife auszusteigen
    relais.off()  # Stellen Sie sicher, dass das Relais ausgeschaltet ist, bevor Sie den Vorgang beenden
    pass

Code-Erklärung

  1. Es importiert OutputDevice von gpiozero zur Steuerung der GPIO-Pins und sleep von time zur Hinzufügung von Verzögerungen.

    #!/usr/bin/env python3
    from gpiozero import OutputDevice  # Importieren Sie die Klasse zur Steuerung der GPIO-Pins
    from time import sleep  # Importieren Sie die Schlaffunktion für Verzögerungen
    
  2. Initialisiert ein OutputDevice-Objekt für das Relais, das mit dem GPIO-Pin 17 verbunden ist.

    # Initialisieren Sie das Relais, das mit dem GPIO-Pin 17 verbunden ist
    relais = OutputDevice(17)
    
  3. Innerhalb des try-Blocks schaltet eine while True-Schleife den Zustand des Relais kontinuierlich um. Das Relais wird ein- und ausgeschaltet, wobei zwischen jedem Zustand eine Verzögerung von 1 Sekunde besteht, begleitet von Konsolendruckanzeigen.

    try:
        # Schleife zum kontinuierlichen Umschalten des Zustands des Relais alle Sekunde
        while True:
            print('Relais öffnet...')  # Informieren Sie, dass das Relais aktiviert wird
            relais.on()  # Schalten Sie das Relais ein (unter der Annahme einer aktiven Niedrigkonfiguration)
            sleep(1)   # Halten Sie das Relais für 1 Sekunde im eingeschalteten Zustand
    
            print('...Relais schließt')  # Informieren Sie, dass das Relais deaktiviert wird
            relais.off()  # Schalten Sie das Relais aus
            sleep(1)   # Halten Sie das Relais für 1 Sekunde im ausgeschalteten Zustand
    
  4. Fängt eine KeyboardInterrupt (wie Ctrl+C) ab, um ein ordnungsgemäßes Beenden des Skripts zu ermöglichen. Das Relais wird ausgeschaltet, bevor das Skript beendet wird.

    except KeyboardInterrupt:
    # Behandeln Sie eine Tastaturunterbrechung (wie Ctrl+C), um aus der Schleife auszusteigen
    relais.off()  # Stellen Sie sicher, dass das Relais ausgeschaltet ist, bevor Sie den Vorgang beenden
    pass