Forum: Mikrocontroller und Digitale Elektronik LED 3 Minuten leuchten lassen


von Flying-LED (Gast)


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

von Timer (Gast)


Lesenswert?

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

Ja, sowohl als auch.

von chris (Gast)


Lesenswert?

ja kann man machen wenn er nur dies machne soll.

Sinnvoller es über einen Timer zu realisieren...... aber gehe davon aus 
das du nicht groß Erfahrung µC hast?

von Flying-LED (Gast)


Lesenswert?

Hast du ein Beispielprogramm ?? Wo die LED ein paar Minuten leuchtet?

von Flying-LED (Gast)


Lesenswert?

chris schrieb:
> Sinnvoller es über einen Timer zu realisieren...... aber gehe davon aus
> das du nicht groß Erfahrung µC hast?

Oh ja :O

von Praktiker (Gast)


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.

von Flying-LED (Gast)


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! ... <.<

von Marc V. (Firma: Vescomp) (logarithmus)


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.

von Simon S. (-schumi-)


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)

: Bearbeitet durch User
von michael_ (Gast)


Lesenswert?

Mit einem 555 geht das einfacher.

von Marcus W. (marcusaw)


Lesenswert?

michael_ schrieb:
> Mit einem 555 geht das einfacher.

Richtig - und mit ner Zeitschaltuhr kann man das auch lösen - ist aber 
nicht gefragt.

: Bearbeitet durch User
von michael_ (Gast)


Lesenswert?

Doch, Frage war "LED 3-Minuten leuchten lassen".

von Nop (Gast)


Lesenswert?

Wenn du einen Timer nimmst, kannst du den uC evtl in den Sleepmode legen 
und etwas Energie sparen.

von Nop (Gast)


Lesenswert?

Achso und 4MHz ist da vllt sich je nach dem etwas Oversized! ?

von Der Rächer der Transistormorde (Gast)


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.

von Schiedsrichter (Gast)


Lesenswert?

michael_ schrieb:
> Doch, Frage war "LED 3-Minuten leuchten lassen".

Falsch, die Frage war:

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

von 0815 (Gast)


Lesenswert?

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

Und die kann man nur mit "ja" beantworten. Es geht mit Delay und auch 
anders. Und funktionieren tut es sowieso, wenn man es richtig macht.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.