Forum: Mikrocontroller und Digitale Elektronik Relais schalten unter linux


von foxi (Gast)


Lesenswert?

nabend,

ich habe da mal als anfänger(elektrotechnik noob) eine verständnis 
frage.
benutze ein foxboard(debian) womit ich 1-wire sensoren abfragen und über 
ein webserver grafisch darstelle.
jetzt möchte ich gerne eine relais karte anschaffen, um ein 24V 
magnetventil zu schalten.

denke mir das man das ganze über die gpio anschliessen kann?
wie spreche ich jetzt so ein relay an über die linux konsole?
suche ich mir den pin aus die ich später anspreche muss,
und diese ist als device verfügbar unter /dev oder im sys...?

ganz übertrieben gesagt mit echo 1 > /dev/tt-meindevice
oder ist das nur wunsch träumen von mir und das geht ganz anders.

lese immer man muss sich was in C schreiben etc...

ich will jetzt keine fertige scripte etc...,
sondern nur den grobe ablauf so eine schaltung/ansteuern ünter linux.

sorry, aber elektromäsig habe ich kein plan,
bin mehr mail/web/fileserver mäsig unter linux unterwegs

danke
john

von Michael H. (michael_h45)


Lesenswert?

Using the I/O lines in C:
http://foxlx.acmesystems.it/?id=22

Relais an I/O Pin:
Relais mit Logik ansteuern

Alternativ: eine fertige Relaiskarte an einer Schnittstelle. Seriell 
oder USB.

von einer (Gast)


Lesenswert?

Wenn Du das AVR_NET_IO-Modul von Pollin verwendest, ist es egal wie und 
wo das Relais betrieben werden soll.

http://www.pollin.de/shop/dt/MTQ5OTgxOTk-/Bausaetze_Module/Bausaetze/Bausatz_AVR_NET_IO.html

von Michael H. (michael_h45)


Lesenswert?

das board ist mist...

von einer (Gast)


Lesenswert?

Zum schalten von Relais aber durchaus geeignet ?!

-> Plattform-Unabhängig und auch noch weltweit

von Michael H. (michael_h45)


Lesenswert?

er hat ein uC-board. das dem pollin-zeug generationen voraus ist.
nur weil dein horizont nicht so weit reicht, muss er ja nicht 10 
schritte zurueck gehen.

er will ein relais schalten. von netzwerk oder anderem board war keine 
rede.

von Imon (Gast)


Lesenswert?

foxi schrieb:
> denke mir das man das ganze über die gpio anschliessen kann?
> wie spreche ich jetzt so ein relay an über die linux konsole?
> suche ich mir den pin aus die ich später anspreche muss,
> und diese ist als device verfügbar unter /dev oder im sys...?
>
unter sys sollte was stehen.

> ganz übertrieben gesagt mit echo 1 > /dev/tt-meindevice
> oder ist das nur wunsch träumen von mir und das geht ganz anders.

das ist kein Wunsch traum von dir, das geht wirklich. Achte darauf das 
der GPIO, denn du wählst nicht schon von was anderen belegt ist. Dann 
musst du die GPIO Nummer Herausfinden und den GPIO auf der Kommandozeile 
mit den folgenden Aufruf exportieren.
1
 echo <NR> > /sys/class/gpio/export

Danach musst du die Richtung (I/O) des GPIO mit folgenden Aufruf auf 
Ausgang stellen
1
echo out > /sys/class/gpio/gpio<NR>/direction

und ab jetzt kannst du mit denn Folgenden Befehlen den GPIO schalten
1
echo 1 > /sys/class/gpio/gpio<NR>/value  # einschalten
2
echo 0 > /sys/class/gpio/gpio<NR>/value  # ausschalten

von foxi (Gast)


Lesenswert?

moin

erstmal danke für die antworten!

@einer
nein noch ein board mit ethernet etc... brauche ich nicht, habe ich doch 
schon. ;-)

@michael
danke, zum relais bestellen und aufbauen habe ich ein bekannte(elekt. 
ing) der sich damit auskenne, nur der hat kein linux kenntnisse.
diese ganze schaltpläne verstehe ich nicht immer alles so.
der hat mir schon erklärt wie so ein aufbau auszusehen hat mit diode 
etc..

@imon

also diese link http://netus.acmesystems.it/doku.php?id=tutorial:gpio 
habe ich schon gelesen,
wusste nur nicht ob man den relais auch darüber schalten kann.

ich habe aber überall gelesen das die variante langsamer ist,
und man denn weg über C vorziehen soll.

aber wenn es so "einfach" geht warum nicht, oder sprechen was dagegen es 
so zu machen?
kommt mir sehr recht, ich habe da paar cronjobs laufen für temperatur 
erfassen mit abspeichern in sqlite.
dann kann ich mir einfach ein script basteln der ein mittelwert der 
letzte z.b 5 temperaturwerte ermitteln, und dann bei bedarf ein echo 1 > 
/sys/class/gpio/gpio<NR>/value abfeuern.
über ein cat /sys/class/gpio/gpio<NR>/value kann ich denke ich mir auch 
leicht die aktuelle status abfragen etc....

gruß
john

von oszi40 (Gast)


Angehängte Dateien:

Lesenswert?

1.Logisch richtig zuverlässig ansteuern ist die eine Seite.

2.Induktive Abschaltspitzen sind die andere Seite, die schon manche 
Fehlfunktion ausgelöst hat. Man sollte also auch auf den Aufbau achten.

von foxi (Gast)


Lesenswert?

heute habe ich mit mein freund (elekt. ing) gesprochen der meine relais 
bauen soll,
und der meint er würde ein 8 kanal IC nehmen und dahinter die zwei 
relais.

dann muss ich die ic ansteurn zum schalten, leider habe ich da nicht 
viel plan von und würde lieber die variante oben vorziehen.

ich brauche zwei relais, 1x 24V(magnetventil) und 1 mal 230V für eine 
pumpe.
er meinte externe stromversorgung 12V und alles über die ic steuern.

was macht mehr sinn, oder was ist einfacher.

über i2c mal mein grobe wissen wie sowas geht
ein i2cdetect zeigt mir schon mal was an, aber noch ist nichts 
angeschlossen.
wenn ja halt die address mit i2cdetect ermitteln, dann doku vom IC lesen 
und mit i2cget und i2cset die relais über die console ansteuern,
oder doch mal in C einarbeiten und das ganze im C schreiben?

gruß
john

von Michael H. (michael_h45)


Lesenswert?

foxi schrieb:
> dann muss ich die ic ansteurn zum schalten, leider habe ich da nicht
> viel plan von und würde lieber die variante oben vorziehen.
Ohne den Namen des ICs kann man darüber nichts sagen.
Einfacher und günstiger als unter Relais mit Logik ansteuern wird es 
vermutlich nicht.
Falls dir eine klare Anleitung lieber ist: 
http://www.franksteinberg.de/erel.htm

> ich brauche zwei relais, 1x 24V(magnetventil) und 1 mal 230V für eine
> pumpe.
> er meinte externe stromversorgung 12V und alles über die ic steuern.
Nimm lieber 5V Relais, denn dann kannst du die Versorgung von deinem 
foxboard auch dafür nutzen und brauchst nicht noch ein Netzteil.

> über i2c mal mein grobe wissen wie sowas geht
i2c? Ich dachte, du willst über GPIO schalten?

von foxi (Gast)


Lesenswert?

hi

danke, franksteinberg seite kenne ich, so war auch mein plan eigentlich.
da ich von elektro keine ahnung habe, weiß ich ja auch nicht wie der 
aufbau so eine karte genau sein muss,
daher kann ich ja nur kurz erzählen was er so meint.

er meint 5V reicht nicht um 230V mit zur schalten, da muss ein externe 
stromkreis dran, am besten 12V.
über i2c meint er wäre es besser, man ist flexibler/erweiterbar etc.

ich habe auch gelesen das wenn man ein 12c bauteil nehmen sollte,
man drauf achten soll das es auch linux treiber für gibt.
wenn es denn so ein i2c sein muss, was würde denn so am gängigste 
genommen unter linux?

mir wir naturlich gpio lieber.

wie würde ihr sowas denn machen?

danke
john

von olibert (Gast)


Lesenswert?

foxi schrieb:
> er meint 5V reicht nicht um 230V mit zur schalten

Bist du sicher das dein Freund Ahnung von Elektronik hat ?

von Michael H. (michael_h45)


Lesenswert?

foxi schrieb:
> er meint 5V reicht nicht um 230V mit zur schalten, da muss ein externe
> stromkreis dran, am besten 12V.
Das ist Blödsinn.
Es gibt auch Relais mit 5V Spulenspannung, die große Lasten schalten 
können.

> über i2c meint er wäre es besser, man ist flexibler/erweiterbar etc.
Das stimmt, aber wenn du wirklich nur 2 Relais brauchst, nimm GPIO.

von foxi (Gast)


Lesenswert?

keine ahnung, wie gesagt habe ich da kein plan von elektro, nur respekt, 
daher frage ich ja auch nach.

naja,der ist elekt. ing. und arbeite in ein sehr große 
konzern(produziern teile für bmw/vw etc..),
und ist dort für steuerung, elektrik etc.. der maschinen zuständigt.
die arbeiten mehr mit Logo SPS etc..

er meint halt 3,3 oder 5V wäre nicht so optimal.

von mbs (Gast)


Lesenswert?

ich hatte kürzlich etwas ähnliches gemacht: Embedded device von Omnima 
mit OpenWRT Linux drauf und dann über die GPIOs drei Relais angesteuert. 
Als Relais bekam ich beim großen C welche, die für 6V ausgelegt waren, 
funktionierten mit den 5V des Boards aber auch. Das erste Relais 
schaltete die 230V vom 24V-Netzteil, und die anderen beiden hingen 
zwischen Netzteil und 2 Magnetventilen. Das ganze dann einfach als 
cron-job angesteuert, mittels Zugriff über sysfs. Solange dein Board den 
Strom für die Relais liefern kann, klappt das ganz gut.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.