[[uc-welt:gscheiduino:11-hysterese|← Kapitel 11: Hysterese]] | [[uc-welt:gscheiduino:00-uebersicht|↑ Übersicht]] | [[uc-welt:gscheiduino:13-einstellbarer-daemmerungsschalter|Kapitel 13: Übungsaufgabe einstellbarer Dämmerungsschalter →]] ====== Kapitel 12: Dämmerungsschalter ====== ===== Grundlagen ===== Früher waren Dämmerungsschalter sehr beliebt. Sei es für die Straßenbeleuchtung oder für die weihnachtlichen Lichterketten auf dem Balkon. So ein Dämmerungsschalter kann sehr einfach selber realisiert werden. Wir brauchen dazu lediglich zwei Widerstände, einer davon muss lichtabhängig sein. Wer dazu mehr wissen will kann alles über lichtabhängige Widerstände [[bauteile:ldr|in diesem Wikieintrag]] nachlesen. Nun wird auch klar, warum wir im vorigen Kapitel gelernt haben, was eine Hysterese ist. Angenommen, wir verwenden diesen Dämmerungsschalter, um abends das Licht einzuschalten: * Es wird langsam dunkler * Es ist so dunkel, dass unser Dämmerungsschalter das Licht einschaltet * Nun sieht der Fotowiderstand das gerade eingeschaltete Licht und schaltet es wieder aus * Es ist wieder dunkel und das Licht wird wieder eingeschaltet Dies würde sich beliebig oft und sehr schnell wiederholen und somit zu einem ungewollten Blitzlicht führen. Durch eine ausreichende Hysterese zwischen den Umschaltpunkten kann das vermieden werden. ===== Aufbau ===== Der Aufbau für unseren Dämmerungsschalter sieht so aus: {{:uc-welt:gscheiduino:gscheiduino_breadboard_kap12-daemmerung.png?direct&300|Aufbau Dämmerungsschalter}} * 10kOhm zwischen D28 und G28 * LDR zwischen J28 und J30 * rotes Kabel von der linken Spannungsschiene nach A28 * blaues Kabel von der rechten Masseschiene nach H30 * graues Kabel von A0 nach H28 Das Licht, das wir bei Dunkelheit einschalten wollen, ist die grüne LED. ===== Berechnung ===== Wir wollen, dass das Licht irgendwann zwischen den Helligkeitsstufen "Wohnzimmer" und "Straßenbeleuchtung" einschaltet. Die Spannungen sind ([[bauteile:ldr#ergebnisse|wie hier zu sehen]]) zwischen 2,5 und 4,16V. Wir nehmen jetzt einfach mal den Wert 3,5V. Die Hysterese soll nun ±0,3V betragen. Wie wir [[uc-welt:gscheiduino:08-analoginputs#theorie|hier]] gelernt haben sind die Analogwandlerwerte also: ^Spannung^Wandlerwert^ | 3,5V | 715 | | 0,3V | 60 | ===== Code ===== Wir können den Code vom letzten Beispiel fast 1:1 verwenden: #define LED_GRUEN 11 #define ANALOGPIN A0 #define HYSTERESE 60 #define SCHWELLWERT 715 int hell = 1; int messwert = 0; void setup() { pinMode(LED_GRUEN, OUTPUT); // Pin auf Ausgang pinMode(ANALOGPIN, INPUT); // Pin auf Eingang if(analogRead(ANALOGPIN) (SCHWELLWERT + HYSTERESE))) { // Es wird dunkel: digitalWrite(LED_GRUEN, HIGH); // gruene LED an hell = 0; } else if((hell == 0) && (messwert < (SCHWELLWERT - HYSTERESE))) { // Es wird wieder hell: digitalWrite(LED_GRUEN, LOW); // gruene LED aus hell = 1; } else { // nichts tun } } Die Werte SCHWELLWERT und HYSTERESE können natürlich noch angepasst werden um ein gutes Ergebnis zu erzielen. Hier im Büro von eHaJo funktionieren folgende Werte am Besten: * SCHWELLWERT 500 * HYSTERESE 200 Nun bietet sich eine Übungsaufgabe an: Da der Schwellwert abhängig vom Widerstand und von der gewünschten Helligkeit ist, wäre es sehr sinnvoll, wenn man den nachträglich, ohne Programmierung, ändern könnte. Besteht eine Möglichkeit, dies zu tun? Ja. Wir können einen weiteren Analogeingang verwenden um mit Hilfe eines Potis den Schwellwert einzustellen. Wir kommen also zu [[uc-welt:gscheiduino:13-einstellbarer-daemmerungsschalter|Kapitel 13: Übungsaufgabe einstellbarer Dämmerungsschalter]]