Universal-RC5-Fernbedienung

Gast #2216735
Lesenswert?

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 )
Gast #2216788
Lesenswert?

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.
Gast #2216828
Lesenswert?

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
Moderator Persönliche Seite #2216847
Lesenswert?

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
Gast #2216899
Lesenswert?

> 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 :)
Gast #2216972
Lesenswert?

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.
Moderator Persönliche Seite #2217053
Lesenswert?

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.
#2217102
Lesenswert?

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
}
Gast #2217359
Lesenswert?

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).

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren