- Labornetzteil AliExpress         
Ergebnis 1 bis 7 von 7

Thema: Arduino mit Infrarot-Receiver: Auswertung?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.08.2010
    Alter
    26
    Beiträge
    114
    Bei meiner SONY-Fernbedienung lautet der Code, den mir Arduino aus dem Skript im Serial Monitor wiedergibt, so:
    Code:
    0    0
    2480    0
    2480    1
    3028    1
    3028    0
    4284    0
    4284    1
    4828    1
    4828    0
    5488    0
    5488    1
    6032    1
    6032    0
    7288    0
    7288    1
    7836    1
    7836    0
    8488    0
    8488    1
    9036    1
    9036    0
    10292    0
    10292    1
    10844    1
    10844    0
    11496    0
    11496    1
    12044    1
    12044    0
    12696    0
    12696    1
    13244    1
    13244    0
    13896    0
    13896    1
    14448    1
    14448    0
    15100    0
    15100    1
    15648    1
    15648    0
    16300    0
    16300    1
    16848    1
    16848    0
    17504    0
    17504    1
    18052    1
    18052    0
    19308    0
    19308    1
    45272    1
    45272    0
    47748    0
    47748    1
    48300    1
    48300    0
    49552    0
    49552    1
    50100    1
    50100    0
    50756    0
    50756    1
    51300    1
    51300    0
    52556    0
    52556    1
    53104    1
    53104    0
    53760    0
    53760    1
    54308    1
    54308    0
    55560    0
    55560    1
    56108    1
    56108    0
    56764    0
    56764    1
    57308    1
    57308    0
    57964    0
    57964    1
    58512    1
    58512    0
    59168    0
    59168    1
    59712    1
    59712    0
    60368    0
    60368    1
    60916    1
    60916    0
    61572    0
    61572    1
    62120    1
    62120    0
    62772    0
    62772    1
    63320    1
    63320    0
    64572    0
    64572    1
    90536    1
    90536    0
    93020    0
    93020    1
    93564    1
    93564    0
    94824    0
    94824    1
    95368    1
    95368    0
    96024    0
    96024    1
    96572    1
    96572    0
    97828    0
    97828    1
    98372    1
    98372    0
    99028    0
    99028    1
    99572    1
    99572    0
    100828    0
    100828    1
    Sind die 1 und 0 die Zahlen, die auf der Internetseite die radbruch mir genannt hat, stehen?
    Verpackung eines PC´s:

    Bei Risiken und Funktionsproblemen Netzstecker durchbeißen und aus den PC aus dem Fenster werfen!

  2. #2
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Oje, mit Sony-Code kenne ich mich überhaupt nicht aus. Ich mag mich auch grad nicht einlesen. Wenn du eine Fernbedienung mit RC5 verwenden würdest, könnte eine Funktion etwas so aussehen:
    Code:
    // RC5 dekodieren mit invertierendem 36kHz-TSOP und Zaehlschleifen (ungetestet!) 14.05.2011 mic
    
    // https://www.roboternetz.de/community/showthread.php?53211-Arduino-mit-Infrarot-Receiver-Auswertung
    
    #include <avr/io.h>
    
    #define digitalRead(IRpin) !(PINA && (1<<0)) // Dummydefine für einen invertierenden TSOP-Eingang an PA0
    #define LOW (0==1) // LOW ist false und...
    #define HIGH !LOW  // HIGH ist true ;)
    
    int get_rc5_bitmuster(void) // RC5-Bitmuster einlesen mit Zaehlschleife
    {
    	char bit=12; // 14Datenbits-12Startbits einlesen
    	int bitmuster=0; // Speicher für 14 RC5-Datenbits
    	int bitlaenge=0, count=0, dummy=0; // Bitlaenge, Zaehler für die Bitlaengen, Dummy
    
    	while(digitalRead(IRpin)==LOW)  {} // warten auf Startbits
    	while(digitalRead(IRpin)==HIGH) {bitlaenge++;} // Dauer von zwei Startbits messen
    	bitlaenge/=2; // Bitlaenge berechnen
    	bitmuster=(1<<13)|(1<<12); // die Bits 13 und 12 im Bitmuster speichern (Startbits)
    	count=bitlaenge/4*3; // erster Lesezeitpunktdatenbits nach 3/4 der Bitlaenge
    	while(bit--) // weitere 12 Datenbits einlesen
    	{
    		while(count){count--; dummy++;}; // stimmt das Timeing???
    		if(digitalRead(IRpin)) // IR-Pegel einlesen...
    			bitmuster|=(1<<bit); // ...und abspeichern
    		count=bitlaenge; // naechster Lesezeitpunkt: 1/4+3/4 Bitlaenge oder eine Bitlaenge
    	}
    	while(count){count--; dummy++;} // eine Bitlaenge warten
    	return(bitmuster);
    }
    
    //
    
    int main(void)
    {
    	int RC5_Kommando;
    	while(1) RC5_Kommando=get_rc5_bitmuster();
    	return(0);
    }
    Ungetestet, aber das könnte mit einem invertierenden 36kHz-Tsop funktionieren, wenn diese beiden Schleifen ähnliche Ausführungszeiten besitzen würden:

    while(digitalRead(IRpin)==HIGH) {bitlaenge++;}
    while(count){count--; dummy++;}

    Ohne Timer und Interrupts scheint mir das eine sehr einfache RC5-Funktion zu sein. Das muss ich bei Gelegenheit mal selbst testen ;)
    Geändert von radbruch (15.05.2011 um 15:38 Uhr) Grund: Code optimiert
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.08.2010
    Alter
    26
    Beiträge
    114
    Wie finde ich denn raus, ob meine Fernbedienung RC-5 ist?
    Verpackung eines PC´s:

    Bei Risiken und Funktionsproblemen Netzstecker durchbeißen und aus den PC aus dem Fenster werfen!

  4. #4
    Unregistriert
    Gast

    Infrarot Fernbedienung mit einem Arduino

    Hi,

    die Einträge hier sind zwar älter, aber vielleicht sucht ja doch der ein oder andere eine Anleitung. Ich habe lange gesucht und am Ende hat mir dieser Beitrag auf der Deskfactory.de geholfen:

    http://deskfactory.de/arduino-infrarot-fernbedienung

    viele Grüße,

    Max

Ähnliche Themen

  1. ARDUINO ARDUINO l293D + MegaservoLib
    Von m1ch15inner im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 2
    Letzter Beitrag: 11.07.2011, 12:50
  2. Keine IR Verbindung mit USB-Receiver
    Von asuruuser im Forum Asuro
    Antworten: 12
    Letzter Beitrag: 05.12.2006, 16:04
  3. 4 Channel Receiver
    Von inschenjoer im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 18.11.2006, 16:29
  4. dtmf-receiver
    Von stanislaf im Forum Elektronik
    Antworten: 12
    Letzter Beitrag: 03.02.2006, 12:17
  5. USART Receiver
    Von B.Rust im Forum C - Programmierung (GCC u.a.)
    Antworten: 4
    Letzter Beitrag: 01.12.2004, 22:17

Berechtigungen

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

Solar Speicher und Akkus Tests