Servus! Hab schonma nen Thread gemacht, aber keine antwort bekommen. Also versuche ich es jetzt noch einmal in kurzform ;-) Ich hätte gerne ein 36khz trägersignal für einen SFH5110-36 IR Empfänger. Ich glaube die Formel heißt: Frequenz = µC-Clock/(Prescaler*OCR0) oder Frequenz = µC-Clock/(Prescaler*OCR0)/2 Welche muss es sein? Naja, ich habe es schon mit beiden und einigen anderen Versucht und nix geht nach meiner Rechnung. Das einzige was läuft ist µC-Clock = 2MHZ Prescaler = 8 OCR = 9 2000000/(8*9) = 27.7khz Wie kann das sein? Ich versteh das nicht? Bitte helft mir, ich bin am verzweifeln. Cu, Ein Gast
diese hir
>Frequenz = µC-Clock/(Prescaler*OCR0)/2
wenn Dein µC bei jedem Int. von L auf H (oder umgekehrt) umschaltet.
Erstmal danke, dass du mir antwortest! Freut mich, dass ich zumindest bei der formel nicht total auf dem schlauch stand. Dann verstehe ich aber nicht warum alles was ich nach der Formel rechne nicht funktioniert. Bei den werten die funktionieren käme man dann auf: 2000000/(8*9)/2 = 13.8khz Wie kann das sein? Welche faktoren könnten da noch rein spielen damit aus den werten keine 13.8khz sondern 36khz werden? o.O Also ein falscher SFH5110 kann es auch nicht sein, denn es gäbe auch keinen mit 13.8khz. Aktueller Code: TCCR0 = 0x00; TCCR0 |= ( (1<<WGM01) | (1<<COM00) | (1<<CS01) ); OCR0 = 9; Und an den OC0 pin ist über einen Mosfet eine IR-LED angeschlossen. Was mache ich dann falsch?
Genaugenommen lautet die Formel: F=clk/2/n/(OCR+1) Bei Prescaler n=8, OCR=9 und 2MHz Takt erhältst du 12,5kHz. Ein ungenauer RC-Oszillator könte die 13,8kHz erklären... Für 36kHz könntest du n auf 1 setzen und OCR auf 27. Das ergibt theoretisch 35714Hz, praktisch wohl etwas mehr. Um welchen Prozessor geht es eigentlich? Zum ATmega128 würde die Registerbeschreibung passen...
Für 36kHz braucht man mit CTC und Toggled Pin eine Frequenz von 72kHz. OCR = (µC/(Pres*F)) -1 bei 72kHz und 2 MHz mit Pres=1 OCR = (2000000/(1*72000)) -1 = 27 (Freq ist: 71,43kHz) OCR zählt von 0 ab daher die -1 ! gruß hans
Hi hans und Uwe, genauer gehts mit 2MHZ nicht! Ich schlage eine höhere Tacktfreq. vor die ein vielfaches von 36KHz sind.
@Klaus die 2MHz waren vorgegeben und nicht von mir. Die rechnerische Abweichung von unter 1% ist für IR-Fernbedienung mehr als ausreichend. Der interne Oszillator kann da mehr Ärger machen. (Aber nicht mir sondern a guest ;)) gruß hans
vielen dank für eure hilfe! mit der formel von hans funktioniert es! gerade getestet: OC0 = (8000000/(1*72000))-1 = 110 es handelt sich übrigens um einen atmega32. jetzt hab ich noch das problem, dass die reichweite zur zeit vll 20cm beträgt. ich benutze eine über einen mosfet angesteuerte CQY-99 IR-LED an 5V mit vorwiderstand 30ohm -> 120mA. http://www.datasheet4u.com/html/C/Q/Y/CQY99_ETC.pdf.html Brauch ich eine andere LED oder mit wieviel strom kann diese CQY-99 bei 36khz pulsen? muss es im schnitt unter den maximalen 150mA dauerstrom bleiben? oder was genau bedeutet durchlaßstrom, spitzendurchlaßstrom und stoßdurchlaßstrom?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.