-         
Ergebnis 1 bis 9 von 9

Thema: 2 ATmega über IR verbinden

  1. #1
    Benutzer Stammmitglied Avatar von Jackeder
    Registriert seit
    08.02.2015
    Ort
    Chemnitz, Germany
    Beiträge
    52

    2 ATmega über IR verbinden

    Anzeige

    Hallo ich hoffe ich bin hier im richtig gelandet. Wie schon oben genannt möchte ich mit einem Atmega einen anderen Befehle geben, bzw Funktionen ein/aus schalten ...
    Da ich noch wenig erfahrung in der µc-Programierung habe will ich es so einfach wie möglich versuchen, sprich ohne Timer

    Aufbau ist wie folgt...

    ATmega8 (PinXY) ==> IR-LED ==> IR-Transistor(SMD) ==> ATmega8( INT0 )

    das Signal was ich senden möchte ist:
    IR-LED ...ein...aus...ein...aus...ein...aus.............e in...aus...ein...aus...ein...aus.....usw. ähnlich wie Morsezeichen, 3mal ein, Pause, 3mal ein...
    (Signalkette 3) (Pause) (Signalkette 3)


    Der 2.atmega würde über INT0 die highpegel zählen und so seiner Funktion zuordnen, in dem Fall i=3 ==> Funktion 3: rote LED an z.B.

    Soweit würde ich das selber programmieren können.
    Meine Frage lautet hierzu, ob es möglich ist dem Controler zu sagen, wenn am INT0-Eingang ein LOW-Pegel für eine bestimmte Zeit besteht, sprich die Pause zwischen zwei Signalketten, dann i wieder auf 0 gesetzt wird ?
    normal schreibt man ja if (i=3) {I=0};

    Ich würde mich freuen wenn jemand ne Idee hat

    Hendrik

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.08.2006
    Ort
    Würzburg, Germany
    Beiträge
    681
    Hallo Hendrik,

    über welche Entfernung sollen deine "Daten" übertragen werden?

    Ich glaube mit deiner einfachen Methode wird das nichts werden. Bei Fernbedienungen wird das Signal mit einer festen Frequenz gesendet, z.B. 38 kHz. Es gibt dann spezielle Empfänger, die auf diese Frequenz getrimmt sind und Signale mit anderer Frequenz (z.B. Sonnenlicht mit IR-Anteil) filtern. Dein Datenstrom muss dann mit einer deutlich langsameren Frequenz auf die Sende-Frequenz aufmoduliert werden. Bit = 1 heißt dann z.B. Signal mit 38 kHz ein, Bit = 0 Signal aus. Als Protokoll verwendest du am besten etwas abgeleitetes von der seriellen Schnittstelle.

    Eine sehr gute Lektüre um alles zu verstehen ist sich das RC-5 Protokoll anzusehen. Dafür gibt es auch fertigen Code für Senden und Empfang.

    Zu deiner letzten Frage: Zeiten misst man im ATmega mit einem Timer. Du konfigurierst einen und setzt diesen bei deinem Signal (INT0) auf den Wert 0. Wenn dann dein zweites Signal kommt, kannst du den Wert des Timer auslesen und damit die verstrichene Zeit berechnen. Dafür empfehle ich als Lektüre das Datenblatt des ATmegas zum Thema Timer.

    Viele Grüße
    Andreas

  3. #3
    Benutzer Stammmitglied Avatar von Jackeder
    Registriert seit
    08.02.2015
    Ort
    Chemnitz, Germany
    Beiträge
    52
    Hi Andreas

    Entfernung ist max 5 - 10 cm.
    Einsatz soll das ganze auf der Modelleisenbahn finden, daher auch der SMD-IR-Transistor.
    Mein gedanke war halt das wenn ich eine Frequenz von 38 khz erzeugen will kann ich doch nur dei 3 PWM ausgänge nutzen am ATmega8 oder geht das auch auf einen beliebigen Pin ?

    Viele Grüße Hendrik

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.08.2006
    Ort
    Würzburg, Germany
    Beiträge
    681
    Hallo Hendrik,

    das 38kHz Signal kannst du mit dem AVR problemos auf jedem beliebiegen Pin erzeugen. Dafür verwendest du auch einen Timer in Compare A oder Compare B-Modus und kannst dann im entsprechenden Interrupt den Pin bei entsprechenden Quarz sogar in MHz-Geschwindigkeit ansteuern. Soweit ich mich erinnern kann gibt es aber auch sender, die bereits in der passenden Frequenz senden.

    Du musst auch einen entsprechenden Empfänger mit passenden Frequenz-Filter nutzen Ansonsten wirst du bei sich ändernden Lichtverhältnissen Probleme mot dem Empfang bekommen. Solange das also nicht in einem Raum ohne Fenster und mit stabilen künstlichen Licht statt finden soll wird der Abgleich ohne Filter sehr sehr schwer.

    Viele Grüße
    Andreas

  5. #5
    Benutzer Stammmitglied Avatar von Jackeder
    Registriert seit
    08.02.2015
    Ort
    Chemnitz, Germany
    Beiträge
    52
    oki danke für die Tips, da werd ich mal in diese richtung schauen und mich schlau machen

  6. #6
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.684
    Zitat Zitat von Jackeder Beitrag anzeigen
    oki danke für die Tips, da werd ich mal in diese richtung schauen und mich schlau machen
    Vielleicht hier ?? Ich nutze den RC5-Code von einer "normalen", alten Fernseher-Fernsteuerung, aber man kann natürlich auch die 38 kHz (oder 36 - was man eben will) so pulsen, dass man den gewünschten Code erhält. Für mehr Gehirnfutter such mal nach RC5, RC-5 oder lies einfach alles am genannten Link durch *ggg*
    Ciao sagt der JoeamBerg

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    1.938
    Eventuell wäre ja auch ein IRDA Transceiver das Richtige. Guck mal nach dem TFDU4101.
    Hab aber selber damit noch nicht gebastelt.
    Geändert von wkrug (08.04.2015 um 19:08 Uhr)

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    21.06.2011
    Ort
    Dresden
    Beiträge
    177
    Hi,
    warum nimmst Du zur Kommunikation nicht einfach die UARTs (IR-LED an TXD, IR-Transistor an RXD), dann brauchst Du kein
    neues Protokoll "erfinden".
    Ansonsten wirst Du wohl um den Timer nicht herumkommen, also HL Timer Start, LH Timer Stopp, Timer auslesen ...
    mfg
    Achim

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.08.2006
    Ort
    Würzburg, Germany
    Beiträge
    681
    Hallo Achim,

    ich denke nicht, dass es so ohne die Modulation einer Trägerfrequenz funktionieren wird. Der Grund ist, dass die Sonne und das künstliche Licht im Raum auch IR-Signale produziert und somit nur ein gefiltertes Signal auf der passenden Trägerfrequenz überhaupt zu einem einigermassen Störungsfreien Empfang führt.

    Man könnte natürlich bei einer entsprechend langsamen Baudrate versuchen das Ganze mit Trägerfrequenz zu übertragen. Es gibt bestimmt fertige Sender und Empfänger dafür.

    Viele Grüße
    Andreas

Ähnliche Themen

  1. [ERLEDIGT] Atmega über ISP mit PC Verbinden
    Von xrzr im Forum C - Programmierung (GCC u.a.)
    Antworten: 16
    Letzter Beitrag: 22.02.2015, 10:49
  2. 2 pins von 2 atmega direkt verbinden
    Von PREDATOR32 im Forum AVR Hardwarethemen
    Antworten: 1
    Letzter Beitrag: 09.04.2011, 18:26
  3. Atmega TQFP, alle VCC/GND-Pins verbinden?
    Von pyr0skull im Forum AVR Hardwarethemen
    Antworten: 8
    Letzter Beitrag: 05.11.2009, 17:51
  4. Handy mit Atmega 8 verbinden ?
    Von nase im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 5
    Letzter Beitrag: 23.06.2009, 20:47
  5. Zwei PIC über CAN verbinden
    Von Tonelli im Forum PIC Controller
    Antworten: 6
    Letzter Beitrag: 17.11.2007, 15:10

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •