Může mi někdo pomoct, aby se

P

Praful

Guest
Může mi někdo pomoct, aby se program Připojení ke vzdálené stejně jako tlačítko provozované LED on / off regulátor s použitím jazyka C a AT89c51 a Jakékoliv RC-5 kódem dálkového ovladače.Protože jsem začátečník ma v projektech uC teď jsem m učí v 2. roce.
1) Já nevím, jak se k tlačítka se zpožděním debounce.
2) Jak přiřadit vzdálené spuštění kódu na některé funkce.
Prosím, pomozte mi
Poděkováním předem
Prafulk25 (at) rediffmail.com<img src="http://www.edaboard.com/images/smiles/icon_neutral.gif" alt="Neutrální" border="0" />Omlouváme se, ale musíte přihlásit a prohlížet tuto přílohu

 
Udělejte to ve dvou krocích.Přepínače a LED by měla být jednoduchá.Opustit dálkové ovládání část do druhé fáze.Není to jednoduché pro začátečníka.Jakmile se dostanete přepínače a LED do práce, pak zkuste na RC.Existuje mnoho internetových stránek, které popisují to.

 
Nejprve Dík Techie a Seadolphine2000, ukázat váš zájem, aby mi pomohl.
Ok, teď detaily jsou Jen chci přepnout vedl pomocí uC jako AT89c51
s dotykem tlačítka a také se vzdáleným, ale podle techie Za prvé chci, aby on / off LED diody pomocí klávesnice, jak je uvedeno v posledním obrázku, který jsem poslal před nebo, jak je uvedeno níže.
Prosím pošlete mi program v "C" jazyk může způsobit můžu studovat.
Poděkoval vám všem .......
prafulk25 (at) rediffmail.com
Omlouváme se, ale musíte přihlásit a prohlížet tuto přílohu

 
I dont mít hotový program pro vás.Ale jsem si jistý, jestli nemáte nějaké studie sami, měli byste být schopni napsat snadno.

 
<img src="http://www.edaboard.com/images/smiles/icon_question.gif" alt="Otázka" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_neutral.gif" alt="Neutrální" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Pláč nebo velmi smutný" border="0" />
 
který kód se používá pro IR?Můžu poradit RC5 (standart kódování Sony vzdálená).Je to velmi jednoduché.Pokud zadáte údaje vám mohu poslat kód v C lang.a PICBASIC

 
jdi na http://www.winpicprog.co.uk a číst PIC cvičeních.najdete vše, co potřebujete (klávesnice, LED diody, Sony dálkové ovládání kódy apod.)

 
Vážení ikarakaya,
kód RC-5 dálkové, které jsem, už jsou 38 DE, 22 DE, 22 CE.Jsem velmi vděčný, pokud u poslat mne takový program v "C" jazyk pro AT89c51
Poděkováním znovu ...........

<img src="http://www.edaboard.com/images/smiles/icon_neutral.gif" alt="Neutrální" border="0" />
 
Je to snadné muž.Chci vám ukázat kroky, které jsem za stavět IR přijímač pro jeden z mých projektů

1.Je snadné vytvořit Receiver první, vysílač není důležité, jako přijímač, protože si můžete koupit vzdálený Control ready made s levnou cenu v souladu s IR-kód, který chcete použít ..."Infrared_protocols_samples.pdf" soubor vám zobrazí ukázky některých protocoles.

2.Pro příjem záležitosti musíte koupit modul Reciver, to je 3 nohy IC, ale becareful, musíte si zakoupit přijímač, který je kompatibilní s volbou frekvence vysílače, který bude přenášet modulované kód se specifickou frekvenci.Můžete si o něm vědět od allready postaven okruh na tento odkaz: ftopic138019.html

3.Before programování pomocí C, musíte vědět o nějaké prepherals v mikrokontroléru, a to zejména, vnější přerušení a internl Timer TMR0.

4.Výběr kvalitních uC, doporučuji použít PIC16F84, protože to je malý 18 piny, levné, snadno ovladatelný, vysoké schopnosti, a jsou k dispozici.

5.Používejte správné C lang. Navrhuji, CCS, z www.ccsinfo.com, který je jen pro PIC UCS, ale než budete moci dekódovat přichází signál do uC musíte nastavit externí přerušení, který je připojen s přijímačem IC a nastavení TMR0, které budete muset použít ke čtení v době nadcházejících známky nebo prostoru.

6.Můžete navštívit www.microchip.com vědět více o IR zařízení.

7.Hodně štěstí: D
Omlouváme se, ale musíte přihlásit a prohlížet tuto přílohu

 
Udělala jsem projekt, ve kterém relé může být provozováno prostřednictvím IR dálkového
ale jeden problém nastal, je, kdybychom stiskněte a podržte tlačítko dálkového relé přepne na off, aby na off, aby se k vypnutí
Chci musí fungovat stejně jako dálkové ovládání televizoru funkce off znamenat vypnutí a prostředky, které na něj dotírat přepínání
dokonce stisknuté a držte ho.To jen pracuje, když jsme opět uvolněte tlačítko a stisknutím jej opět dál.
Takže, prosím, může jakýkoli subjekt řekni mi řešení pro to jsem použil zpoždění, ale také to přepíná po zpožděný čas
Hardware, který jsem použil, je At89c52 uC.a Keil kompilátor a program je v "C" jazyk.
Příkladu: ---
případě 0xAC: onf1var -;
if (onf1var <= 0)
(
ONF1ON = ~ ONF1ON;
putchar (číslice [ONF1ON]); ONF1 ();
pro (i = 0; i <5500; i );
)
break;

neplatné ONF1 (void)
(
if (ONF1ON)
(
ONF1LED = 0;
)
if (! ONF1ON)
(
ONF1LED = 1;
)
pro (i = 0; i <5500; i );<img src="http://www.edaboard.com/images/smiles/icon_neutral.gif" alt="Neutrální" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_exclaim.gif" alt="Zvolání" border="0" />
 
Dostal jsem tento kód od některých, kde ..... RC5 dekodér napsána pro AVR.Doufám, že mohou být užitečné pro vás
Kód:/ *

rc5dec.c 0.2.0 - Přeruší poháněné RC5 dekodér pro Atmel AVR LC je.

Webová stránka: http://markh.de/rc5dec/

Copyright (C) 2003 OZ Haemmerling <rc5(at)markh.de>Tento program je svobodný software; můžete jej šířit a modifikovat

to za podmínek uvedených v GNU General Public License, vydávané

Free Software Foundation; buď verze 2 této licence, nebo

(Podle vašeho uvážení) kterékoli pozdější verze.Tento program je rozšiřován v naději, že bude užitečné,

ale BEZ JAKÉKOLIV ZÁRUKY; neposkytují se ani odvozené záruky

PRODEJNOSTI nebo VHODNOSTI PRO KONKRÉTNÍ ÚČEL.

GNU General Public License pro bližší informace.Byste měli obdržet kopii GNU General Public License

spolu s tímto programem, pokud ne, napište na Free Software

Foundation, Inc, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USAPředkonfigurované pro int1 (PD3) a Timer/Counter0.

* /# Include <inttypes.h>

# Include <avr/signal.h>

# Include <avr/interrupt.h>

# Include <avr/io.h>/ / Nastavit hodiny rychlost zde

# Define XTAL 1000000/ / Budete muset trochu experimentovat s touto

/ / V případě těžké poruchy, zkuste hodnot kolem 60

/ / Zkuste nepoužívat liché hodnoty (pro symetrické úroveň detekce)

# Define RC5RESAMPLE 11/ / Toto nastaví zcela automaticky všechny časovač hodnoty:

# Pokud XTAL <285000

# Define PRESCALEDIV 1

# Define TIMERCR (1 <<CS00)

# Elif XTAL <2300000

# Define PRESCALEDIV 8

# Define TIMERCR (1 <<CS01)

# Elif XTAL <18000000

# Define PRESCALEDIV 64

# Define TIMERCR (1 <<CS01) | (1 <<CS00)

# Jinak

# Define PRESCALEDIV 256

# Define TIMERCR (1 <<CS02)

# Endif

# Define RC5TIMERFIRST 0x100-((uint8_t) (XTAL / PRESCALEDIV * 0.0008890))

# Define RC5TIMERSECOND 0x100-((uint8_t) (XTAL / PRESCALEDIV * 0.0004445))

# Define RC5TIMERCANCEL 0x100-((uint8_t) (XTAL / PRESCALEDIV * 0.0008890))těkavé uint16_t rc5_code = 0;

volatile uint8_t rc5_first_half;SIGNAL (SIG_INTERRUPT1) (

/ * Externí přerušení handler

hrana z přijímače IR zjištěny.

Předpokládá se uprostřed trochu.

* /

uint8_t i;/ / Resample odfiltrovat bodce

if (MCUCR & (1 <<ISC10)) (

/ / Jsme čekali na náběžné hraně, takže zrušit, pokud budeme vzorek nízké

pro (i = RC5RESAMPLE, i, i -) if (! (PIND & (1 <PIND3 <))) return;

Else ()

/ / Naopak ...

pro (i = RC5RESAMPLE, i, i -) if ((PIND & (1 <PIND3 <))) return;

)TCNT0 = RC5TIMERSECOND; / / přednastavení časovače vzorku (OVF int) ve druhé polovině roku (3 / 4 bit času)

rc5_first_half = 0; / / další vzorku bude v druhé polovině roku

SBI (TIMSK, TOIE0), / / aby časovač OVF int

CBI (GICR, int1); / / vypnout ext int (tento handler)

)SIGNAL (SIG_OVERFLOW0) (

/ * Časovač přepad psovoda

Vzorek současná úroveň přerušení linky.

* /

statické uint16_t rc5_shift, rc5_temp;

statická uint8_t rc5_bit = 0, úroveň, first_level = 1;

uint8_t i = 0, temp;/ / Resample odfiltrovat bodce

pro (temp = RC5RESAMPLE, temp, temp -) if (PIND & (1 <<PIND3)) i ;

level = (i> ((uint8_t) (RC5RESAMPLE / 2)));if (rc5_first_half == 2) (

/ / Toto je timeout, zrušit provoz

goto rc5_cancel;

) Else if (rc5_first_half == 1) (

/ / Tento vzorek je vzat v první polovině bit (1 / 4 bit času)

first_level = úrovni; / / uložit aktuální úroveň

if (úroveň) CBI (MCUCR, ISC10) / / v současné době na vysoké úrovni, čekat na sestupnou hranu

jinak SBI (MCUCR, ISC10) / / v současné době na nízké úrovni, čekat na náběžnou hranu

rc5_first_half = 2; / / speciální kód, se rozumí: další OVF int je timeout

SBI (GICR, int1); / / mnohem lepší: čekat na okraj;)

TCNT0 = RC5TIMERCANCEL, / / na časovač OVF (přibližně 1 / 2 bit času) jsme měli dostat timeout

Else ()

/ / Tento vzorek je vzat v druhé polovině roku bit (3 / 4 bit času)

TCNT0 = RC5TIMERFIRST; / / další vzorek v první polovině roku (1 / 4 bit času) další bit

rc5_first_half = 1;

if (first_level! = hodnota) (

/ / Úrovních liší -> platí Manchester kódování bit detekován

if (! rc5_bit) (

/ / Toto je první bit, reset hodnot

rc5_temp = 0;

rc5_shift = 0x8000;

)

if (! úroveň) rc5_temp | = rc5_shift; / / nízké úrovni (low-aktivní), tak obchod '1 '

else if (rc5_bit <2) goto rc5_cancel, / / na vysoké úrovni ('0 'bit) jako startbit -> chyba

pokud ( rc5_bit == 14) (

/ / Příjem kompletní, stop provoz

rc5_code = rc5_temp;

goto rc5_cancel;

)

if (rc5_shift == 0x0100) rc5_shift = 0x0020;

jinak rc5_shift>> = 1;

Else ()

/ / Error v Manchesteru stream -> zrušit provoz

goto rc5_cancel;

)

)

návrat;rc5_cancel:

CBI (MCUCR, ISC10); / / sestupná hrana

SBI (GICR, int1); / / ext.
int.
povoleny

GIFR = (1 <<INTF1); / / jasné, nakonec nastavení ext.
int.
vlajka

CBI (TIMSK, TOIE0); / / vypnout časovač int.

first_level = 1; / / jako další ext.
int.
se objeví na sestupnou hranu, převzít první úroveň jako vysoká

rc5_bit = 0;

)neplatné rc5_init (void) (

/ * Init pro ext.
int.
a stopky.

volání tentokrát pro aktivaci RC5 dekodér.

* /

TCCR0 = TIMERCR;

CBI (DDRD, PD3); / / pin je vstup

CBI (PORTD, PD3); / / pullup zdravotním postižením (přijímač má definován výstup)

CBI (TIMSK, TOIE0); / / časovač OVF zdravotně postižené.
dostane povoleny ext.
int.

SBI (MCUCR, ISC11); / / ext.
int.
aktivována sestupnou hranu

CBI (MCUCR, ISC10);

GIFR = (1 <<INTF1); / / jasný ext.
int.
vlajka

SBI (GICR, int1); / / povolit ext.
int.

)int main (void) (

/ / Příklad hlavní program:

rc5_init (); / / aktivovat RC5 detekciDDRB = 0xFF; / / PORTB je výstup

PORTB = 0x00, / / Všechny čepy s nízkým/ / Start hlavní smyčky

pro (;) (

if (rc5_code) (

/ / ... Udělat nějakou akci zde ...

PORTB = (uint8_t) rc5_code; / / výstup low-byte na PORTB

rc5_code = 0; / / jasné kód

)

)

)/ / EOF

 
Praful napsal:

Udělala jsem projekt, v němž může relé je řízena prostřednictvím IR dálkového ale jeden problém nastal, je, kdybychom stiskněte a podržte tlačítko dálkového relé přepne na off, aby na off, aby na off ...
 

Welcome to EDABoard.com

Sponsor

Back
Top