Der Kühlschrank des Tauens & mit Tuer monitoringDie 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); } |