Go Down

Topic: SSR Relais Problem (Read 1 time) previous topic - next topic

Luppi

Hi

Hab einen sketch geschrieben der mir ein SSR Relais Steuert wo eine Förderpumpe dran hängt.
Per Menü auswahl klappt das einschalten auch Problemlos.

Jetzt hab ich mir nen Schwimmerschalter besorgt über den ich das Relais steuern wollte.
Nur beim abschalten fängt das Relais an zu flackern und schaltet immer an/aus/an/aus.

Relais Modul ist folgendes.
http://www.ebay.de/itm/161746248888?_trksid=p2060353.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT

Hier mal ein Teil des sketches wo es per Menü funktioniert.

Code: [Select]

//--------------------------------------------------------- Relais Ausgänge -----------------------------------------------
const int Relais0 = 29;
const int Relais2 = 28;

//++++++++++++++++++++++++++++++++++++++++++++++++++++++Variable Relais +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
boolean Relais_1;
boolean Relais_2;

void setup()
{
Serial.begin(9600)
  pinMode(Relais0, OUTPUT); // Setzt den Pin des Relais1 als Ausgang
  pinMode(Relais2, OUTPUT); // Setzt den Pin des Relais2 als Ausgang

void loop()
//Relais Pumpe   TEST
if (Relais_1 == true)
{
  digitalWrite(Relais0, 0);
  }
  else
  {
  digitalWrite(Relais0, 1);
  }
 //Relais Heizung
  if (Relais_2 == true)
{
  digitalWrite(Relais2, 0);
  }
  else
  {
  digitalWrite(Relais2, 1);
  }
 



Hier mal der Teil der nicht funktioniert und wo das Relais flackert.

Code: [Select]

//--------------------------------------------------------- Relais Ausgänge -----------------------------------------------
const int Relais0 = 29;
const int Relais2 = 28;

//-------------------------------- Füllstand Ableger Aquarium Überwachung - P O R T  ---------------------------
const int S_Sensor2 = 53;         
int liquidSensorValue2 = 0;
//-------------------------------------------------------------------------------------------------------

//++++++++++++++++++++++++++++++++++++++++++++++++++++++Variable Relais +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
boolean Relais_1;
boolean Relais_2;

void setup()
{
Serial.begin(9600)
  pinMode(Relais0, OUTPUT); // Setzt den Pin des Relais1 als Ausgang
  pinMode(Relais2, OUTPUT); // Setzt den Pin des Relais2 als Ausgang
  pinMode(S_Sensor2, INPUT); // set a pin for liquidsensor output

void loop()

    if ( liquidSensorValue2 == 1)
    {
      digitalWrite(Relais0, 1);
    }

   else
    {
      digitalWrite(Relais0, 0);
    }



Ist nur der Teil des sketch der mir sorgen macht. Der ganze sketch ist zu lang.

HotSystems

#1
Jun 25, 2016, 10:46 pm Last Edit: Jun 25, 2016, 10:54 pm by HotSystems
Und wie immer, das Problem liegt im nicht gezeigten Teil des Sketches.

Sieh dir doch im SerialMonitor an, was dein "LiquidSensorValue2" macht.

Nur Teile des Sketch helfen nicht.


Nachtrag.
Wie hast du den Sensor (Schwimmer) angeschlossen?
Ich vermute da ist das Problem.

Ist der Eingang richtig definiert als INPUT?

Hast du Pullup oder Pulldown Widerstände eingesetzt.
Wie lang sind die Kabel zum Schwimmer. Ich vermute die arbeiten als Antenne und nehmen Störungen auf.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

skorpi080

An dem gepostetem Sketch ist nichts auszusetzen, wie HotSys es schon schrieb.

Wenn der Schwimmer falsch angeschlossen ist, warum dann der Effekt wenns ausgeschaltet wird?
Warum nicht vorher schon, bzw permanent?
playground.arduino.cc/PmWiki/433Mhz-Funkmodule
[Arduino IDE] Feinheiten und Tricks  forum.arduino.cc/index.php?topic=632403.0

HotSystems

#3
Jun 25, 2016, 11:15 pm Last Edit: Jun 25, 2016, 11:17 pm by HotSystems
Nicht falsch angeschlossen, nur ungenügend "entstört".

Da wir nicht wissen, was er mit dem Relais schaltet, vermute ich eine Störspitze beim Ausschalten.

Die fängt er evtl. durch den Eingangspin auf.

Edit:
Ist ne Pumpe, die auch Störungen erzeugt.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

uwefed

Welche Pumpe verwendest Du? Spannng, Strom, Leistung?
Grüße Uwe

ardubu

#5
Jun 26, 2016, 01:06 am Last Edit: Jun 26, 2016, 09:59 am by ardubu
ich vermute mal, du hast den Schwimmerschalter zwischen Vcc und Pin 53 angeschlossen.
Schalte ihn lieber zwischen GND und Pin 53 an und verwende pinMode(S_Sensor2, INPUT_PULLUP); und negiere deine Logik.
Code: [Select]
if (! liquidSensorValue2 )
    {
      digitalWrite(Relais0, 1);
    }

Quote
Wenn der Schwimmer falsch angeschlossen ist, warum dann der Effekt wenns ausgeschaltet wird?
Warum nicht vorher schon, bzw permanent?
wenn der Schalter geschlossen ist hat Pin 53 Vcc, wenn nicht, hat der Pin 53 einen nicht definierten Zustand.

Luppi

Hi

Den schwimmer habe ich als input gesetzt.
pinMode(S_Sensor2, INPUT); // set a pin for liquidsensor output

Geschaltet wird eine förderpumpe mit 230v und 15 watt.

Der schwimmer ist gegen gnd und Pin 53 geschaltet.

Pullup Widerstände hatte ich jetzt nicht verwendet. Werde dies aber mal versuchen sowie den internen pullup.

Das mit der Antennen Wirkung habe ich ganz außer acht gelassen. Klingt auch am besten da es ja per Software funktioniert mit dem an aus schalten.
Werde mal ne andere Leitung testen.

Danke für die Lösungsansätze.
Mfg

HotSystems

#7
Jun 26, 2016, 10:00 am Last Edit: Jun 26, 2016, 10:04 am by HotSystems
Hi

Den schwimmer habe ich als input gesetzt.
pinMode(S_Sensor2, INPUT); // set a pin for liquidsensor output

Geschaltet wird eine förderpumpe mit 230v und 15 watt.

Der schwimmer ist gegen gnd und Pin 53 geschaltet.

Pullup Widerstände hatte ich jetzt nicht verwendet. Werde dies aber mal versuchen sowie den internen pullup.

Das mit der Antennen Wirkung habe ich ganz außer acht gelassen. Klingt auch am besten da es ja per Software funktioniert mit dem an aus schalten.
Werde mal ne andere Leitung testen.

Danke für die Lösungsansätze.
Mfg
Pullup ist da absolute Notwendigkeit.
Nimm einen externen mit 4,7 k oder kleiner.
Du kannst auch mit einem internen anfangen und den externen hinzufügen.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

Luppi

Hi
Mit dem internen Pullup funktioniert es jetzt.
Danke für die Hilfe.
Worin liegt der vorteil wenn ich den Pullup Hardware seitig mache?
Dann würde ich diesen noch einbauen.

HotSystems

Wenn es mit dem internen funktioniert, ist es erstmal ok. Der hat ca. 22 k Ohm.
Mit einem externen kannst du den Wert selbst bestimmen, dadurch wird der Eingang unempfindlicher gegenüber Störungen.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

Luppi

Supi.
Danke für deine Hilfe

HotSystems

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

uwefed

Die internen Pullup-Widerstände haben werte zwichen 20k und 50kOhm (ist ohne kömpliziertes Lasereichen als Silizumwiderstände nicht genauer hinzukriegen). Der Wert ist aber nicht so wichtig.

De Vorteil eines externen Pullupwiderstandes ist, daß er kleiner sein kann und darum der Eingng stöhrungsunempfindlicher wird. Je mehr Strom es für das "auf Masse ziehen" braucht desto stärker muß die Störung sein um das zu bewirken.
Ein Nachteil kann sein, daß ein höherer Strom fließt, wenn der Taster gedrückt ist. Bei Stromversorgung über ein Netzteil fällt das nicht ins Gewicht. Bei Bateriebetrieb und bei dauernd gedrückten Taster oder Schaltkontakt kann das aber zu einem höheren Verbrauch und darum kürzeren Bateriefunktionsdauer führen.

Viele Grüße Uwe

Go Up