Hallo ich möchte mir eine Schaltbox Bauen, welche mir eine Relaiskarte Schaltet beim Empfangen der Tastenbetätigung einer Samsung-Led Tv Fernbedienung. Grundlagen der Arduino Programmierung beherrsche ich sowohl über basecom und arduini. Welchen IR-Empfänger benötigt man bei Samsung? 38 MHz? und wie kann ich die einzelnen Codes der PWM auslesen und einem Schaltbefehl zuordnen? Gruß Ralle
Max Schmidt schrieb: > Welchen IR-Empfänger benötigt man bei Samsung? 38 MHz? MHz? eine elektromagnetische Welle im MHz Bereich ist aber schon Funk und kein Licht. Du meinst eher kHz. > und wie kann ich > die einzelnen Codes der PWM auslesen und einem Schaltbefehl zuordnen? PWM? Da ist keine PWM im Spiel. IRMP
ok dann bin ich schonmal ein wenig schlauer,was die grundlage des sendens und empfangen betrifft. welchen IR-Empfänger benötige ich für herrkömliche samsung fernbedienungen? es werden 2 varianten (38 und 36khz) aufgeführt samsung32 und samsung. und wieder zu meiner oben genannten fragestellung. ie bekomme ich das signal bzw die unterschiedlichen schaltbefehle mit meinem arduinoboard übersetzt, so dass ich diese verwenden kann?
Gast
#3548854
Für die verschiedenen Sender/Empfänger gibt es fertige Lösungen, zu den verschiedenen Frequenzen (KHz). Wie schon gesagt, das ganze hat nichts mit PWM zutun. Die Fernsteuerung folgt einem relativ gut dokumentierten Protokoll. Findest Du bestimmt in der Wikipedia oder auch sonst im Internet. Darüber hinaus gibt es auch fertige Bibliotheken für die Zappelei.
Ok wir drehen uns auf der stelle =) punkt 1 ist die Hardware. Auswahl des TSOP zum Beispiel. Unterschied zwischen Samsung 32 und Samsung. Bei der besagten Fernbedienung handelt es sich um eine zu einem Ue32C6700 gehörigen Fernbedienung. Codes findet man viele aber wie werden diese angewendet? wird in Arduino einfach auf diese verwiesen und sie werden dann im Hintergrund ausgeführt? Meine Fähigkeiten begrenzen sich momentan darauf,dass ich ein und Ausgange zuweisen und beschalten kann. Wie ich eine Sendebefehl als schaltbefehl umgesetzt bekomme ist mir aktuell völlig unklar.
Gast
#3551094
Hallo Max Schmidt, ich probier dir das mal genau zu erklären. Senden: >>> Eine Infrarot LED hat eine bestimmte Lichtfarbe (Wellenlänge die sie aussendet), sagen wir einfach mal 850 Nanometer. Diese LED lasse ich nun ständig aus-, und angehen. Das kann der Atmel relativ gut. Macht man eigentlich mit PWM, kann man aber auch einfach mit Arduino "digitalWrite(PIN, HIGH)" und "digitalWrite(PIN, LOW)" machen. Damit zappelt die IR-LED im (sagen wir mal) hunderstel Sekundentakt. <<< Empfangen: >>> Ein (fertig zu kaufender) Empfänger hat erstmal eine Schicht die nur Licht einer bestimmen Wellenlänge durchlässt. Wir kaufen uns also einen der nur 850 Nanometer sieht. Somit ist dem schonmal egal wenn du ihn mit der Taschenlampe anleuchtest. Das nächste was der Empfänger macht ist dass er mittels eines Filter dafür sorgt dass er nur IRLEDs sieht, die in einem bestimmten Muster an, und ausgehen. Unser Empfänger also ist so gebaut dass er nur eine IRLED sieht die im hunderstel Sekundentakt blinkt. Wenn er diese sieht, purzelt hinten ein HIGH raus. Sieht er keine IRLED die genau in diesem Muster zappelt so purzelt ein LOW raus. <<< Soweit alles verstanden ? Aktuell zappelt also unsere IRLED und der Empfänger gibt immer HIGH, denn er sieht sie ja. Zuletzt fehlt also noch die Frage: Wie übertrage ich nun Daten über diese Strecke ? Stell dir einfach vor wir übertragen unsere Daten im Sekundentakt. Ist also in Sekunde 0 die IRLED gerade zu sehen, so hat der Empfänger ein HIGH, also eine 1. In Sekunde 1 schaltet der Arduino die LED ganz aus, deshalb gibt der Empfänger LOW (0) In Sekunde 2 schaltet der Arduino die LED (wieder genau im richtigen Takt) wieder an, deshalb nochmal ein HIGH (1). In Sekunde 3 schaltet unser Arduino die IRLED wieder ab. Der Empfänger sieht sie nicht mehr, geht also auf LOW (0). Was fällt auf? Wir haben gerade den Wert 1-0-1-0 übertragen. Und genauso geht der Datenaustausch über Infrarot. Natürlich ist unser ausgedachtes Protokoll (jede Sekunde schauen wir ob die Led an oder aus ist, und haben entsprechend eine 1 oder 0) ziemlich nutzlos weil elend langsam. Aber es würde funktionieren. Bessere Protokolle haben sich kluge Menschen schon ausgedacht: http://de.wikipedia.org/wiki/Manchester-Code http://de.wikipedia.org/wiki/Non_Return_to_Zero Und dann gibts da noch exakt die Protokolle die tatsächlich gerne bei Fernbedienungen verwendet werden: http://www.mikrocontroller.net/articles/IRMP Und jetzt bin ich sogar noch so frei und zeige dir einen Arduino Code den ich mal für eine Lichtschranke geschrieben habe. Da gibts eine IRLED, und einen dazu passenden (Wellenlänge + Frequenz) IR-Empfänger. Da die Wellenlänge der LED (ich glaube 850nm) zu der spezifiezierten Wellenlänge des Empfänger passte, brauchte ich mich nur noch drum zu kümmern die IRLED mit dem Arduino immer im richtigen Takt (38 kiloHertz) an-, und auszuschalten. Sobald ich diese Frequenz richtig habe kann der Empfänger meine LED sehen. Erschreck übrigens nicht, denn um diesen Takt richtig hinzubekommen muss man aus der Arduinowelt ausbrechen und direkt dem Timer des Atmel verwenden. Dieser ist quasi automatisch mit dem PIN der IRLED verbunden. Der Code ist für Sender und Empfänger gleich.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
Was soll man sagen... viel lernen du musst junger Padawan! Thomas
Ui... das bringt doch schonmal ein wenig Infrarotlicht ins Dunkle =) Ich habe mich mittlerweile durch zahlreiche Foreneinträge und Homepages durchgelesen. Zunächst werde ich ein paar Bauteile bestellen und einen IR-Testaufbau aufbauen, bevor ich mich an die kleinen Gemeinheiten, wie zum Beispiel die Samsung Codierung ranmache. Dein Beitrag hat mich schonmal bereichert =) Gruß
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.