LED 3 Minuten leuchten lassen

Gast #3862013
Lesenswert?

Hallo !

Ich möchte eine LED 3 Minuten leuchten lassen. Danach soll sie wieder 
erlischen.

Ich benutze den PIC18F14k22 mit dem C18-Compiler. Der PIC wird mit 4 MHz 
betrieben "Internal Osc".

Kann man die 3 Minuten mit der "Delay-Funktion" realisieren oder 
funktioniert das anders?

Ich hoffe jemand kann mir helfen :)

Mfg Flying-LED
Gast #3862033
Lesenswert?

Die einfachste Lösung wird ein Taster sein, der den Strom der LED 
schaltet. Auf den Taster stellt man einen Becher, der mit Wasser gefüllt 
ist und läßt diesen über einen kleinen Schlauch leer laufen. Sobald der 
Becher leicht genug ist, öffnet der Taster. Alles ganz ohne Elektronik.
Gast #3862040
Lesenswert?

Praktiker schrieb:
> Die einfachste Lösung wird ein Taster sein, der den Strom der LED
> schaltet. Auf den Taster stellt man einen Becher, der mit Wasser gefüllt
> ist und läßt diesen über einen kleinen Schlauch leer laufen. Sobald der
> Becher leicht genug ist, öffnet der Taster. Alles ganz ohne Elektronik.

Danke für deinen "experimentellen" Beitrag! ... <.<
(Firma: Vescomp) #3862059
Lesenswert?

Praktiker schrieb:
> Die einfachste Lösung wird ein Taster sein, der den Strom der LED
> schaltet. Auf den Taster stellt man einen Becher, der mit Wasser gefüllt
> ist und läßt diesen über einen kleinen Schlauch leer laufen. Sobald der
> Becher leicht genug ist, öffnet der Taster. Alles ganz ohne Elektronik.

 Das wäre dann aber nur ein 8-bit Timer.
 Um 16-bit Timer zu realisieren, müßte man einen Eiswürfel nehmen.
#3862128
Lesenswert?

Flying-LED schrieb:
> Kann man die 3 Minuten mit der "Delay-Funktion" realisieren oder
> funktioniert das anders?

Wenns weder besonders genau noch elegant sein muss, kannst du auch sowas 
machen:
1
for(uint8_t i=0; i<60*3; i++)
2
   _delay_ms(1000);
Wie das delay bei deinem Compiler genau aussieht weis ich nicht, aber du 
siehst ja wie es gemeint ist.

(Der Grund warum etwas wie _delay_ms(1000*60*3) meist nicht geht ist, 
dass die Zeit, die die Delay-Funktion warten kann, oft begrenzt ist. 
Dann musst du eben x mal hintereinander warten)
Gast #3862340
Lesenswert?

Flying-LED schrieb:
> Ich möchte eine LED 3 Minuten leuchten lassen. Danach soll sie wieder
> erlischen.

Such dir eine Led Blink Schaltung und gehe nach dem ersten aus ein eine 
Endlosschleife

Oder schreib es komplett selbst,  Pseudocode sieht das dann so aus

1. richte erst einmal einen Sekundenzähler ein.

2. Schalte alle Funktionen die auf dem Pin liegen ab so das nur die 
Ein/Ausgangsfunktion übrig bleibt  (das ist Pic spezifisch und nur mit 
Datenblatt machbar)

3. Lege die Richtung des Pins als Ausgang fest

4. Setze den Ausgang so das die LED leuchtet

5. Setze den Sekundenzähler auf null

6. Hier ist nur ein Sprungziel:

7. Sekundenzähler + 1

8. Warte 1 Sekunde

9.  Wenn Sekundenzähler kleiner 180 gehe zum Sprungziel 6.

10. Schalte die Led aus

11. Halte den Pic an oder mach was anderes.


Die Kür ist dann die Zeilen 6-9 durch eine Schleife zu ersetzen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren