Zeitschaltende Beleuchtung mit ein-, ausfaden und Bewegungsmelder

Hallo,

als total Anfänger hätte ich jede Menge Fragen an die Profil :blush: .
Geplant ist, im Bad eine LED Stripe so anzusteuern, dass, wenn man ab ca. 23Uhr ins Bad muss, dass die LEDs in Warmweiss einfaden, bei ca. 30% verbleiben (dass es nicht blendet) und wenn man wieder raus geht auch wieder ausfaden. Um ca. 5Uhr soll sich dann der Bewegungsmelder, bzw. die LED Stripe ausschalten.
Das mit dem ein- und ausfaden bekomm ich wahrscheinlich noch hin und auch der PIR würde funktionieren. Nur hab ich noch keine Erfahrung, diese beiden sketche zusammen zufassen.
Auch mit dem DS3231 hab ich noch 0 Erfahrung.
Kann mir hier einer Unterstützung geben?

Basics durcharbeiten, dann sollte das kein Problem mehr sein! https://www.arduino.cc/en/Tutorial/HomePage

Du wirst hier jede Menge Unterstützung bekommen!

Allerdings musst du schon etwas konkreter werden.
Am besten, du fängst langsam an:

Erst mal die Beispiele mit dem DS3231 zum laufen bringen.
Dann mal das faden programmieren. (Achtung - kein delay() verwenden!)
Und dann die Sketche zusammenführen.

du wirst zu jeder deiner Fragen Anworten bekommen!
aber fange erst mal an, damit deine Fragen konkreter werden.

Und zeig uns doch mal, was du bisher an funktionierenden Sketch fertig hast.
Das Zusammenfassen der Sketche werden wir dann schon erklären können.

Und wie du sicher schon gelesen hast, die Basics lernen.

also das mit dem PIR ist:

int pirPin = 3; // PIR pin
int ledPin = 4;   // LED pin
int deger = 0;             

void setup() {
 pinMode(pirPin, INPUT);     // PIR Pin'i giriş yapılıyor
 pinMode(ledPin, OUTPUT);      // LED Pin'i çıkış yapılıyor
 Serial.begin(9600);           //Serial Porttan veri göndermek için baundrate ayarlanıyor.
}

void loop(){
 deger = digitalRead(pirPin);  // Dijital pin okunuyor
 Serial.println(deger);          // Okunan değer seri porttan okunuyor.
 if (deger == HIGH) {            
   digitalWrite(ledPin, HIGH); // Eğer okunan değer 1 ise LED yakılıyor.
 }
 else{
   digitalWrite(ledPin,LOW);   // Eğer okunan değer 0 ise LED söndürülüyor.
 }
}

hab ich von http://images.google.de/imgres?imgurl=http://www.mcu-turkey.com/wp-content/uploads/2013/01/ArduinoPIR.jpg&imgrefurl=http://www.mcu-turkey.com/arduino-pir-sensor-kullanimi/&h=526&w=904&tbnid=UAjNqswHd7AnFM:&docid=TkSkKe2BGskcJM&ei=G2NCVpS9EOnmyQOXnr0o&tbm=isch&iact=rc&uact=3&page=1&start=0&ved=0CEsQrQMwD2oVChMI1Lb75eeGyQIVaXNyCh0XTw8F

und das mit dem fading ist:

/*
Fading

This example shows how to fade an LED using the analogWrite() function.

The circuit:
* LED attached from digital pin 9 to ground.

Created 1 Nov 2008
By David A. Mellis
modified 30 Aug 2011
By Tom Igoe

http://www.arduino.cc/en/Tutorial/Fading

This example code is in the public domain.

*/


int ledPin = 9;    // LED connected to digital pin 9

void setup() {
 // nothing happens in setup
}

void loop() {
 // fade in from min to max in increments of 5 points:
 for (int fadeValue = 0 ; fadeValue <= 255; fadeValue += 5) {
   // sets the value (range from 0 to 255):
   analogWrite(ledPin, fadeValue);
   // wait for 30 milliseconds to see the dimming effect
   delay(30);
 }

 // fade out from max to min in increments of 5 points:
 for (int fadeValue = 255 ; fadeValue >= 0; fadeValue -= 5) {
   // sets the value (range from 0 to 255):
   analogWrite(ledPin, fadeValue);
   // wait for 30 milliseconds to see the dimming effect
   delay(30);
 }
}

ich hab das arduino starter kit hier und mehrere Schaltungen getestet. Wenn ich den Code lese, versteh ich relativ viel, nur bin ich noch nicht so weit, dass ich so einen Code selber erstelle.

Ich glaube, du hast uns nicht verstanden.

Bitte zeige uns den Code, den du schon selbst geschrieben hast.

Da die von dir geposteten Sketche nur kopiert wurden, wirst du unsere Tipps nicht verstehen und diese funktionsfähig umsetzen können. Ich befürchte, wir verbringen viel Zeit damit, um dir erst mal die Grundlagen beizubringen.

Da wir aber hier unsere Freizeit einsetzen, kannst du das nicht erwarten.

Also lerne bitte erst mal die Basics und stelle eigene Sketche rein.

Der Fading Code ist Mist. Hat delay in einer for-Schleife. Blockiert den Programmablauf.

was soll passieren, wenn jemand vor 23:00 oder nach 5:00 das Bad betritt?

Hallo,

naja, wer für einen Pin abfragen Code kopieren muß, der bekommt sicherlich auf die schnelle kein Fading hin. Das sind wirklich Grundlagen. Die mußte bitte selbst lernen. Für das Fading, was wirklich nicht ganz so einfach ist, wenn es ordentlich sein soll, gebe ich dir meinen Democode.

Für die RTC gibts eine Lib. Da sind Bsp. vorhanden. Mit der RTC haste sicherlich erstmal genug zu tun um die Schaltzeiten abzufragen.

Alternativ kannste hier reinschauen, was jurs zur Verfügung gestellt hat.
http://forum.arduino.cc/index.php?topic=313047.0

Vielleicht ist das auch noch alles etwas zu viel für dich. Weis ich nicht. Aber genau deshalb sollten ein paar Grundlagen erlernt sein. Wirklich. Das ist nicht böse gemeint. Ich hatte mit einem Buch für die Grundlagen angefangen.

Bei allen anderen Probleme wirst du bei uns Hilfe bekommen. Die beste Hilfe ist die Hilfe zur Selbsthilfe. Dauert zwar länger, der Lernerfolg dafür auf Dauer.

LED_Fading_Timer1.zip (1.59 KB)

ardubu:
was soll passieren, wenn jemand vor 23:00 oder nach 5:00 das Bad betritt?

Er/Sie/Es muß den Lichtschalter betätigen ;D Mir reichen die LEDs vom USB-Hub als Nachtlicht. Auch die von mir wegen ihrer Einschaltverzögerung nicht eingesetzten "Energiesparlampen" haben eine eingebaute "Dimmung". Oder eben so 8)

Es geht aber auch mit Arduino und LEDs. Die linearisiert Helligkeitwahrnehmung fürs menschliche Auge mußt Du aber selbst einbauen. :fearful:

Test_Forum.ino (2.2 KB)

Hallo Zusammen,

versteht mich nicht falsch, natürlich will ich das lernen, deshalb habe ich mir ja so ein Kit gekauft! Aber ich denke, man muss Ziele haben und ich hab bestimmt nicht eins der schwersten Projekte rausgesucht.
Natürlich suche ich halbwegs fertige Sketche raus, weil man muss ja das Rad nicht neu erfinden.

Ich bin einfach für jede Hilfe dankbar.

Jeder lernt anders und ich bin halt so einer, der das auch ausprobieren möchte, wenn er diverse Parameter verändert. So kleine Sketche, wie die oben, kann ich absolut nachvollziehen. Aber es gibt halt mehrere Wege dorthin!

@ardubu: mein Plan ist, dass die LED stripe in diesem Zeitrahmen Spannung bekommt, falls jemand ins Bad geht, damit der PIR reagieren kann.

Das mit dem RTC wird glaube ich nicht so einfach, weil der Sketch doch sehr lang wird und ich da schnell den Überblick verliere :slightly_frowning_face:

OK, wenn es so ist, wie du schreibst, dann verstehst du die Funktionen in den von dir geposteten Sketche und kannst sicher die delays in dem Fadingcode durch millis ersetzen. Diese delays müssen unbedingt raus, da diese den normalen Lauf des Controllers bremsen. Dies wurde ja auch schon von EIEspanol angemerkt. Dazu solltest du dir den Beitrag "BlinkWithoutDelay" durchlesen.

Und ein Sketch mit einer RTC wird nicht zwangsläufig unübersichtlich, wenn der Code sauber programmiert wird. Das heißt, du setzt Funktionen ein, die den Code übersichtlich gestaltet.

Mit diesen Funktionen arbeitest du auch, um die Sketche zusammen zu fügen.

Hallo,

ich will ja nicht dazwischen funken, aber meine Fadingdemo ist einfach anpassbar, quasi fix und fertig. Nur mehr mache ich diesmal wirklich nicht. Sonst machen wir wieder die komplette fremde Arbeit. Ohne Grundlagenbereitschaft geht diesmal nix weiter los.

Chriss, du gehst wie viele leider falsch ran. Erst Grundlagen erlernen, dann ein kleines Projekt starten. Nicht anders herum.

Viel Erfolg.

@Chris: Glaub dem Doc, der hat 100% recht.

ElEspanol:
@Chris: Glaub dem Doc, der hat 100% recht.

Und das ist auch kein zwischenfunken, sondern nur eine Bestätigung, was ich auch schon versucht habe, zu erklären.