Forum: Mikrocontroller und Digitale Elektronik Programmablauf für 8 Kanal Relaiskarte auf Arduino.


von Stephan H. (maronis_d)


Lesenswert?

Habe hier so eine Standard Relaiskarte wie man sie bei jedem
Makershop bekommt.

8 Relais drauf, Status-LED und über Optokoppler getrennt.

Man bringt über GND und VCC die Versorgungsspannung rein und über die
restlichen Pins steuert man die Relais.

Nun wollte ich ganz gerne eine Schleife machen, um über zwei der Relais
24V AC Motoren im Steinmetzbetrieb zu schalten. Einfach eine 
Drehrichtungsumkehr. Geschaltet links, ungeschaltet rechts.
Die Motoren stoppen über Endlagen selbst und die nötige Laufzeit
würde ich per Stoppuhr messen.

Und die Schleife soll immer laufen.

Habe also mal kurz was zusammengestrickt, nach dem Schema

do {
  delay(50);
  x = analogRead(3);  // prüft den Sensorwert am Pin 3
} while (x < 100);

Wobei ich den Pin 3 einfach offen lasse, somit kann der messen, solange 
er
will, die 100 werden also nie erricht. Aber trotzdem läuft die Schleife
nicht.

Muss ich für diese Relaisboards noch extra Bibliotheken laden?

Oder ist es die falsche Schleifenart?

von Alexander K. (Gast)


Lesenswert?

Ich frage mich gerade ob bei so kurzen Delay-Zeiten das Relais das auf 
Dauer mitmacht.

Irgendwie glaube ich nicht das die Teile für so eine Belastung geeignet 
sind. Das ist immerhin billigste China-Ware.

Ich denke die sind eher dafür gedacht man ne Lampe einzuschalten.

Gruß

  Pucki

von Tipps (Gast)


Lesenswert?

Google doch mal nach einem Beispiel, die gibt es zu Hauf.

In deiner Schleife tust du ja nichts, du liest Analog Pin 3 ein und 
wartest.
Die Schleife stoppt sobald A3 > 100 und das kann bei einem offenen Pin 
durchaus passieren. Zufällig, immer, unberechenbar.

Schalte A3 auf GND und deine Schleife läuft.

Relais Ansteuern machst du dann mit digitalWrite().

von Georg M. (g_m)


Lesenswert?

Stephan H. schrieb:
> while (x < 100);
>
> Oder ist es die falsche Schleifenart?

Ja, probiere lieber mit if().

von Alexander K. (Gast)


Lesenswert?

Nachtrag :

Ein Relais ist nix anderes wie ein Schalter der eine höhere Spannung 
schaltet.  Also setzt du den passenden Pin des Relais auf HIGH (= an) o. 
LOW  (=aus). Das ist alles.

Für die Ansteuerung brauch man i.d.R. keine Libs. Es sei denn du willst 
bei einer 8er Karte Pins sparen und setzt z.b. ein i2c-Portexpander ein.

Du brauchst nämlich für jedes Relais auf der Karte 1 Pin auf den 
Arduino. Entweder direkt oder halt indirekt (via Portexpander etc.)

Ach und nur so nebenbei.  Ein Relais ist ein Schalter. !!! Dessen 
Zustand muss man nicht einlesen, den weiß man. !!! IMMER !!! Oder man 
resetet ihn in den man ihn auf LOW setzt.

Gruß

  Pucki

von spess53 (Gast)


Lesenswert?

Hi

>Ach und nur so nebenbei.  Ein Relais ist ein Schalter. !!! Dessen
>Zustand muss man nicht einlesen, den weiß man. !!! IMMER !!! Oder man
>resetet ihn in den man ihn auf LOW setzt.

Du hast noch nie ein Relais mit verschweissten Kontakten gehabt?

MfG Spess

von Alexander K. (Gast)


Lesenswert?

spess53 schrieb:
> Du hast noch nie ein Relais mit verschweissten Kontakten gehabt?

Ich arbeite i.d.R. nicht mit Relais da hast du recht. Aber wenn ich 
damit arbeite, dann setzte ich beim Starten der Steuerung alle Relais 
auf ein Zustand und merke mir den. Für so was hat man Variablen erfunden 
;)

Da schalte ich je nach Einstellung (wenn es den welche gibt) das 
richtig.

So bin ich mir auch gleich zu 90% Sicher das das Relais nicht klemmt. 
Und glaub mir, die Teile klemmen gerne.

Gruß

   Pucki

von Karl B. (gustav)


Lesenswert?

Alexander K. schrieb:
> Und glaub mir, die Teile klemmen gerne.
Hi,
zwangsgeführte Kontakte heißt das Zauberwort.
Z.B. bei Aufzugssteuerungen vorgeschrieben.

ciao
gustav

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

spess53 schrieb:
> Du hast noch nie ein Relais mit verschweissten Kontakten gehabt?
Falls wer sowas nicht kennt, der darf mal das dort anschauen:
Beitrag "Re: Relais hält sich fest"

Karl B. schrieb:
> zwangsgeführte Kontakte
Die sind aber sicher nicht auf den billigen 8-fach Relaiskarten drauf...

von Jens M. (schuchkleisser)


Lesenswert?

Wenn das eine Endlosschleife ohne Verlassen werden soll, hat Arduino 
dafür die loop() erfunden.
Alternativ macht man eine mit while(true)...

von Wolfgang (Gast)


Lesenswert?

Alexander K. schrieb:
> Ich frage mich gerade ob bei so kurzen Delay-Zeiten das Relais das auf
> Dauer mitmacht.

Warum sollte das Relais davon betroffen sein?
In der Schleife wird nur ein Analogwert eingelesen.

von Alexander K. (Gast)


Lesenswert?

Wolfgang schrieb:
> Warum sollte das Relais davon betroffen sein?
> In der Schleife wird nur ein Analogwert eingelesen.

Ja, die Schleife ist Mist, der Code auch. Aber falls er mal auf die Idee 
kommt "Read" gegen "Write" zu tauschen ....... bums

Gruß

   Pucki

von MaWin (Gast)


Lesenswert?

Stephan H. schrieb:
> Wobei ich den Pin 3 einfach offen lasse, somit kann der messen, solange
> er will, die 100 werden also nie erricht

Woher kommt die steile These ?
Dein erster Kontakt mit digitalen Elektronikschaltkreisen ?
Datenblatt lesen ist für dich unzumutbar ?

Beitrag #6312655 wurde vom Autor gelöscht.
von H.Joachim S. (crazyhorse)


Angehängte Dateien:

Lesenswert?

Gibts (oder gabs?) auch mit vernünftgen Relais (Finder), ich meine <20€ 
bei ebay.
War sehr gut geeignet um meinen Wintergarten (Markise, Verschattung, 
Abluftklappe, Abluftventilator) zu steuern.

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.