Programmiren

Hallo zusammen

Ich bin Neuling beim Arduino und bräuchte da mal eure Hilfe von den erfahren Füchsen.

Ich möchte eine Led über ein Fotowiederstand ansteuern, das die Led bei Licht leuchte und bei Dunkelheit ablöscht. Soweit habe ich es auch schon hingebracht.
Nun das Problem sie sollte nicht Leuchten wen es Tag ist sondern nur wen z.B. eine Lampe den Fotowiederstand an leuchtet.

Das heisst das Programm sollte den Befehl auf HIGH bei Licht und nach 2minuten LOW ist aber immer Licht vorhanden auf LOW bleiben und das alle 5minuten wieder holen bis das Licht weg ist. Dann alles wieder von vorne.

Ich hoffe das man versteht was ich gerne machen möchte.

Danke für die Hilfe

Gruss Peter

Hallo Peter,

es gibt schon viele Beispiele für so etwas im Internet.

Schau mal hier, alles wird perfekt gezeigt und erklärt

Viel Spaß!
Thomas

twyly:
Hallo Peter,

es gibt schon viele Beispiele für so etwas im Internet.

Schau mal hier, alles wird perfekt gezeigt und erklärt
Arduino Tutorial - LED mit Lichtsensor / Fotowiderstand steuern - YouTube

Viel Spaß!
Thomas

Danke für deine Info das Video habe ich auch nach gebaut.
Aber da ist nur ein HIGH LOW.

Dann schau Dir diese anderen Arduino-Beispiel dazu an. Mit Hilfe eines Potentiometers wird es flexibel.

und

Arduino Tutorial: Kapitel 3.1.2 - Dimmen, bitte!

In Youtube und im Arduino Starterkit gibt es diverse Beispiel aus denen Du Dir das passende entnehmen kannst.

Viel Erfolg!
Thomas

twyly:
Dann schau Dir diese anderen Arduino-Beispiel dazu an. Mit Hilfe eines Potentiometers wird es flexibel.
http://arduino.cc/en/Tutorial/AnalogInput

und

Arduino Tutorial: Kapitel 3.1.2 - Dimmen, bitte!
Arduino Tutorial: Kapitel 3.1.2 - Dimmen, bitte! - YouTube

In Youtube und im Arduino Starterkit gibt es diverse Beispiel aus denen Du Dir das passende entnehmen kannst.

Viel Erfolg!
Thomas

Danke für die Infos

Nur habe ich da nirgends was gefunden wie ich mein Programmier-Problem Lösen kann.
Ich vermute dem Fall das ich mein Problem nicht deutlich erklärt habe. Ich versuche es nochmal zu erklären.

Ich möchte das ich eine Led mit einem Fotowiederstand einschaltet wen eine Lampe drauf leuchtet, also lese ich die werte aus und lege ein if wert fest damit Led auf HIGH geht mit einem delay von 2minuten danach geht sie auf LOW.
Wen es Tag ist bekommt der Fotowiederstand ja permanent licht und somit würde die Led die ganze zeit auf HIGH sein und leuchten das soll sie aber nicht. Sie soll am Tag auf Standby gehen und erst wieder reagieren wen es Dunkel ist.

Danke für die Hilfe

Gruss Peter

Und wo ist nun das Programmier Problem? Ist eher ein Verständnis Problem.

So hast du es nun:

if der Fotowiederstand 100%
{
LED, HIGH
}

So willst du es haben:

if der Fotowiederstand 100%
{
LED, LOW
}

skorpi08:
Und wo ist nun das Programmier Problem? Ist eher ein Verständnis Problem.

So hast du es nun:

if der Fotowiederstand 100%
{
LED, HIGH
}

So willst du es haben:

if der Fotowiederstand 100%
{
LED, LOW
}

Richtig wenn der Auslöser eine Lampe ist.

Und wenn es Tag ist und die Sonne Drauf scheint geht auch auf HIGH nur das will ich nicht dann soll auf LOW gehen und Warten bis es wieder Dunkel ist.

Hallo,

das ist dann ein Problem deines Aufbaus. Die LDR kann nicht sehen, dass es die Lampe oder das Tageslicht ist. Da musst du dir schon mal einfallen lassen, damit du die Streuung des Tageslichts nicht erfasst. Aber woher weiß er dann, wann dunkel ist??

So was möchte ich machen

http://reaktivlicht.de/Programm_Grundversion.pdf

Aber ich bin noch nicht soweit das ich die Programmierung für Arduino umschreiben kann.

Danke für die Hilfe

Gruss Peter

Hast doch da schon ein Code, einfach kopieren und freuen.

skorpi08:
Hast doch da schon ein Code, einfach kopieren und freuen.

nichts umschreiben....ist doch toll

Lies doch die ganze Seite und mach dir gedanken wie was wozu weshalb
Teachmodus willst du jetzt Programmieren, richtig?

hallo Peter,

Wenn ich dich richtig verstanden habe aus dem ersten Post hast du einen Raum in dem Fenster Sind (Tageslicht kommt rein) und in dem Befinden Sich auch Denken Lampen (oder andere Lampen) mit einem Schalter.

jetzt möchtest du wissen wann die Lampe im Raum an ist, aber nur dann wenn es DRAUßEN Dunkel ist.
tagsüber ist dir das egal?

Wie du deine LED anmachst wenn es Hell ist hast du ja schon gelernt :slight_smile: (Video von dir)

jetzt ist dein Problem das du die Referenz nicht hast ob es draußen Dunkel ist oder nicht?
ich würde sagen mache noch einen Fotowiederstand Draußen hin den du abfragst :wink:

jetzt hast du in deinem Code

Wenn Fotowiederstand-Draußen nicht gleich "Hell"

Dausen Dunkel
Wenn Fotowiederstand-Drinnen nicht gleich "Hell"

Lampe ist aus, nichts machen
Wenn Fotowiederstand-Drinnen gleich "Hell"
Lampe drinnen an, LED AN.

Warte 5 min

das ganze in einem Loop und fertig :wink:

Es kann natürlich sein das ich nicht verstanden habe was du haben möchtest, doch das wäre eine Möglichkeit die schnell und einfach gehen würde.

und das Kannst du alles mit dem Code aus dem Video schon machen.

die 5min warten kannst du mit dem Befehl Delay machen :wink:

ich hoffe das ich nicht daneben liege, mit dem was ich hier gesagt habe.

Viel Spaß, guten Rutsch.

Muecke:
die 5min warten kannst du mit dem Befehl Delay machen :wink:

ich hoffe das ich nicht daneben liege, mit dem was ich hier gesagt habe.

Viel Spaß, guten Rutsch.

Damit schon :wink: Nicht delays über einen so großen Zeitraum :sunglasses:

Wie man das genau Programmieren hängt auch davon ab wie herum man den Spannungsteiler mit dem LDR aufbaut.

sschultewolter:
Damit schon :wink: Nicht delays über einen so großen Zeitraum :sunglasses:

solange ich nur mit dem "delays" daneben liege beruhigt mich das :wink:

Wie macht man das dann wenn ich so eine lange zeit habe?

unsigned long Time_Start;
unsigned long Time_Ende;
unsigned long Time_Aktuell;

Time_Start = millis();                          // Aktuelle zeit Nehmen 
Time_Ende = Time_Start + 300000;     // Verhältnis : 1 min. = 60.000 ms

   while(Time_Ende == Time_Aktuell)    // Abfrage ob Time_Ende mit Time_Aktuell gleich sind oder nicht
      {
         Time_Aktuell = millis();               // Aktuelle zeit Merken 
      }

So biste nichts besser als mit delay :wink:

Der Trick ist doch einfach, in der Zwischenzeit etwas anderes zu machen.

Ah, jetzt wies ich was du meinst.

OK, dann neue Ansatz.

zeit_TMP = Aktuelle zeit + 5 min  

Loop 
 { 
     Time_Aktuell = Aktuelle zeit

     if (zeit_TMP == Time_Aktuell)   // prüfen ob die zeit gekommen ist nach dem Licht zu Prüfen 
      { 
        // Hier kommt dann der teil Heiligkeit Draußen und Drinnen Prüfen und entscheiden was getan wird. 
        // zeit_TMP = Aktuelle zeit + 5 min  
      }
// Hier kommt der teil hin der gemacht werden kann solange nicht geprüft wird ob es Drusen hel oder Dunkel ist, bzw. im Zimmer :-) 
 }

jetzt bin ich auf dem Themen Ersteller aber gespannt was er denn macht und wie.

Muecke:
jetzt bin ich auf dem Themen Ersteller aber gespannt was er denn macht und wie.

Nix macht der. Wartet immer noch bis ihm jemand den fertigen Code liefert den er kritisieren kann.

skorpi08:
Nix macht der. Wartet immer noch bis ihm jemand den fertigen Code liefert den er kritisieren kann.

Du must aber auch zugeben, das er sich als Anfänger eine recht schwierige Aufgabe gestellt hat.

Das Prüfen ob es dunkel oder hell ist geht IHMO so, das man z.b alle sekunde den Helligkeitswert aufaddiert und z.b nach einer Minute den Durchschnitt ausrechnet. (quasi integriert)

Und dieser Wert verglichen mit einer Schwelle entscheidet dann ist ob er im "Hellmode" oder im "Dunkelmode" ist.

Der "Hellmode" ist dann der Sleepmodus der nicht auf Lichtblitze reagiert.