- Labornetzteil AliExpress         
Seite 3 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 21 bis 30 von 35

Thema: Der universelle IR Fernbedienungs-Empfänger

  1. #21
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.113
    Anzeige

    Powerstation Test
    Im ersten Post ist das Programm für die dort angegebenen IR-Codes.
    Dort sind immer Blöcke enthalten, die jeweils einen bestimmten Code entschlüsseln. In deinem Programm waren nur die Blöcke für RC5 und SIRCS enthalten.
    Wenn es gar nicht funktioniert, kannst du mal testweise diese Zeilen
    Code:
       If Code_found = 1 And Flanken_anzahl > 0 Then
          Disable Int0
          Cls
          Lcd Flanken_anzahl ; ":"                              'Jetzt geht es an die Erkennung des Codes
          For I = 1 To Flanken_anzahl
             Lcd Imp_array(i) ; " "
          Next I
    anstelle der Zeile
    If Code_found = 1 Then 'Jetzt geht es an die Erkennung des Codes
    direkt hinter dem Do ein.
    Sollte dir auf dem LCD die Anzahl der Flanken und die Längen ausgeben.

    Gruß

    Rolf

  2. #22
    Neuer Benutzer Öfters hier
    Registriert seit
    16.05.2009
    Beiträge
    7
    Hallo Rolf...

    Für mich sind nur Unbekannt 1, unbekannt 2 und japan interessant....

    könntest du mir vielleicht helfen das ich das auf einem Mega8 mit 2*16 LCD bei 8 MHz zum laufen kriege??

    gruß Flo

  3. #23
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.113
    Zitat Zitat von LIGHT_MASTER
    Für mich sind nur Unbekannt 1, unbekannt 2 und japan interessant....
    Woher weißt du das?
    Hast du die Zeilen mal eingebaut und eine Ausgabe bekommen?

    Gruß

    Rolf

  4. #24
    Neuer Benutzer Öfters hier
    Registriert seit
    16.05.2009
    Beiträge
    7
    Hallo Rolf...

    Nun ja... wissen tu ich es nicht genau aber da die Fernbedieung aus einer LED steuerung stammt die zu 100% in fernost gerfertigt worden ist, kann man denke ich davon ausgehen das UNBEKANNT1, UNBEKANNT2 und JAPAN die wohl am naheliegendsten codes sind...


    Gruß Flo

  5. #25
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.113
    Bleibt noch die Antwort auf meine zweite Frage:
    Hast du die Zeilen mal eingebaut und bekommst du eine Ausgabe?
    Kannst du Ausgabe auch zum PC schicken oder nur auf dein kleines LCD ausgeben?

    Gruß

    Rolf

  6. #26
    Neuer Benutzer Öfters hier
    Registriert seit
    16.05.2009
    Beiträge
    7
    Ausgabe krieg ich gar keine.... weder auf dem PC noch auf dem LCD

    Gruß Flo

  7. #27
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.113
    dann probier mal diese vereinfachte Version:

    Code:
    '  '******************************************************************************
    '
    '                            AT Mega 8535 & LCD 16*2 Anschluß & TSOP 1736
    '
    '------ Standard-Init von Bascom ------------------------------
    
    $regfile = "m8535.dat"
    $crystal = 8000000
    $hwstack = 40                                               ' default use 32 for the hardware stack
    $swstack = 40                                               ' default use 32 for the SW stack
    $framesize = 100                                            ' default use 40 for the frame space
    
    Config Lcdpin = Pin , Db4 = Porta.2 , Db5 = Porta.3 , Db6 = Porta.4 , Db7 = Porta.5 , E = Porta.6 , Rs = Porta.7
    Config Lcd = 16 * 2
    
    Cls
    
    Dim Impuls_laenge As Word , Flanken_index As Byte , Flanken_anzahl As Byte , Bit_count As Byte
    Dim Befehl As Word , Geraet As Word , Neg_befehl As Word , Neg_geraet As Word , Nrc17_start As Byte
    Dim Daten_pruefung As Byte , Parity As Byte , Hersteller As Word , System As Byte , Produkt As Byte , Modus As Byte
    Dim Imp_array(200) As Byte , Daten As Long , Daten1 As Long , Temp_daten As Long , Code_found As Byte
    Dim Timer0_startwert As Word , I As Byte
    Dim Print_pc As Byte
    Dim Zeit As Byte
    
    Zeit = 3
    Const Std_pulse = 5
    Const Std_pulse_min = Std_pulse - 2
    Const Std_pulse_max = Std_pulse + 2
    
    Config Timer0 = Timer , Prescale = 8                        'hier den Timer eintragen (8-bit)
    On Ovf0 Tim0_isr
    Enable Timer0
    Timer0_startwert = 78                                       '161                                      'bei mir 16000000/8/(256-56) entspricht 10Khz
    Timer0 = Timer0_startwert                                   'Auflösung reicht und gefundene Werte entsprechen immer 100µs
    
    Config Int0 = Change                                        'externer interrupt, bei mir Int0 auf portd.2
    On Int0 Get_rc_isr
    Enable Int0
    Ddrd.2 = 0                                                  'ausgang des RC-empfängers
    Portd.2 = 1
    
    $baud = 19200                                               'Vorsicht: Wenn's langsam geht, kann dies die erkannten Flankenzeiten beeinflussen
    
    Print_pc = 0                                                'auf 1 setzen, um über Print auszugeben
    
    Enable Interrupts
    
    Do
       If Code_found = 1 Then                                   'Jetzt geht es an die Erkennung des Codes
          Flanken_index = Flanken_anzahl
          Daten = 0
          Daten1 = 0
          Bit_count = 0
          Code_found = 0
          Print Flanken_anzahl ; ":"                            'Jetzt geht es an die Erkennung des Codes
          For I = 1 To Flanken_anzahl
             Print Imp_array(i) ; " "
          Next I
       End If
    'RC5 hat immer gerade Anzahl Flanken, bei mir immer zwischen 16 und 26
    'Imp_array(1) enthält die Pause seit dem letzten Befehl, ist also uninteressant
    'Imp_array(2) ist das Ende der ersten Start-1
    'Imp_array(3) ist der Anfang der zweiten Start-1
    
    
    '-------------------------
    
    
    Loop
    
    End
    
    Tim0_isr:
       Timer0 = Timer0_startwert
       Incr Impuls_laenge                                       'bei jedem Überlauf um 1 erhöhen
       If Impuls_laenge = 200 Then                              'Kein Impuls für 20ms und in Get_rc_isr schon mindestens 14 Flanken gespeichert
             Code_found = 1                                     'Auswertung im Hauptprogramm starten
       End If
    Return
    
    Get_rc_isr:
       If Impuls_laenge > 0 Then
          Incr Flanken_anzahl
          If Flanken_anzahl > 200 Then Flanken_anzahl = 200
          If Impuls_laenge > 255 Then Impuls_laenge = 255
          Imp_array(flanken_anzahl) = Impuls_laenge
          Impuls_laenge = 0
       End If
    Return

  8. #28
    Neuer Benutzer Öfters hier
    Registriert seit
    16.05.2009
    Beiträge
    7
    Geht auch nicht

  9. #29
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.113
    Überprüf mal deine Hardware.

    Gruß

    Rolf

  10. #30
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.08.2006
    Ort
    Würzburg, Germany
    Beiträge
    716
    Hallo,

    welchen Empfänger würdet ihr denn empfehlen? Da gibt es ja (soweit ich weiß) verschiedene. Ich würde gerne eine Schaltung per Fernbedienung steuern. (Normale Universal-Fernbedienung für Hifi/TV). Welchen Empfänger kann ich nehmen?

    Ein Tipp bei Reichelt wäre gut, denn da kommt auch der ganze Rest her. Danke!

    Viele Grüße
    Andreas

Seite 3 von 4 ErsteErste 1234 LetzteLetzte

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress