RC5IN

Rasprava o PIC mikrokontrolerima, PIC projekti i drugo vezano za PIC-eve...

Moderators: pedja089, stojke369, [eDo], trax

Post Reply
User avatar
grunf
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 286
Joined: 19-04-2008, 14:22
Location: Cvjećara

RC5IN

Post by grunf »

hello
evo malo sam se zainteresirao za ove IR projekte i onda slucajno naletim na RC5IN komandu u Proton IDE-u koji koristi PICBASIC compiler, cool, ali avaj prvi put se igram sa ovim 12F629 kojeg dobih od kolege s posla, a kako sam jucer citav dan pokusavo "nacherat" ovu komandu da radi sa INTOSC-om, onda sam odustao. Ali ne lezi vraze sa externim oscc-om na 8 MHz radi perfektno!!!sorry za neke nelogicnosti u programu ali, brzina je moja vrlina, spretnost osobina :D to bi rek'o jedan moj drug...


Tsop 1738

evo i codeta za 12F629 i 16F877A

pa ko ima volje neka se malo igra i nadam se iskoristi ovo

Code: Select all

'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2010 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                             *
'*  Date    : 23/06/2010                                     *
'*  Version : 1.0                                                 *
'*  Notes   : GPIO.0 IZLAZ NA RELEJ                    *
'*          : GPIO.2 TASTER                                   *
'*          : GPIO.1 RC5IN                                      *
'*          : GPI0.4 i 5 NA 8 MHZ KRISTAL               *
'****************************************************************


'_________________________________________________________________
'podesenja
'_________________________________________________________________

Device 12F629 
Xtal 8
CMCON=7' KOMPARATORI off
All_Digital = True  
'*******************************************************************
 Declare RC5In_Pin GPIO.1                    'infrared sensor pin
'********************************************************************

' CONFIG ZA HS OSCILATOR, A ZA INTOSC NE RADI ?????
Reminders 0
Config CPD_OFF, CP_OFF, BODEN_OFF, MCLRE_OFF, PWRTE_OFF, WDT_OFF, HS_OSC'INTRC_OSC_NOCLKOUT 

'________________________________________________________________
'Deklaracija promjenjivih
'________________________________________________________________
Dim ir_ulaz As Word ' WORD variabla za zaprimanje podataka
Dim ukljuci As ir_ulaz.LowByte
Dim EEpromAdress As Byte 'eprom adresa za upis
Dim test As Word 'uporedjivach
Dim cnt As Byte 'brojach
Dim a As Byte 'brojach
Symbol ulaz = GPIO.2

'________________________________________________________________
'pocetene vrijednosti
'________________________________________________________________

EEpromAdress = 0
cnt=0
a=0

'________________________________________________________________
'Inicijalizacija
'________________________________________________________________
High GPIO.0
DelayMS 2000
Low GPIO.0 
DelayMS 2000
'________________________________________________________________
'pregledaj eeprom ako ima sta idi na main ako ne idi na pripremu
'________________________________________________________________

provjera:
    test.LowByte = ERead EEpromAdress 'iscitaj zapis iz eeproma sa adrese 0
        If test.LowByte = $FF Then 'ako je FF pici dalje 
            GoSub eepromprogON
        EndIf 
        
        
'________________________________________________________________
'cekaj promjenu na rc5 ulazu
'________________________________________________________________          

main:
While 1 = 1 ' petlja beskoncna
        Repeat
        a=0
        While ulaz=1
        Inc a
        Toggle GPIO.0
        DelayMS 1000
        Wend
        If a>=10 Then
        GoSub eepromprogON
        ElseIf a=1 And cnt=0 Then 
            High GPIO.0
            cnt=cnt+1
        ElseIf a=1 And cnt=1 Then 
            Low GPIO.0
            cnt=0
            EndIf
            ir_ulaz = RC5In' Primanje signala sa TSOP1738   
        Until ir_ulaz.LowByte <> 255 ' Trazi-cekaj dok ne naleti valjano zaglavlje signala
         
           If ir_ulaz.LowByte=test.LowByte And cnt=0 Then
                  High GPIO.0
               DelayMS 800
                cnt=cnt+1
            ElseIf ir_ulaz.LowByte=test.LowByte And cnt=1 Then
            Low GPIO.0
            DelayMS 800
               cnt=0
            EndIf
           
Wend 

'________________________________________________________________
'podprogram za programiranje uredjaja
'________________________________________________________________

eepromprogON:
High GPIO.0  
        Repeat
            ir_ulaz.LowByte= RC5In '  Primanje signala sa TSOP1738 
        Until ukljuci<> 255' Trazi-cekaj dok ne naleti valjano zaglavlje signala
               
              EWrite EEpromAdress , [ ir_ulaz.LowByte ]
  test.LowByte = ERead EEpromAdress
  Low GPIO.0
  
Return

Code: Select all

'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2010 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 07/06/2010                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************

'_________________________________________________________________
'podesenja
'_________________________________________________________________
Device = 16F877A
CMCON=7
'ADCON1 = 7 
Xtal=8
Declare RC5In_Pin PORTC.7 

		LCD_DTPin = PORTB.0	
		LCD_RSPin = PORTB.4
		LCD_ENPin = PORTB.5
		LCD_Interface = 4	' 4-bit Interfejsbuk
        LCD_Lines = 2
		LCD_Type = 0
		LCD_CommandUs = 2000
		LCD_DataUs = 50	
		
'________________________________________________________________
'Deklaracija promjenjivih
'________________________________________________________________

Dim ir_ulaz As Word ' WORD variabla za zaprimanje podataka
Dim ukljuci As ir_ulaz.LowByte
Dim EEpromAdress As Byte 'epromarivach
Dim test As Word 'uporedjivach
Dim cnt As Byte 'brojach
Dim a As Byte 'brojach
Symbol ulaz = PORTA.4

'________________________________________________________________
'pocetne vrijednosti
'________________________________________________________________

EEpromAdress = 0
cnt=0
a=0
Cls
All_Digital = True ' Ucini sve pinove digitaljnim
 Print At 1,1,"pozz..."
 DelayMS 500
Cls ' Ociti LCD 

'________________________________________________________________
'pregledaj eeprom ako ima sta idi na main ako ne idi na pripremu
'________________________________________________________________

provjera:
    test.LowByte = ERead EEpromAdress 'iscitaj zapis iz eeproma sa adrese 0
        If test.LowByte = $FF Then   'ako je FF pici dalje 
        Print At 1,1,"odo na podrrg"
        Print At 2,1,Dec test.LowByte
        DelayMS 200
        Cls
            GoSub eepromprogON
        Print At 1,1,"vratih se iz pod"
        DelayMS 200
        Cls
        test.LowByte = ERead EEpromAdress  'provjeri upis
            Print At 1,1,"Uredjaj spreman"
            Print At 2,1,Dec test.LowByte
            DelayMS 200
            Cls
        EndIf 
        
        
'________________________________________________________________
'cekaj promjenu na rc5 ulazu
'________________________________________________________________          

main:
While 1 = 1 ' petlja beskoncna
        Repeat
        a=0
        While ulaz=1
        Inc a
        Cls
        Print At 1,1, Dec a
        DelayMS 1000
        Cls
        Wend
        If a>=10 Then
        GoSub eepromprogON
        ElseIf a=1 And cnt=0 Then 
            High PORTA.1
            cnt=cnt+1
        ElseIf a=1 And cnt=1 Then 
            Low PORTA.1
            cnt=0
            EndIf
           Print At 1,1,"cekaj"
         ir_ulaz = RC5In' Primanje signala sa TSOP1738   
        Until ir_ulaz.LowByte <>255 ' Trazi-cekaj dok ne naleti valjano zaglavlje signala
         Cls 
         
           If ir_ulaz.LowByte=test.LowByte And cnt=0 Then
                  High PORTA.1
                   Print At 1,1,"u",Dec ir_ulaz.LowByte
                   Print At 2,1,Dec test.LowByte
                   DelayMS 1500
                
                cnt=cnt+1
                Cls
            ElseIf ir_ulaz.LowByte=test.LowByte And cnt=1 Then
            Low PORTA.1 
                   Print At 1,1,"i", Dec ir_ulaz.LowByte
                   Print At 2,1,Dec test.LowByte
                   DelayMS 1500
               
               cnt=0
               Cls
            EndIf
           
Wend 

'________________________________________________________________
'podprogram za programiranje uredjaja
'________________________________________________________________

eepromprogON:
High PORTA.0
    Print At 1,1,"izaberi tipku za"
    Print At 2,1,"   kontrolu!"
    
        Repeat
            ir_ulaz = RC5In '  Primanje signala sa TSOP1738  
        Until ir_ulaz.LowByte<> 255' Trazi-cekaj dok ne naleti valjano zaglavlje signala
       Cls  
          Print At 1,1,"Komanda:",Dec ukljuci," "
          DelayMS 400  
          Cls
            EWrite EEpromAdress , [ ir_ulaz.LowByte ]
Print At 1,1,"upisao sam se"
DelayMS 200
Cls
  test.LowByte = ERead EEpromAdress
  Low PORTA.0
Return

User avatar
niho
Pravi forumaš
Pravi forumaš
Posts: 1895
Joined: 24-09-2009, 17:26
Location: Brcko, Bosnia and Herzegovina

Re: RC5IN

Post by niho »

Fino je to grunfe samo koliko sam primjetio ovo nije PICbasic nego mikrobasic :S
User avatar
grunf
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 286
Joined: 19-04-2008, 14:22
Location: Cvjećara

Re: RC5IN

Post by grunf »

ne bih ti znao reci nemam microbasic kompajler instaliran vec sam nasao ovo

Code: Select all

http://www.picbasic.org/content.php/141-Proton-Development-Suite
i instalirao ovo

Code: Select all

http://www.sonsivri.com/forum/index.php?topic=25430.0
:roll:

pored rc5in komande postoji i sonyin komanda koja takodje fino radi i to sa internim oscilatoram na 12F629!

svako dobro
Attachments
proton.JPG
proton.JPG (11.91 KiB) Viewed 3672 times
User avatar
grunf
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 286
Joined: 19-04-2008, 14:22
Location: Cvjećara

Re: RC5IN

Post by grunf »

evo skica i hex, nadam se da ce neko imati vremena da ovo iskoristi!!!

hex za 12F629, tipka koju izaberete sluzi i za on i za off, a moguce je potrosac on i off sa tasterom, kada se sklop "ukljuci" izlaz ka releju je aktivan na 2 sekunde, ako nema zaisa u eprom o izabranoj komandi za upravljanje, odnosno ako prvi put ukljucujete uredjaj to jeste ako nije izabrana komanda za kontrolu daljinskim upravljacem :D onda ce izlaz ka releju ostati aktivan sve dok se ista ne izabere, u ponovni mod za programiranje uredjaja se ulazi drzeci taster duze od 10 sec!

na skici ima greska, kond je 4.7uF

Code: Select all

:10000000AC2883169B0083161C141A089B0AA82888
:1000100083169A001C1555309D00AA309D009C1433
:100020009C1810281C119B0AA828A601A500FF30C7
:10003000A507031CA607031CA8280330A400E4306E
:1000400023201728A401F43EA300A409FE30031CBA
:100050002C28A30703182928A3070000A40F292888
:100060000000231833282318352808008316851428
:1000700083128313AC01AB01273084000130A4004C
:10008000B83023208518A4280330A4007230232020
:10009000AC0A21302C0203185728031485180310CA
:1000A000800DAB0AAB1D4428840AAB0144282730DD
:1000B0008400A001AB01A401A301800DA00D800D5F
:1000C000A00DAB0A99202219A428A20CA001800D32
:1000D000A00D800DA00DAB0A99202219A428A20C16
:1000E0000530A100A001800DA00D800DA00DAB0A70
:1000F0002B1D7C28840AAB0199202219A428A20C6C
:10010000A40DA10B72280630A100A001800DA00D46
:10011000800DA00DAB0A2B1D8F28840AAB019920FE
:100120002219A428A20CA30DA10B852823080310D3
:10013000A828A201200B9E282214080002302002C9
:100140000319080022150800FF30A400A3000314BF
:100150008313831203130800073099009900B1013B
:10016000B401B5018316051083120514A600D03022
:10017000162083160510831205100730A600D03014
:10018000162031080120B200320A031DC8283A2186
:10019000B501051DD628B50A013085068316051060
:1001A00003308312A600E8301620C9280A30350231
:1001B000031CDC283A210229013035020130031DDD
:1001C0000030AE000130B408031D0030AE05031945
:1001D000EF288316051083120514B40A0229013092
:1001E00035020130031D0030AE0001303402013011
:1001F000031D0030AE050319022983160510831272
:100200000510B4013620AF002408B0002F0A0319EE
:10021000C8282F08320203190130031D0301AE0064
:100220000130B408031D0030AE05031921298316DF
:100230000510831205140330A60020301620B40ADE
:1002400039292F08320203190130031D0301AE00C2
:10025000013034020130031D0030AE050319392985
:1002600083160510831205100330A60020301620D7
:10027000B401C82883160510831205143620AF0078
:100280002F0A03193E29310883169B0083122F0879
:10029000082031080120B2008316051083120510D2
:0402A00008005129D8
:02400E00923FDF
:00000001FF

Attachments
skica ir onoff.jpg
skica ir onoff.jpg (8.85 KiB) Viewed 3662 times
frwgrg
Napredujem
Napredujem
Posts: 134
Joined: 31-01-2009, 20:43

Re: RC5IN

Post by frwgrg »

A jel je moguce da se umesto releja ubaci ir dioda, i da na pritisak tastera salje komandu, sacuvanu prethodno u memoriji, preko tsop-a ?
User avatar
Drago_Zg
Odlično uznapredovao
Odlično uznapredovao
Posts: 583
Joined: 16-09-2008, 19:40

Re: RC5IN

Post by Drago_Zg »

The TSOP1738 – series are miniaturized receivers for
infrared remote control systems. PIN diode and
preamplifier are assembled on lead frame, the epoxy
package is designed as IR filter.
The demodulated output signal can directly be
decoded by a microprocessor. TSOP17.. is the
standard IR remote control receiver series, supporting
all major transmission codes.

Kao što vidiš, TSOP 1738 je prijemnik. pa se ne može preko prijemnika ništa odaslati.
Za tu svrhu se koristi odašiljački chip, koji na izlazu ima IR diodu.
[URL=https://meettomy.site]Beautiful Womans in your city[/URL]
frwgrg
Napredujem
Napredujem
Posts: 134
Joined: 31-01-2009, 20:43

Re: RC5IN

Post by frwgrg »

Ne.. mislio sam da daljinac uperim u tsop, pa da se ta komanda od daljinca sacuva e memoriju pic-a , i na pritisak dugmeta da se salje sacuvana komanda (preko ir predajne diode).
User avatar
Drago_Zg
Odlično uznapredovao
Odlično uznapredovao
Posts: 583
Joined: 16-09-2008, 19:40

Re: RC5IN

Post by Drago_Zg »

To može, a to određuje program. To se može isprogramirati.
[URL=https://meettomy.site]Beautiful Womans in your city[/URL]
frwgrg
Napredujem
Napredujem
Posts: 134
Joined: 31-01-2009, 20:43

Re: RC5IN

Post by frwgrg »

E, pa program me i muci. Nemam pojma sa programiranjem. Ali, dobro, iskoristicu program za primanje i pamcenje ir komandi, i samo ako neko hoce da mi napise kod , kako da posaljem ir komandu iz memorije na ir diodu, na pinu 7, a da se slanje aktivira cim pic dobije napon. (stavicu taster odma iz baterije)
frwgrg
Napredujem
Napredujem
Posts: 134
Joined: 31-01-2009, 20:43

Re: RC5IN

Post by frwgrg »

Code: Select all


main:
While 1 = 1 ' petlja beskoncna
        Repeat
        a=0
        While ulaz=1
        Inc a
        Cls
        Print At 1,1, Dec a
        DelayMS 1000
        Cls
        Wend
        If a>=10 Then
        GoSub eepromprogON
        ElseIf a=1 And cnt=0 Then
            High PORTA.1
            cnt=cnt+1
        ElseIf a=1 And cnt=1 Then
            Low PORTA.1
            cnt=0
            EndIf
           Print At 1,1,"cekaj"
         ir_ulaz = RC5In' Primanje signala sa TSOP1738   
        Until ir_ulaz.LowByte <>255 ' Trazi-cekaj dok ne naleti valjano zaglavlje signala
         Cls
         
           If ir_ulaz.LowByte=test.LowByte And cnt=0 Then
                  High PORTA.1
                   Print At 1,1,"u",Dec ir_ulaz.LowByte
                   Print At 2,1,Dec test.LowByte
                   DelayMS 1500
               
                cnt=cnt+1
                Cls
            ElseIf ir_ulaz.LowByte=test.LowByte And cnt=1 Then
            Low PORTA.1
                   Print At 1,1,"i", Dec ir_ulaz.LowByte
                   Print At 2,1,Dec test.LowByte
                   DelayMS 1500
               
               cnt=0
               Cls
            EndIf
           
Wend 

Molim za pomoc, jel neko zna kako da izmenim ovaj kod, da salje memorisan rc5 signal iz eeproma,

EWrite EEpromAdress , [ ir_ulaz.LowByte ]

na pin 7 ?
Post Reply