Infra távirányító
- nobody_hun
- Bitfaragó
- Hozzászólások: 425
- Csatlakozott: 2005. november 14. hétfő, 7:00
http://data.hu/get/5195805/taviranyok.jpg
Ilyen kis 6-gombos távirány panelkáim vannak.
Kódolás ismeretlen (lusta voltam, na...)
SPI tüsisor is van rajta, nincs titkosítva az Atmega48 ,
de kit érdekel.
Bontásra vagy használatra, sajnos doboz nélkül: 250Ft/db, 15db van.
Érdeklődés emilben, érkezési sorrendben.
De!
Kiolvastam a programot, megnéztem a fuse-biteket stb.
Gondoltam, nyomok rá egy verify-t.
És az azt mondja, hogy különbség van 01000h címnél.
Ez azért érdekes, mert a M48-ban csak 4k ROM van, tehát
1000h-n érdekes lenne, ha lenne valami (vagy talán van?).
2070-es Bascom USB-ISP Prog1 programozó.
JAni
Ilyen kis 6-gombos távirány panelkáim vannak.
Kódolás ismeretlen (lusta voltam, na...)
SPI tüsisor is van rajta, nincs titkosítva az Atmega48 ,
de kit érdekel.
Bontásra vagy használatra, sajnos doboz nélkül: 250Ft/db, 15db van.
Érdeklődés emilben, érkezési sorrendben.
De!
Kiolvastam a programot, megnéztem a fuse-biteket stb.
Gondoltam, nyomok rá egy verify-t.
És az azt mondja, hogy különbség van 01000h címnél.
Ez azért érdekes, mert a M48-ban csak 4k ROM van, tehát
1000h-n érdekes lenne, ha lenne valami (vagy talán van?).
2070-es Bascom USB-ISP Prog1 programozó.
JAni
Re: Infra távirányító
Sziasztok.
Attiny13 -as procival egy infra kódot szeretnék küldeni. Ezen az oldalon lévő első programot (mega168)
http://www.mcselec.com/index2.php?optio ... hlight=nec
már sikeresen átirtam mega88-ra. De most csak egy kódot kell küldeni,ezért gondoltam elég lenne egy attiny13-as is.
Mivel ebben nincs timer1 átirtam timer0-ra. A kérdésem, hogyan kell beállítani a regisztereket 38khz kimenő jelhez .
Előre is köszönöm a segítséget.
Attiny13 -as procival egy infra kódot szeretnék küldeni. Ezen az oldalon lévő első programot (mega168)
http://www.mcselec.com/index2.php?optio ... hlight=nec
már sikeresen átirtam mega88-ra. De most csak egy kódot kell küldeni,ezért gondoltam elég lenne egy attiny13-as is.
Mivel ebben nincs timer1 átirtam timer0-ra. A kérdésem, hogyan kell beállítani a regisztereket 38khz kimenő jelhez .
Kód: Egész kijelölése
$regfile = "attiny13.dat"
$crystal = 9600000
'*** Start Timer 1 ***
'38kHz square wave.
'turn output off.
Tccr0a = ?
Tccr0b = ?
Ocr0a = ?
kikapcsolás:
Tccr0a = ?
bekapcsolás:
Tccr0a = ?
Re: Infra távirányító
Bascom alatt nem regisztereket piszkálunk....
Config Timer0=timer, prescale =....
On timer0 ugrik
enable interrupts
enable timer0
do
loop
ugrik:
timer0= startertek
return
És az AVRCalc megmondja a paramétereket......
Config Timer0=timer, prescale =....
On timer0 ugrik
enable interrupts
enable timer0
do
loop
ugrik:
timer0= startertek
return
És az AVRCalc megmondja a paramétereket......
- ampervadasz
- Bitmanipulátor
- Hozzászólások: 119
- Csatlakozott: 2008. január 19. szombat, 7:00
Re: Infra távirányító
Szervusztok AVR Istenei!
Problémába ütköztem... Készítettem egy AVR-es áramkört, melyben a változók értékét infra távvezérlővel tudom módosítani. Ez eddig nem volt nehéz feladat. RC5-ös kód fogatására képes. Most jön a neheze - legalábbis számomra! Nem szeretnék TV, vagy univerzális távvezérlővel szaladgálni, ráadásul olyan távvezérlővel nem, ami teli van pakolászva gombokkal. Arra a merész elhatározásra jutottam, hogy saját távvezérlőt tervezek, egy Attiny24 (44) segítségével.
Választásom erre az AVR-re az alábbi megfontolások alapján jutottam:
- Alacsony feszültségen is üzemeljen - igaz csökken a hatótávolság (1,8-5,5V 1MHz-en)
- Legyen benne 16bit-es timer (Timer1)
- Megfelelő lábszám a 6 nyomógomb számára (Teljes PortA csak az enyém! )
- Természetesen az ár kérdése sem volt mellékes, habár az utolsó szempontok között szerepelt.
Olvastam az RC5SEND utasítást a BASCOM súgóban, de valahogy nem volt tiszta számomra. Mintha a Timer időzítését kihagyták volna...
Elképzelésem a következő:
Eddig talán rendbe is lennénk. A BASCOM súgó nem sokat mondott számomra, nézelődök a neten is, de bonyolultabbnál bonyolultabb megoldásokat kínálnak fel számunkra.
Ami nekem kellene, hogy 1 gombot (kezdésnek) hogyan lehet lehezelni RC5SEND utasítással...
Tudtok segíteni?
Problémába ütköztem... Készítettem egy AVR-es áramkört, melyben a változók értékét infra távvezérlővel tudom módosítani. Ez eddig nem volt nehéz feladat. RC5-ös kód fogatására képes. Most jön a neheze - legalábbis számomra! Nem szeretnék TV, vagy univerzális távvezérlővel szaladgálni, ráadásul olyan távvezérlővel nem, ami teli van pakolászva gombokkal. Arra a merész elhatározásra jutottam, hogy saját távvezérlőt tervezek, egy Attiny24 (44) segítségével.
Választásom erre az AVR-re az alábbi megfontolások alapján jutottam:
- Alacsony feszültségen is üzemeljen - igaz csökken a hatótávolság (1,8-5,5V 1MHz-en)
- Legyen benne 16bit-es timer (Timer1)
- Megfelelő lábszám a 6 nyomógomb számára (Teljes PortA csak az enyém! )
- Természetesen az ár kérdése sem volt mellékes, habár az utolsó szempontok között szerepelt.
Olvastam az RC5SEND utasítást a BASCOM súgóban, de valahogy nem volt tiszta számomra. Mintha a Timer időzítését kihagyták volna...
Elképzelésem a következő:
Kód: Egész kijelölése
$regfile = "attiny24.dat"
$crystal = 1000000
Config Porta = Input
Config Timer1 = Timer , Prescale = 1 , Compare B = Toggle
On Timer1 Pulse
Dim Startertek As Integer
Startertek = 65508
Enable Interrupts
Enable Timer1
Do
Nop
'... Ide kerülne a portA vizsgálata
'... Értékadás a megfelelő gomb lenyomásakor
'... RC5SEND utasítás
Loop
End
Pulse:
Startertek = 65508
Return
Ami nekem kellene, hogy 1 gombot (kezdésnek) hogyan lehet lehezelni RC5SEND utasítással...
Tudtok segíteni?
Re: Infra távirányító
Vigyázz!
A távirányítók többféle szabványt kezelnek. RC5, RC56, RC6, NEC, SONY... Mostanában a NEC, ami egyre többször visszaköszön (Samsung? LG? eszközökben.).
Itt a távirányítóklónozás alapelve:
- 1, digitalizálni a meglevő jelet
- 2, ezt visszajátszatni gombnyomásra.
Ha nem kell a Bascom, ez készen van (Timer1 alapon) Arduino alá. ATMega8/168/328 chipekre azonnal készen van. Esetleg ezt a függvénykönyvtárat Bascom alá lehet portolni....
A távirányítók többféle szabványt kezelnek. RC5, RC56, RC6, NEC, SONY... Mostanában a NEC, ami egyre többször visszaköszön (Samsung? LG? eszközökben.).
Itt a távirányítóklónozás alapelve:
- 1, digitalizálni a meglevő jelet
- 2, ezt visszajátszatni gombnyomásra.
Ha nem kell a Bascom, ez készen van (Timer1 alapon) Arduino alá. ATMega8/168/328 chipekre azonnal készen van. Esetleg ezt a függvénykönyvtárat Bascom alá lehet portolni....
- ampervadasz
- Bitmanipulátor
- Hozzászólások: 119
- Csatlakozott: 2008. január 19. szombat, 7:00
Re: Infra távirányító
Az egyik projektemben RC5-ös vétel van leprogramozva. Ehhez szeretnék saját távvezérlőt készíteni. Az ok, hogy nyilvános (kis tömegsűrűségű ) helyen üzemelne a berendezés, de nem szeretném, ha minden "suhanc" a saját TV távvezérlőjével állítgatná a berendezést. Saját "Address" és "Command" változóval lennének ellátva a megfelelő billentyűk. Ravasz!
Szóval a saját távvezérlő programjához keresek valami használható információt.
Szóval a saját távvezérlő programjához keresek valami használható információt.
Re: Infra távirányító
A feladat felfogva:)
SendRC5, SendRC5EXT utasítások használhatóak....
A Timer1-t használja mind.
OC1A kimenetet (Timer ki/bekapcsolása az adómoduláció...)
Az eszköz küldés után sleep-be megy... INT-re felkel....
SendRC5, SendRC5EXT utasítások használhatóak....
A Timer1-t használja mind.
OC1A kimenetet (Timer ki/bekapcsolása az adómoduláció...)
Az eszköz küldés után sleep-be megy... INT-re felkel....
Re: Infra távirányító
Még tavaly előtt készítettem egy dcf77-vevős órát (16db 7 szegmenses kijelzővel), aminek a kódját szerettem volna a versenyre is beküldeni (a kommentelés hiányzik)... majd talán jövőre elérek odáigampervadasz írta:...Szóval a saját távvezérlő programjához keresek valami használható információt.
Mivel eleve a falra van tervezve, ezért nincsenek rajta gombok - maradt az RC5.
Az alább látható kód van az adóba töltve - igazából még tesztverzió, de már nem kell módosítani rajta .
5 gomb van a kis dobozon - középen, jobbra, balra, fel, le (mindegyik gomb be van diódázva az int bemenetre - felébreszteni powerdow-ból).
Két időzítős uC kellett (RC5 lefoglalja a timer0-t (lásd help (az infraled bekötése is onnan van (infraled meg régi távirányítóból)))), valamint a 'sok' gomb miatt sem lett volna elég a 8 lábú ATtinyXX.Továbbá: a doboz méretét sem ez határozta meg. Adott gombot lenyomva tartva először nagy időzítéssel adja ki az egyes parancsokat, az időzítés lejárta után gyorsan (óra/perc érték állítás miatt, mint a 'nagyok' óráin). Két-két gombot tartva ismét más kódot ad ki - ezzel lépek be a vevő oldalon a beállító menü-rutinokba.
Visszajelzésként került egy led az előlapra, ami gombnyomáskor villog - elemcsere esedékessége az adc portok hiánya miatt nincsen elkészítve - valamint ha nincsen használva az adó akkor elmegy aludni -> powerdown. (két éve van benne ugyanaz az elem - teszteléssel beleértve)
A lényeg, hogy a Command és Address értékekkel egyedi azonosítókat tudsz kiküldeni - de nagyon fontos megemlíteni: neten találsz listát, hogy melyik kódcsoport melyik készülékhez való, tehát lehetőleg ne olyan kódot válassz, ami bezavarhatná az otthoni készülékeket (de gondolom ezt felesleges említeni).
Kód: Egész kijelölése
$regfile = "attiny2313.dat"
$crystal = 3686400
$hwstack = 40
$swstack = 40
$framesize = 40
' ATtiny2313 lábkiosztása a feladathoz
'
' __ __
' I U I
' Reset PA2 I I VCC
' PD0 I I PB7
' PD1 I I PB6
' PA1 I I PB5
' PA0 I I PB4
' paraméter- PD2 I I PB3 infraled meghajtás
' gombok int PD3 I I PB2 érték-
' PD4 I I PB1 paraméter+
' piros led PD5 I I PB0 OK gomb
' GND I I PD6 érték+
' I_____I
'
Config Porta.0 = Output
Config Porta.1 = Output
'Config Porta.2 = Output
Config Portb.0 = Input
Config Portb.1 = Input
Config Portb.2 = Input
Config Portb.3 = Output
Config Portb.4 = Output
Config Portb.5 = Output
Config Portb.6 = Output
Config Portb.7 = Output
Config Portd.0 = Output
Config Portd.1 = Output
Config Portd.2 = Input
Config Portd.3 = Input
Config Portd.4 = Output
Config Portd.5 = Output
Config Portd.6 = Input
Config Portd.7 = Output
Set Portb.0
Set Portb.1
Set Portb.2
Set Portd.2
Set Portd.3
Set Portd.6
Led Alias Portd.5
Parameter_minus Alias Pind.2
Parameter_plus Alias Pinb.1
Value_minus Alias Pinb.2
Value_plus Alias Pind.6
Ok_button Alias Pinb.0
Const Timer0reload = 195 ' ~25ms
Config Timer0 = Timer , Prescale = 1024
Load Timer0 , Timer0reload
On Ovf0 Timer0_isr
Enable Ovf0
Start Timer0
Config Int1 = Falling
On Int1 Int1_isr
Enable Int1
Dim Togbit As Byte , Command As Byte , Address As Byte , Pwrdown_time As Byte , 1mp As Byte , I As Byte , 1mpt1 As Byte
Pwrdown_time = 5 ' 5sec
Set Portb.3
Declare Sub Idozites
Enable Interrupts
Config Rc5 = Pinb.3
Togbit = 0
'RC5 üzenetek:
'31-1 (OK)
'31-2 (P-)
'31-3 (P+)
'31-4 (V-)
'31-5 (V+)
Do
If Ok_button = 0 And Parameter_minus = 1 And Parameter_plus = 1 And Value_minus = 1 And Value_plus = 1 Then
Set Led
Command = 1
Address = 31
Rc5send Togbit , Address , Command
Reset Led
Call Idozites
End If
If Ok_button = 1 And Parameter_minus = 0 And Value_minus = 1 And Value_plus = 1 Then
Set Led
If Parameter_plus = 1 Then
Command = 2
Else
Command = 7
End If
Address = 31
Rc5send Togbit , Address , Command
Reset Led
Call Idozites
End If
If Ok_button = 1 And Parameter_minus = 1 And Parameter_plus = 0 And Value_minus = 1 And Value_plus = 1 Then
Set Led
Command = 3
Address = 31
Rc5send Togbit , Address , Command
Reset Led
Call Idozites
End If
If Ok_button = 1 And Parameter_minus = 1 And Parameter_plus = 1 And Value_minus = 0 And Value_plus = 1 Then
Set Led
Command = 4
Address = 31
Rc5send Togbit , Address , Command
Reset Led
Call Idozites
End If
If Ok_button = 1 And Parameter_minus = 1 And Parameter_plus = 1 And Value_plus = 0 Then
Set Led
If Value_minus = 1 Then
Command = 5
Else
Command = 6
End If
Address = 31
Rc5send Togbit , Address , Command
Reset Led
Call Idozites
End If
Loop
Sub Idozites
If Ok_button = 0 Or Parameter_minus = 0 Or Parameter_plus = 0 Or Value_minus = 0 Or Value_plus = 0 Then
For I = 1 To 30
If 1mpt1 > 0 Then
Waitms 10
End If
If 1mpt1 = 0 Then
Waitus 700
End If
If Ok_button = 1 And Parameter_minus = 1 And Parameter_plus = 1 And Value_minus = 1 And Value_plus = 1 Then Exit For
Next I
End If
End Sub
Timer0_isr:
Load Timer0 , Timer0reload
Incr 1mp
If 1mp => 40 Then
1mp = 0
If 1mpt1 > 0 Then Decr 1mpt1
If Pwrdown_time > 0 Then
Decr Pwrdown_time
End If
If Pwrdown_time = 0 Then
Stop Timer0
Config Int1 = Low Level
Enable Interrupts
Power Powerdown
Pwrdown_time = 5
jmp $0000
End If
End If
Return
Int1_isr:
Pwrdown_time = 5
1mpt1 = 2
Return
- ampervadasz
- Bitmanipulátor
- Hozzászólások: 119
- Csatlakozott: 2008. január 19. szombat, 7:00
Re: Infra távirányító
SirLeslie!
Rátapintottál a lényegre, a leírt kódod rengeteget segített nekem.
Ameddig eljutottam:
Mikrokontroller: Attiny44 (Pcint bemenetek, Adc, 2xtimer). A választásom pont ezért került rá, ráadásul meglepően olcsó (kb.230Ft)
Gombok: 6db. (Még legózom a bekötéseken, hogy melyik hová kerüljön)
Infraled: winnerbt kollégánk küldött nekem 2db távvezérlőt, azokban van 2-2 LED. Meghajtása egy majdnem körömnyi tranzisztorral - egyenként! -, vagy FET-el (atomerőművet is lehet vele kapcsolni szinte).
Távirányító ház: TME-nél lehet szerezni 600Ft-ért EZT
Félig-meddig a programom is készen, PROTEUS-szal a szimuláció tökéletes, igaz a Powerdown utasítás működését sehogy nem látom.
Mire is kell nekem ez a szörnyeteg? Ha már elárultad, énis megmondom. Mátraterenyén a futballpályán van egy régi eredménykijelző kb.10méter magas. Vonalizzókkal van kivilágítva a 7 szegmenses kijelző. 6x7 db. Minden szegmens 60W!!! Van ám áramfelvétel 230V-ról!!! Ezt vezérlem mikrokontrollerrel, ehhez kell majd a távvezérlő! Az egész berendezés egyenlőre az asztalomon áll, tesztelés alatti folyamatban van, folyamatosan agyalok közben, hogy az "emberi hülyeséget" hogyan tudnám a programba kiiktatni.
Rátapintottál a lényegre, a leírt kódod rengeteget segített nekem.
Ameddig eljutottam:
Mikrokontroller: Attiny44 (Pcint bemenetek, Adc, 2xtimer). A választásom pont ezért került rá, ráadásul meglepően olcsó (kb.230Ft)
Gombok: 6db. (Még legózom a bekötéseken, hogy melyik hová kerüljön)
Infraled: winnerbt kollégánk küldött nekem 2db távvezérlőt, azokban van 2-2 LED. Meghajtása egy majdnem körömnyi tranzisztorral - egyenként! -, vagy FET-el (atomerőművet is lehet vele kapcsolni szinte).
Távirányító ház: TME-nél lehet szerezni 600Ft-ért EZT
Félig-meddig a programom is készen, PROTEUS-szal a szimuláció tökéletes, igaz a Powerdown utasítás működését sehogy nem látom.
Mire is kell nekem ez a szörnyeteg? Ha már elárultad, énis megmondom. Mátraterenyén a futballpályán van egy régi eredménykijelző kb.10méter magas. Vonalizzókkal van kivilágítva a 7 szegmenses kijelző. 6x7 db. Minden szegmens 60W!!! Van ám áramfelvétel 230V-ról!!! Ezt vezérlem mikrokontrollerrel, ehhez kell majd a távvezérlő! Az egész berendezés egyenlőre az asztalomon áll, tesztelés alatti folyamatban van, folyamatosan agyalok közben, hogy az "emberi hülyeséget" hogyan tudnám a programba kiiktatni.
Re: Infra távirányító
Mesélj az Attiny44-ről. Hol lehet beszerezni? DIP-es?
Nekem nem a tudása miatt lenne érdekes, hanem a lábszáma miatt. Ha a 8 lábú kicsi, a 28 lábú meg sok, akkor valami köztes megoldás jó lenne.
Nekem nem a tudása miatt lenne érdekes, hanem a lábszáma miatt. Ha a 8 lábú kicsi, a 28 lábú meg sok, akkor valami köztes megoldás jó lenne.
- ampervadasz
- Bitmanipulátor
- Hozzászólások: 119
- Csatlakozott: 2008. január 19. szombat, 7:00
Re: Infra távirányító
sziasztok!
bocs, ha butaságot kérdezek, kezdő vagyok még arduioban.
ezzel vajon meg lehet oldani, hogy egy távirányító IR jeleit megtanulja, majd azokat ki is adja? http://www.tinydeal.com/single-way-of-i ... 14961.html
ilyen megoldást szeretnék ugyanis, csak előbb rendeltem, mint olvastam volna: ha jól látom, leginkább vonalkövető robothoz lehet ez alkalmas.
köszönöm!
bocs, ha butaságot kérdezek, kezdő vagyok még arduioban.
ezzel vajon meg lehet oldani, hogy egy távirányító IR jeleit megtanulja, majd azokat ki is adja? http://www.tinydeal.com/single-way-of-i ... 14961.html
ilyen megoldást szeretnék ugyanis, csak előbb rendeltem, mint olvastam volna: ha jól látom, leginkább vonalkövető robothoz lehet ez alkalmas.
köszönöm!
Re: Infra távirányító
Ezzel nem.
Adó: infraLED, vevő: TSOPxxxx vevőkocka....
Adó: infraLED, vevő: TSOPxxxx vevőkocka....