Hallo zusammen,
ich versuche gerade meine ersten Erfahrungen mit RevPI connect zusammeln. Also ich habe einen Skript vorbereitet, der einen Prozess überwacht, ob er läuft oder nicht. Wenn der Prozess aus irgendeinem Grund nicht mehr läuft, soll ich die Relaiskontakt ansteuern. Für die Steuerung der Relaiskontakt habe ich mit Python ein kleines Code geschrieben. Ich möchte gerne den Ausgang (Relaiskontakt) direkt ansteuern allerdings ich finde nirgendwo die direkte Adresse.
Weisst jemdand von Euch, wie die dierekte Adresse von Relaiskontakt heißt?
@Volker: Sie haben schon die direkten Adressen von A1 und A2 gegeben.
Ich danke euch allen für die konstruktive Ratschläge
#!/usr/bin/env python3
# This function gives out a pulse combination
# of high and low signal in different pulse lengths
# * The pulse lengths are parameterized
# * Exemple: Function call: python ControlContactRelay.py HighSig LowSig periods
# Call the standard libraries
import time
import RPi.GPIO as GPIO
import sys
# First transfer parameter: Length of the high signal
def DelTimeHigh(HighSig):
return HighSig
# Second transfer parameter: Length of the Low signal
def DelTimeLow(LowSig):
return LowSig
# Number of Periods
def NrOfPeriods(periods):
return periods
GPIO.setwarnings(False)
# RPi.GPIO Layout verwenden (wie Pin-Nummern)
GPIO.setmode(GPIO.BCM)
# Delay for High-Signal
HighSig = int(sys.argv[1])
print 'Delay for High-Signal :=',DelTimeHigh(HighSig)
# Delay for Low-Signal
LowSig = int(sys.argv[2])
print 'Delay for Low-Signal :=',DelTimeLow(LowSig)
# Number of the perios
periods = int(sys.argv[3])
print 'Periods :=',NrOfPeriods(periods)
# Pin 11 (GPIO 17) auf Output setzen
GPIO.setup(32, GPIO.OUT)
# Auxiliary variable
i=1
# runs as much as the number of periods are set
while i <= periods:
# Close contact relay
GPIO.output(32, GPIO.HIGH)
time.sleep(HighSig)
# Open contact relay
GPIO.output(32, GPIO.LOW)
time.sleep(LowSig)
i += 1
LED A1 und A2 Ansteuerung via Python & GPIO ?
Re: LED A1 und A2 Ansteuerung via Python & GPIO ?
Hi, du kannst über das Prozessabbild auf den RevPi Connect Relaiskontakt zugreifen.
Der Relaiskontakt ist nach dem Start geschlossen. Du kannst ihn aber im Prozessabbild über die Variable RevPiLED Bit 6 öffnen und schließen.
Die Variable ist ein Bitfeld und ein paar Bits sind für die LEDs A1,A2,A3 und das Bit 6 ist eben für den Relaiskontakt.
RevPiLED befindet sich an der Stelle 6 im Prozessabbild.
Schalten von Bit6 an Offset 6:
Der Relaiskontakt ist nach dem Start geschlossen. Du kannst ihn aber im Prozessabbild über die Variable RevPiLED Bit 6 öffnen und schließen.
Die Variable ist ein Bitfeld und ein paar Bits sind für die LEDs A1,A2,A3 und das Bit 6 ist eben für den Relaiskontakt.
Code: Select all
pi@RevPi8149:~ $ piTest -v RevPiLED
variable name: RevPiLED
offset: 6
length: 8
bit: 0
Schalten von Bit6 an Offset 6:
Code: Select all
pi@RevPi8149:~ $ piTest -s 6,6,1
Set bit 6 on byte at offset 6. Value 1
pi@RevPi8149:~ $ piTest -s 6,6,0
Set bit 6 on byte at offset 6. Value 0
Re: LED A1 und A2 Ansteuerung via Python & GPIO ?
danke sehr für Deine rasche Antwort. Wie Du im angehängten Bild siehst, habe ich den Fehler command not found, obwohl ich die Prozesse im ausführbaren Modus geändert habe und sich im rechtigen Ordner befinde. Hast du eine Idee, was ich falsch mache? müssen bestimmte Bibliotheken nachinstallieren werden?.
Gibt es eine direkte Adresse, mit der man die Relaiskontakt ansteuern können?
Hast Du ein Beispiel mit Python-Skript?
Ich danke Dir ganz herzlich für Deine Unterstützung.
Re: LED A1 und A2 Ansteuerung via Python & GPIO ?
Hi, schau Dir mal das Tutorial #13 an, dann wirds klar. Wenn du mit dem Code arbeitest dann gibt es eben zwei piTest Binaries.