LED A1 und A2 Ansteuerung via Python & GPIO ?

Rund um die Hardware des Revolution Pi
a.eddaaf
Posts: 2
Joined: 15 Apr 2019, 11:17

Re: LED A1 und A2 Ansteuerung via Python & GPIO ?

Post by a.eddaaf »

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
User avatar
dirk
KUNBUS
Posts: 2174
Joined: 15 Dec 2016, 13:19

Re: LED A1 und A2 Ansteuerung via Python & GPIO ?

Post by dirk »

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.

Code: Select all

pi@RevPi8149:~ $ piTest -v RevPiLED
variable name: RevPiLED
       offset: 6
       length: 8
          bit: 0
RevPiLED befindet sich an der Stelle 6 im Prozessabbild.
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
a.eddaaf
Posts: 2
Joined: 15 Apr 2019, 11:17

Re: LED A1 und A2 Ansteuerung via Python & GPIO ?

Post by a.eddaaf »

RevPi.PNG
RevPi.PNG (54.91 KiB) Viewed 6373 times
Hallo Dirk,

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.
User avatar
dirk
KUNBUS
Posts: 2174
Joined: 15 Dec 2016, 13:19

Re: LED A1 und A2 Ansteuerung via Python & GPIO ?

Post by dirk »

Hi, schau Dir mal das Tutorial #13 an, dann wirds klar. Wenn du mit dem Code arbeitest dann gibt es eben zwei piTest Binaries.
Post Reply