Nach einiger Zeit "herumgegoogle" hätte ich eine Frage an Euch. Wo kann ich eine günstige kleine RC5 Fernbedienung finden. Ich stelle mir eine vor mit 10 Zahlentasten, Taste + und - ganz simple soll es sein. Möchte meine RGB Schaltung "nachrüsten" Welchen Empfänger nimmt man am besten ( Bascom Auswertung )
Als Empfänger kannst du einen TSOP 1736, TSOP 1836 oder einen der Vergleichstypen nehmen. Einfach mal bei Google oder hier in der Artikelsammlung scheuen, da gibt es diverse. Als Fernbedienung am besten eine einfache Universalfenbedienung, da kannst du mit großer Sicherheit ein Gerät mit RC5 Kodierung einstellen.
Danke erst mal, beim Reichelt habe ich sowas entdeckt. Aus dem Datenblatt geht nicht vor ob das Gerät auf RC5 Codierung einstellbar ist http://www.reichelt.de/Fernbedienungen/URC-ZAPPER-3-SI/index.html?;ACTION=3;LA=2;ARTICLE=77491;GROUPID=4971;SID=12TeX9rn8AAAIAAHrYQ8Qd6460f9c91fef2b88fc57eefca92080b
tt4u schrieb: > http://www.mikrocontroller.net/articles/IRMP Muss mal schauen ob ich unter Bascom was finde..Bestimmt..
RC5 Findet man eigentlich in jedem älteren Phillips Gerät, so lange man die Fernbedienung auf irgend ein älteres Phillips Gerät einstellen kann sollte man auch RC5 haben.
Moep schrieb: > Als Empfänger kannst du einen TSOP 1736, TSOP 1836 oder einen der > Vergleichstypen nehmen. Einfach mal bei Google oder hier in der > Artikelsammlung scheuen, da gibt es diverse. Leider hat man dann das ganze noch nicht dekodiert. Es gibt zwar IRMP, aber zur Dekodierung von RC5 ist das oversized. Es wäre schön, wenn man einen einfachen Empfänger nur für RC5 hätte. Einen Sender dafür findet man dagegen wesentlich leichter. Gruss Harald
Harald Wilhelms schrieb: > Es gibt zwar IRMP, aber zur Dekodierung von RC5 ist das oversized. Darüber lässt sich trefflich streiten, schließlich kann man im IRMP sämtliche anderen Protokolle deaktivieren, so dass sie nicht mitübersetzt werden. Das lässt das Compilat heftigst schrumpfen ;-) > Es wäre schön, wenn man einen einfachen Empfänger nur für RC5 hätte. Gibt es in der Codesammlung von Peter Dannegger: Beitrag "Fernbedien RC5 Empfänger" Gruß, Frank
> Leider hat man dann das ganze noch nicht dekodiert.
Das ist natürlich richtig.
Er hatte oben geschrieben, dass er Bascom benutzt - wenn mich nicht
alles täuscht ist dort schon eine RC5-Routine schon eingebaut, man muss
an sich nur noch den Empfänger anschließen.
Ansonsten gibt es für C ja wie gesagt auch noch die Routine von P.
Dannegger, die auch wunderbar funktioniert :)
Es gibt eine Technisat FB TS-35, die ist recht verbreitet (für TV-Tuner Karten für den PC) und als Ersatz bei eBay für knappe 10€ zu haben. Für RGB gibt es auch 'spezielle' FB, such mal ebenfalls bei eBay nach 'RGB Fernbedienung'. Da findest du Controller oder fertige RGB LED Strahler mit einer passendenden FB, die billigsten liegen auch unter 10€. Diese FB nutzt allerdings einen NEC Code. Der P. Dannegger RC-5 Code kann mit wenigen Anpassungen diese IR-FB auch lesen, ob Bascom die eingebaut hat weiss ich nicht. Diese FB gab es auch mal bei Reichelt für 4,95 einzeln, ist aber leider aus dem Angebot verschwunden.
Danke für die haufen Anregungen. Ich werde erst mal den Empfänger besorgen, habe noch einige FBs rumliegen, ein bisschen testen.
JojoS schrieb: > Da findest du Controller oder fertige RGB LED Strahler mit einer > passendenden FB, die billigsten liegen auch unter 10€. Ich hatte mir vor ein paar Wochen einige von denen http://www.dealextreme.com/p/24-key-wireless-infrared-ir-remote-controller-for-rgb-led-light-bulb-1-cr2025-47019 für 0,99 $ geschossen, mittlerweile kosten sie aber 2,80 $ - ohne Versandkosten. > Diese FB nutzt allerdings einen NEC Code. Korrekt. > Der P. Dannegger RC-5 Code kann mit wenigen Anpassungen diese IR-FB > auch lesen, [...] Der Dannegger-Code decodiert das Manchester-Protokoll RC5, Das NEC-Protokoll ist ein Pulse-Distance-Protokoll. Das will ich sehen, wie Du mit "wenigen Anpassungen" den Dani-Code auf NEC umschreiben willst. Da bleibt kein Stein mehr auf dem anderen. Hier eine Detail-Übersicht der von IRMP unterstützten Protokolle: http://www.mikrocontroller.net/articles/IRMP#Die_IR-Protokolle_im_Detail > [...] ob Bascom die eingebaut hat weiss ich nicht. Bascom kann nur die fast ausgestorbene Variante RC5.
Frank M. schrieb: > Der Dannegger-Code decodiert das Manchester-Protokoll RC5, Das > NEC-Protokoll ist ein Pulse-Distance-Protokoll. Das will ich sehen, wie > Du mit "wenigen Anpassungen" den Dani-Code auf NEC umschreiben willst. > Da bleibt kein Stein mehr auf dem anderen. Na, so schlimm ist das nicht, ich habe auch Peters code als Basis genommen:
1 | /*************************************************************************
|
2 | * (C) Bernhard Michler 2009
|
3 | * Based on ideas and code of Peter Danneggers rc5 decoder
|
4 | *
|
5 | * File : ir_nec.c
|
6 | * Created : August 2009
|
7 | * Author(s) : Bernhard Michler
|
8 | *
|
9 | *
|
10 | * DESCRIPTION:
|
11 | * Routines for IR receivers, decoding the ancient the widely spread
|
12 | * Japanese NEC code.
|
13 | *
|
14 | ************************************************************************/
|
15 | #include <avr/io.h> |
16 | #include <avr/interrupt.h> |
17 | #include "config.h" |
18 | #include "ir-nec.h" |
19 | |
20 | volatile uint32_t nec_data; // store result |
21 | volatile uint8_t repeat; |
22 | |
23 | void irnec_init (void) |
24 | {
|
25 | nec_data = IRNEC_NOREC; |
26 | repeat = 0; |
27 | }
|
28 | |
29 | |
30 | uint8_t is_nec_repeat (void) |
31 | {
|
32 | uint8_t tmp; |
33 | tmp = repeat; |
34 | repeat = 0; |
35 | return (tmp); |
36 | }
|
37 | |
38 | uint32_t get_nec_data (void) |
39 | {
|
40 | uint32_t tmp; |
41 | uint8_t intStat = SREG; |
42 | cli(); |
43 | tmp = nec_data; |
44 | nec_data = IRNEC_NOREC; |
45 | SREG = intStat; |
46 | return (tmp); |
47 | }
|
48 | |
49 | |
50 | /************************************************************************/
|
51 | /* */
|
52 | /* NEC Remote Receiver */
|
53 | /* */
|
54 | /* Author: Bernhard Michler */
|
55 | /* */
|
56 | /************************************************************************/
|
57 | // NEC / Japanese...
|
58 | // 13.500ms - start
|
59 | // 2.250ms - "1"
|
60 | // 1.125ms - "0"
|
61 | // 90.000ms - key repeat
|
62 | #define NECP_MIN (uint8_t)(IRQS_PER_SECOND * 0.875e-3)
|
63 | #define NECP_ZERO (uint8_t)(IRQS_PER_SECOND * 1.750e-3)
|
64 | #define NECP_ONE (uint8_t)(IRQS_PER_SECOND * 3.000e-3)
|
65 | #define NECP_REPEAT (uint8_t)(IRQS_PER_SECOND * 12.00e-3)
|
66 | #define NECP_MAX (uint8_t)(IRQS_PER_SECOND * 15.00e-3)
|
67 | |
68 | |
69 | void irnec_int (void) |
70 | {
|
71 | static uint8_t irrc_bit; // bit value |
72 | static uint8_t irrc_time; // count bit time |
73 | static uint32_t irrc_tmp; // shift bits in |
74 | static int8_t bit_cnt; // count bits |
75 | uint32_t tmp = irrc_tmp; // for faster access |
76 | int8_t tmp_cnt = bit_cnt; |
77 | |
78 | if (++irrc_time > NECP_MAX) |
79 | {
|
80 | irrc_time = 0; |
81 | tmp_cnt = 0; |
82 | repeat = 0; |
83 | }
|
84 | |
85 | // signal change ??
|
86 | if ((irrc_bit ^ xIRRC_IN) & 1<<xIRRC ) |
87 | {
|
88 | irrc_bit = ~irrc_bit; // 0x00 -> 0xFF -> 0x00 |
89 | |
90 | if ((irrc_bit & 1<<xIRRC) == 0) |
91 | {
|
92 | // it was a change 0 -> 1, so check
|
93 | // pulse length now:
|
94 | if ((irrc_time < NECP_MIN ) || // too short, error |
95 | (irrc_time > NECP_REPEAT)) // start pulse |
96 | {
|
97 | tmp_cnt = 0; |
98 | }
|
99 | else if (irrc_time > NECP_ONE) |
100 | {
|
101 | // repeat pulse
|
102 | nec_data = tmp; |
103 | repeat = 1; |
104 | }
|
105 | else
|
106 | {
|
107 | // bit received
|
108 | tmp_cnt++; |
109 | |
110 | tmp >>= 1; |
111 | |
112 | if (irrc_time > NECP_ZERO) |
113 | tmp |= 0x80000000; |
114 | |
115 | if (tmp_cnt == 32) |
116 | {
|
117 | nec_data = tmp; |
118 | tmp_cnt = 0; |
119 | }
|
120 | }
|
121 | irrc_time = 0; |
122 | }
|
123 | }
|
124 | bit_cnt = tmp_cnt; |
125 | irrc_tmp = tmp; |
126 | }
|
Bernhard M. schrieb: > Na, so schlimm ist das nicht, ich habe auch Peters code als Basis > genommen: Aber wenn man genau hinguckt, sind da höchstens noch 3-4 Zeilen aus Peters Code übriggeblieben. Und mit dem ursprünglichen RC5-Decoder von ihm hat das herzlich wenig zu tun ;-) Übrigens: Schöner Code, gefällt mir. Gruß, Frank
Gut, mit den 3-4 Zeilen magst Du recht haben...aber ich habe versucht, die Konzepte beizubehalten und den Code Kompakt zu halten...
Mein Dank geht natürlich auch an Bernhard M. Ich konnte mich halt noch an den Kommentar 'based on...' erinnern. Habe das auch ausprobiert und es hat gut funktioniert mit der hier genannten FB. Bei eBay sieht man auch noch eine 44-key Variante, die sieht noch besser aus (RGB up-down und so).
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.