www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

IR dioda, daljinec in atmega8

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Elektronika
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
lamela123
Član
Član



Pridružen-a: Sob 10 Mar 2012 15:15
Prispevkov: 235
Aktiv.: 1.45
Kraj: Celje

PrispevekObjavljeno: Tor Jan 29, 2013 7:43 pm    Naslov sporočila:  IR dioda, daljinec in atmega8 Odgovori s citatom

Lep pozdrav!

Rad bi izdelal program za Atmega8 - 16PU. Na pin C5 bi pripeljal DATA žico iz TSOP1736 IR senzorja, na pin B1 pa priključil LED diodo. Ta dioda bi se vključila in ostala vključena nekaj sekund, če bi jaz na daljincu od televizije pritisnil določeno tipko (tiste posebne, ki so pobarvane... rdeča, modra, zelena ali pa rumena). Zvezati ni problem, težava je pri programiranju. Uporabljam BASCOM-AVR, do sedaj sem za test uspešno sprogramiral utripanje LED diode in pa izpis na LCD display-ju, zato brez zamere, ker je v kodi, ki jo spodaj dodajam 90% napak. Bi mi jo kdo prosim popravil?

Koda:
$sim
 $regfile = "m8def.dat"                                   ' specify the used micro
 $crystal = 1000000                                         ' used crystal frequency
 $baud = 19200                                               ' use baud rate
 $hwstack = 32                                               ' default use 32 for the hardware stack
 $swstack = 10                                               ' default use 10 for the SW stack
 $framesize = 40                                             ' default use 40 for the frame space

 'use byte library for smaller code
 $lib "mcsbyte.lbx"

 Config Rc5 = Pind.2
 Config Pinc.5 = Output


 Enable Interrupts

 Dim Address As Byte , Command As Byte
 Start:
Do
 Getrc5(address , Command)

 If Address = 0 Then
   Goto Start
   If Address = 1 Then
   Goto Dioda
 End If
Loop

Dioda:
Pinc.5 = 1
Wait 2
Pinc.5 = 0
Goto Start
 End

_________________
Lep pozdrav!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
lojzek
Član
Član



Pridružen-a: Pet 25 Jan 2008 8:00
Prispevkov: 3388
Aktiv.: 15.95

PrispevekObjavljeno: Sre Jan 30, 2013 7:23 am    Naslov sporočila:   Odgovori s citatom

Stvar ni tako trivialna kot si ti predstavljaš....

Vsak pritisk vsake tipke na daljincu odda določeno kodo- zaporedje znakov bitov 1 in 0. Po nekih standardih.
In če hočeš slediti oz. določiti samo 4 od vseh možnih tipk, moraš najprej zajeti tisto zaporedje znakov, ki predstavlja tipko in to shraniti v Mego (torej jo najprej naučiti). Od tu jih potem vzameš za primerjavo z aktualnim znakom, ki prihaja iz daljinca.

Sicer ne gledam datasheeta, ampak jaz bi za prve poskuse signal iz senzorja pripeljal na RX pin (UART). Ali pa verjetno še bolje, uporabil bi TWI. Čeprav, kdo bi takt dajal... Think

Daj še malce po forumu prebrskaj, je že bila debata o tem.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
ssdzkrez
Član
Član



Pridružen-a: Sre 12 Jan 2011 15:13
Prispevkov: 401
Aktiv.: 2.27
Kraj: Hrastnik

PrispevekObjavljeno: Sre Jan 30, 2013 11:55 am    Naslov sporočila:   Odgovori s citatom

V primeru, da imaš pilota, ki podpira RC5 komunikacijo je stvar sila enostavna. Tako kot je že lojzek napisal moraš narediti najprej izpis kod, ki jih dobiš za tipke, katere želiš uporabiti. Najlažje je to na LCD ali prek RS232 na terminal. Nato pa pa definiraš kaj program stori ob določeni tipki. Evo primer ... http://avrhelp.mcselec.com/index.html?config_rc5.htm
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
lamela123
Član
Član



Pridružen-a: Sob 10 Mar 2012 15:15
Prispevkov: 235
Aktiv.: 1.45
Kraj: Celje

PrispevekObjavljeno: Sre Jan 30, 2013 6:32 pm    Naslov sporočila:   Odgovori s citatom

No, ker imam LCD, bi rad, da mi na njem izpiše podatke, ki jih potrebujem. Koda, ki jo prilagam mi izpiše "Waiting for RC5:" Na LCD zaslonu. Kako bi kodo popravil, da bi mi v drugi vrstici LCD-ja izpisalo podatke? RC5 IR imam priključen na PIN D.2.


Koda:

$regfile = "m8def.dat"
$crystal = 8000000                                          'uporabim atmego8
 'konfiguracija LCD-ja
 Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 , E = Portb.1 , Rs = Portb.0
 'velikost LCD-ja
 Config Lcd = 16 * 2

 Cls                                                        'pobrišem LCD
 Cursor Off                                                 'izklopim kurzor
'tell the compiler which pin we want to use for the receiver input

Config Rc5 = Pind.2 , Wait = 1
Config Timer1 = Timer , Prescale = 1


'the interrupt routine is inserted automatic but we need to make it occur
'so enable the interrupts
Enable Interrupts

'reserve space for variables
Dim Address As Byte , Command As Byte
Locate 1 , 1
Lcd "Waiting for RC5:"

Do

GetRC5(Address , Command)

'we check for the TV address and that is 0
If Address = 0 Then
   'clear the toggle bit
   'the toggle bit toggles on each new received command
   'toggle bit is bit 7. Extended RC5 bit is in bit 6
    Command = Command And &B01111111

    Locate 2 , 1
   Lcd Address ; "  " ; Command
End If
Loop
End

_________________
Lep pozdrav!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Vlado
Član
Član



Pridružen-a: Sre 03 Mar 2004 21:35
Prispevkov: 563
Aktiv.: 2.37
Kraj: Ljubljana

PrispevekObjavljeno: Sre Jan 30, 2013 7:55 pm    Naslov sporočila:   Odgovori s citatom

Še nisi napisal od česa je pilot ki ga uporabljaš (ali je od TV-a,VCR-a . . ., kdo je prizvajalec tega pilota?).
Ali uporabljaš interni oscilator, ali zunanji kristal?

Prav zdaj je objavljen en projekt ki bi ti znal biti zanimiv:
http://www.mcselec.com/index2.php?option=com_forum&Itemid=59&page=viewtopic&t=11304
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
lamela123
Član
Član



Pridružen-a: Sob 10 Mar 2012 15:15
Prispevkov: 235
Aktiv.: 1.45
Kraj: Celje

PrispevekObjavljeno: Sre Jan 30, 2013 8:27 pm    Naslov sporočila:   Odgovori s citatom

IR sprejemnik sem odlotal iz televizorja od Gorenja. Oznaka na njem je TS0P1730. Pilot je od iste TV, tako, da se bi stvar morala ujemati. IR sprejemnik uporablja Philipsovo kodo RC5. Uporabljam interni oscilator 8MHz, lahko pa dam zunanjega - tudi 8MHz.
_________________
Lep pozdrav!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
stursc
Član
Član



Pridružen-a: Tor 08 Jun 2004 14:29
Prispevkov: 323
Aktiv.: 1.36

PrispevekObjavljeno: Sre Jan 30, 2013 8:52 pm    Naslov sporočila:   Odgovori s citatom

Tukaj imaš v prilogi delujočo kodo za RC5
Spremeni pin nastavitve po tvoji potrebi.
Koda je preiskušena in ti na LCD-ju pokaze naslov (adres) in kodo.
Če ti to ne deluje boš moral poiskati napako na tvoji strani.
Odstrani končnico .pdf

LP,stursc



Decoder_RC5.bas.pdf
 Opis:

Download
 Ime datoteke:  Decoder_RC5.bas.pdf
 Velikost datoteke:  803 Bytov
 Downloadano:  19 krat



Nazadnje urejal/a stursc Čet Jan 31, 2013 11:11 am; skupaj popravljeno 1 krat
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Vlado
Član
Član



Pridružen-a: Sre 03 Mar 2004 21:35
Prispevkov: 563
Aktiv.: 2.37
Kraj: Ljubljana

PrispevekObjavljeno: Sre Jan 30, 2013 8:53 pm    Naslov sporočila:   Odgovori s citatom

Citiram:
IR sprejemnik uporablja Philipsovo kodo RC5


Tvoj IR sprejemnik bo sprejel vse kar ima nosilno frekvenco 30kHz, pomembno je da oddajnik oddaja RC5 kodo in ima nosilno frekvenco 30kHz.

V Helpu Bascom-a vpiši Config RC5, tam imaš še en primer ki ti lahko pomaga.
Uporabi zunanji kristal (nastavi tudi fuse bite), ker menim da notranji ni dovolj natančen.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
ssdzkrez
Član
Član



Pridružen-a: Sre 12 Jan 2011 15:13
Prispevkov: 401
Aktiv.: 2.27
Kraj: Hrastnik

PrispevekObjavljeno: Sre Jan 30, 2013 11:36 pm    Naslov sporočila:   Odgovori s citatom

RC5 dela na 36kHz.


Rc-5_protocol_details.jpg
 Opis:
 Velikost datoteke:  120.64 KB
 Pogledana:  10 krat

Rc-5_protocol_details.jpg


Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Vlado
Član
Član



Pridružen-a: Sre 03 Mar 2004 21:35
Prispevkov: 563
Aktiv.: 2.37
Kraj: Ljubljana

PrispevekObjavljeno: Čet Jan 31, 2013 10:29 am    Naslov sporočila:   Odgovori s citatom

TS0P1730 je za nosilno frekvenco 30kHz, TS0P1736 pa za nosilno frekvenco 36kHz.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
lamela123
Član
Član



Pridružen-a: Sob 10 Mar 2012 15:15
Prispevkov: 235
Aktiv.: 1.45
Kraj: Celje

PrispevekObjavljeno: Sob Feb 02, 2013 5:25 pm    Naslov sporočila:   Odgovori s citatom

No, stvar bi mi delovala, če bi IR sprejemnik sploh deloval. Ugotovil sem, da daje na izhodu stalno logično 1. Bo treba dobiti drugega. Hvala vsem.
_________________
Lep pozdrav!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Tonny
Član
Član



Pridružen-a: Sre 23 Dec 2009 11:57
Prispevkov: 289
Aktiv.: 1.53
Kraj: Vrhnika - MS

PrispevekObjavljeno: Sob Feb 02, 2013 5:35 pm    Naslov sporočila:   Odgovori s citatom

Logična enica na izhodu tega sprejemnika je povsem normalna stvar! Smile
Sprejemnik ima obratno logiko. Ko je v vzbujenem stanju gre na '0', sicer pa je vedno '1'.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
lamela123
Član
Član



Pridružen-a: Sob 10 Mar 2012 15:15
Prispevkov: 235
Aktiv.: 1.45
Kraj: Celje

PrispevekObjavljeno: Sob Feb 02, 2013 5:41 pm    Naslov sporočila:   Odgovori s citatom

No, pol je pa nekje drugje problem. Hvala za info! Bom še malo pogledal...
_________________
Lep pozdrav!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Elektronika Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 10 dni


Powered by phpBB © 2001, 2005 phpBB Group