Der Kühlschrank des Tauens & mit Tuer monitoring

Die Kühlschranktür im HQ schließt nicht richtig. Daher hier ein Programm für den Arduino, das mit Hilfe eines Hall-Sensors die offene Tür erkennt, eine LED ansteuert und nach 40 Sekunden ein „open“ über den USB-Seriell-Port an die Dockstart sendet.

int counter = 0;
int tuer = 0; // -50 = auf // 50 = zu
int tuer2 = 0;
int ledPins[] = {3, 5, 6, 9, 10, 11};
unsigned char report = 0;
 
void setup() {
  int i;
  for (i = 0; i<6; i++) {
    pinMode(i, OUTPUT);
  }
  Serial.begin(9600);
  pinMode(13, OUTPUT);
  pinMode(12, INPUT);
  //A5 pullup off
  digitalWrite(A5, LOW);
}
 
void loop() {
  int i;
  int sensorValue = analogRead(A0);
  int tuerValue = analogRead(A5);
  //tuer
  if(tuerValue < 500 && tuer > -50){
    if(tuer == -49)
    {
      Serial.println("topen");
      //Serial.println(tuerValue, DEC);  // print as an ASCII-encoded decimal
    }
    tuer--;
  }
  if(tuerValue > 500 && tuer < 50){
    if(tuer == 49){
      Serial.println("tclose");
      //Serial.println(tuerValue, DEC);  // print as an ASCII-encoded decimal
    }
    tuer++;
  }
 
 
 
 
  //kuehlschrank
  if (sensorValue > 550) {
    counter = 0;
    digitalWrite(13, LOW);
    for (i = 0; i<6; i++) {
      analogWrite(ledPins[i], 0);
    }
    if (report) {
      Serial.println("closed");
      report = 0;
    }
  } else {
    counter += 1;
    digitalWrite(13, HIGH);
  }
 
  for (i=0;i<6;i++){
    if (counter - i * 85 > 0 && counter - i * 85 <= 255) {
      analogWrite(ledPins[i], counter - i * 85);
    }
  }
 
  if (counter > 5 * 85 + 255 && !report) {
    Serial.println("open");
    report = 1;
  }
 
  delay(58);
}