Forum: Mikrocontroller und Digitale Elektronik 20 µs Puls alle 2ms ?


von Martin S. (der_nachbauer)


Lesenswert?

Hallo Forum.

Ich habe da mal eine Frage - für die meisten erfahreneren Nutzer 
wahrscheinlich eine Trivialität: Ich möchte eine IR Diode, deren Anode 
gegen VCC und deren Kathode gegen einen Pin meines µC angeschlossen ist, 
gerne gepulst betreiben.

Die Diode soll alle 2ms für ca. 40µs geschaltet sein.

Nun die Gretchenfrage: Wie sollte ich diese Funktion realisieren ?

Als µC nutze ich derzeit einen ATmega8 @ 16MHz.



Lieben Dank für alle hilfreichen Antworten.
von Stefan (Gast)


Lesenswert?

Mit einem Timer des µC.
von Michael (Gast)


Lesenswert?

Hallo Martin,

Schleife 1
{
 Ausgang 1
 Warte XXX Takte (40us) (640 Takte)
 Ausgang 0

 Warte XXX Takte (1,96 ms)
}
Wenn das alles ist, würde ich Assembler empfehlen. Im Tutorial sind gute 
Hinweise dazu.

Grüße Michael
von Der S. (derschelm)


Lesenswert?

Kann der mega8 nicht auch PWM, das wäre dann noch einen Tick eleganter
von Werner (Gast)


Lesenswert?

Das spannende bei der Sache ist noch die "Helligkeit", wenn man bei 
einer IR LED davon reden kann:

Bei nur 40uS an und 2ms aus kann man die LED's natürlich höher pulsen. 
Bei LED's im sichtbaren Bereich noch interessanter (oder sogar 
notwendig, wenn man überhaupt was sehen will).
Das Problem dabei: Die LED wird vielleicht mit einem Vorwiderstand von 5 
oder 10 Ohm betrieben, was bei einem Programmierfehler zur Zerstörung 
der LEDs führt. Habe vor ein paar Wochen ein LED Stroboskop gebaut. 
LED's (weiß) werden an 12V mit 12 Ohm betrieben (30us Puls). 12 Ohm ist 
dabei noch zu viel. Habe zur Sicherheit hinter den uC einen 4538 gehängt 
(nicht retriggerbar), damit der Puls definitiv nicht zu lang wird.

Vielleicht hilfts.

Werner
von Martin S. (der_nachbauer)


Lesenswert?

Hey Leute.

Zunächst einmal ein Dankeschön für die Vorschläge.

@Michael:
Das habe ich leider vergessen zu erwähnen - der µC hat in der 
Zwischenzeit noch einiges Anderes zu tun, ein blosses Warten zwischen 
den Zyklen kommt also eher nicht infrage.

Richtung PWM, wie Der Schelm vorschlug, wäre da schon geeigneter.

@Werner:
Die IR LED ist bereits in einer Schaltung, in der sie einen 220 Ohm 
Widerstand an der +5V VCC vorgeschaltet hat, auch das hatte ich leider 
vergessen zu erwähnen.

---

Wie stelle ich denn konkret PWM oder Timer mit ISR so ein, dass ich die 
angegebenen Timings hinbekomme ?
von Sam .. (sam1994)


Lesenswert?

Einfach ausrechnen.

8bit Timer

Prescaler 256
-> Timertakt = 1/16MHz = 62500Hz -> 16µs
Obergrenze 125
-> PWM-Takt = 500Hz
PWM-Wert = 1 -> 32µs
PWM-Wert = 2 -> 48µs

16bit Timer

Prescaler 1
-> Timertakt = 16MHz -> 1/16µs
Obergrenze 32000
-> PWM-Takt = 500Hz
PWM-Wert = 16*40-1 = 639 -> 40µs
von Martin S. (der_nachbauer)


Lesenswert?

Danke, Sam.

Das probiere ich mal aus.
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.