mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik IR-LED und SFH 5110-36


Autor: a guest (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Servus!

Ich mache gerade meine ersten Versuche mit der IR zur Datenübertragung.
Zuerst einmal habe ich mir zwei kleine Module gebastelt:

1) Sender mit einer mir leider unbekannten IR-LED, da es ein restposten 
war.

Ich habe also mal diesen LED-Rechner genommen:
http://www.dieaerzte.de/vdb/
Und 20mA mit den vorgeschlagenen 1.5V benutzt -> 175 Ohm
Hab dann zwei widerstände kombiniert und kam so auf ~170 Ohm.

Die Sender schaltung ist also bloß zwei Stifte für VCC und Masse, zwei 
widerstände und die LED.

2) Empfänger mit einem SFH 5110-36.
Datenblatt:

Zur Spannungsglättung wird dort ein 47µF kondensator und ein 100 Ohm 
widerstand vorgeschlagen. Da ich gerade keinen 47µF zur hatte habe ich 
den weggelassen und mal nur den widerstand eingebaut. Der kondensator 
kommt morgen wenn die läden wieder offen haben dazu.

---

Nun habe ich das ganze an einen Atmega32 gekabelt und versuche nun bloß 
zu erreichen, dass der Empfänger das signal der LED erkennt. Noch keine 
besondere Kodierung.

Der µ-Controller ist mit internen 1 MHZ getaktet.
Also habe ich einen Vorteiler von 1024 genommen.
Und als OCR vergleich den wert 37 benutzt.
1000000 Herz / 1024 -> 976 Herz
976 Herz * 37 = 36112 Herz -> ~ 36 Kiloherz
TCCR0 = 0x00;
TCCR0 |= ( (1<<WGM01) | (1<<COM00) | (1<<CS02) | (1<<CS00) );
OCR0  = 37;

Was der emfänger bekommt habe ich auf eine eine LED an einem anderen 
port weitergeleitet. Steckt man das Stromkabel zum empfänger aus 
leuchtet die LED (0), steckt man es ein ist sie aus (1), da der 
datenausgang des SFH 5110-36 low aktiv ist.

Hält man nun die LED mit dem trägersignal vor den Emfänger passiert 
nichts.
Wenn ich das richtig verstanden habe sollte die LED am anderen port aber 
angehen, wenn der empfänger ein IR signal bekommt.

Wo ist der Fehler?
Wenn ich das Kabel zum Sender mehrmals ein und ausstecke flackert die 
empfänger led manchmal auf.
Kann man daraus schließen, dass die wellenlänge der IR-LED stimmen muss 
und der fehler im der frequenz des trägersignals liegt?

Ich hoffe ihr könnt mir helfen,
Ein Gast

Autor: a guest (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
entschuldigung, habe ausverstehen den link zum datenblatt vergessen 
reinzukopieren: http://neo.dmcs.p.lodz.pl/tm/pdf/sfh5110.pdf

Autor: a guest (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
noch ein paar infos:

Wenn der timer den vergleichswert 37 erreicht wird OC0 invertiert.
Nimmt man einen höheren vergleichswert als 37 kann man die IR-LED über 
eine Handy-Cam blinken sehen, sie funktioniert also.

Autor: a guest (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habe zufällig die LED bei reichelt wiedergefunden.
der maximale durchlass-strom beträgt 150mA.
habe also den widerstand auf 30 ohm verkleinert.
wenn ich jetzt die led direkt vor den empfänger halte flackert die 
empfänger led ab und an mal auf.
was ist nun noch das problem?
led zu schwach? aber so schwach?
wie genau muss das 36khz trägersignal sein?

Autor: a guest (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
warum hat eigentlich niemand lust mir mal zu helfen?
ich bemühe mich so viele infos wie möglich zu posten, vielleicht 
zuviele? :P
naja, obs wer liest oder nicht, aktueller stand:

die IR-LED scheint eine CQY-99 zu sein.
http://www.datasheet4u.com/html/C/Q/Y/CQY99_ETC.pdf.html
sie ist jetzt über ein mosfet mit gate an controller, source an VCC und 
drain über 30 ohm an IR-LED nach ground verbunden.

wegen den 36khz bin ich jetzt völlig verwirrt nachdem ich mal den code 
des asuro roboters angeschaut hab:
// timer 2 is set up to generate 36 KHz square wave, output compare mode.
TCCR2=0b00001010;
OCR2=139;
TIMSK|= (1<<(OCIE2)); // timer 2 output compare interrupt enable
sei(); // global interrupt enable

es handelt sich um einen atmega8 mit 8MHZ getaktet...
wenn ich mir die bits anschaue wie sie im TCCR2 gesetzt werden heißt das 
für mich:
- vorteiler von 8
- CTC

wie kommt man auf 36KHZ wenn in den interrups der ausgang getoggelt 
wird, der takt 8 MHZ / 8 ist und der vergleichswert 139?
irgendwas muss ich grundlegend falsch verstanden haben :(
würde mich freuen wenn mir jemand einen hinweis gibt was ;-)

bis auf eine antwort vielleicht?
ein gast

Autor: a guest (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://www.societyofrobots.com/member_tutorials/fi...
hier findet man den code des asuro roboters.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.