[gelöst] Relais schaltet wiederholt beim einschalten des Arduinos

Hallo,

ich möchte anhand eines Lichtsensors ein Relais (dieses) ansteuern.

Das funktioniert soweit auch, allerdings schaltet das Relais beim einschalten der Stromversorgung des Arduinos/hochladen des Programms zunächst ein paar mal schnell hintereinander ein und aus. Das möchte ich nach Möglichkeit eigentlich vermeiden.

Gibt es da eine Lösung, entweder mit Code oder elektronisch?

const int Photometer = A0;
const int LED = 11;
const int Relais = 13;

void setup() {
  analogReference(EXTERNAL);
  Serial.begin(9600);

  pinMode(LED, OUTPUT);
    analogWrite(LED, 255);
  pinMode(Relais, OUTPUT);
}

void loop() {
  float average;
  
  average = AverageCalc(5);
  Serial.println(average);
  SteerRelais(average, 1000);
}

float GetLux() {
  float raw;
  float logLux;
  
  raw = analogRead(Photometer);
  logLux = raw * 5 / 1024;
  return pow(10, logLux);
}

float AverageCalc(int divisor) {
  int i;
  int average = 0;

  for (i = 0; i < divisor; i++){
    average = average + GetLux;
    delay (2); // wait for the analog-digital converter to stabilize
  }
  average = average / divisor;
  return average;
}

void SteerRelais(float average, float threshold) {
  if (average > threshold) {
    digitalWrite(Relais, HIGH);
  }
  else {
    digitalWrite(Relais, LOW);
  }
}

Danke schonmal

Du musst einen anderen Pin als den Pin D13 nehemen.

Da ist die Led drauf die immer mit blinkt.

Ah, verstehe. Dankeschön!

tobi-273:
Ah, verstehe. Dankeschön!

Gerne, dann hat es ja jetzt funktioniert.

Hi

Weiter sind die Pins (10) 11...13 später für SPI in Verwendung, wie die Pins A4/A5 für I²C.
(auf Nano/Uno, beim Mega sind's 50...53 und 20/21, bei den Anderen ... kA :wink: )
Wenn möglich, lasse ich diese Pins frei - man weiß nie, was der Sketch nachher noch Alles mit machen soll - da ist's nicht schlecht, wenn man ohne größeren Umbau erweitern kann.

MfG

Nicht zu vergessen Pin 0 und 1 die durch den USB/seriell Wandler belegt sind
und auch zum Hochladen des Sketches benötigt werden.

Gruß, Jürgen

Weiter sind
(auf Nano/Uno, beim Mega sind's 50...53 und 20/21, bei den Anderen ... kA :wink: )

Bißchen genauer:
Auf dem Arduino mit ATmega328 sind
die Pins (10) 11...13 später für SPI in Verwendung, wie die Pins A4/A5 für I²C und 0/1 für die serielle Schnittstelle.
Auf Arduino mit anderen Controllern sind die Schnittstellen an anderen Pins.
Denaueres findest Du auf der Beschreibung des jeweiligen Arduino-Modells.
Grüße Uwe