Môže mi niekto pomoct, aby sa

P

Praful

Guest
Môže mi niekto pomoct, aby sa program Pripojenie vzdialenej rovnako ako tlačidlo prevádzkovanej LED on / off regulátor s použitím jazyka C a AT89c51 a Akékoľvek RC-5 kódom diaľkového ovládača.Pretože som začiatočník ma v projektoch UC teraz som m učia v 2. roku.
1) Ja neviem, ako sa k tlačidla s oneskorením debounce.
2) Ako priradiť vzdialené spustenie kódu na niektoré funkcie.
Prosím, pomôžte mi
Poďakovaním vopred
Prafulk25 (at) rediffmail.com<img src="http://www.edaboard.com/images/smiles/icon_neutral.gif" alt="Neutrálny" border="0" />Ospravedlňujeme sa, ale musíte prihlásiť a prezerať túto prílohu

 
Urobte to v dvoch krokoch.Prepínače a LED by mala byť jednoduchá.Opustiť diaľkové ovládanie časť do druhej fázy.Nie je to jednoduché pre začiatočníka.Akonáhle sa dostanete prepínače a LED do práce, potom skúste na RC.Existuje mnoho internetových stránok, ktoré popisujú to.

 
Najprv Dík Techie a Seadolphine2000, ukázať váš záujem, aby mi pomohol.
Ok, teraz detaily sú Len chcem prepnúť viedol pomocou UC ako AT89c51
s dotykom tlačidla a tiež so vzdialeným, ale podľa techie Po prvé chcem, aby on / off LED diódy pomocou klávesnice, ako je uvedené v poslednom obrázku, ktorý som poslal pred alebo, ako je uvedené nižšie.
Prosím pošlite mi program v "C" jazyk môže spôsobiť môžem študovať.
Poďakoval vám všetkým .......
prafulk25 (at) rediffmail.com
Ospravedlňujeme sa, ale musíte prihlásiť a prezerať túto prílohu

 
I dont mať hotový program pre vás.Ale som si istý, či nemáte nejaké štúdie sami, mali by ste byť schopní napísať ľahko.

 
<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álny" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Plač alebo veľmi smutný" border="0" />
 
ktorý kód sa používa pre IR?Môžem poradiť RC5 (standart kódovanie Sony vzdialená).Je to veľmi jednoduché.Ak zadáte údaje vám môžem poslať kód v C lang.a PICBASIC

 
choď na http://www.winpicprog.co.uk a čítať PIC cvičeniach.nájdete všetko, čo potrebujete (klávesnica, LED diódy, Sony diaľkové ovládanie kódy apod)

 
Vážení ikarakaya,
kód RC-5 diaľkové, ktoré som, už sú 38 DE, 22 DE, 22 CE.Som veľmi vďačný, ak u poslať mne taký program v "C" jazyk pre AT89c51
Poďakovaním znova ...........

<img src="http://www.edaboard.com/images/smiles/icon_neutral.gif" alt="Neutrálny" border="0" />
 
Je to ľahké muž.Chcem vám ukázať kroky, ktoré som za stavať IR prijímač pre jeden z mojich projektov

1.Je ľahké vytvoriť Receiver prvý, vysielač nie je dôležité, ako prijímač, pretože si môžete kúpiť vzdialený Control ready made s lacnou cenu v súlade s IR-kód, ktorý chcete použiť ..."Infrared_protocols_samples.pdf" súbor vám zobrazí ukážky niektorých protocoles.

2.Pre príjem záležitosti musíte kúpiť modul Reciver, to je 3 nohy IC, ale becareful, musíte si zakúpiť prijímač, ktorý je kompatibilný s voľbou frekvencie vysielača, ktorý bude prenášať modulované kód sa špecifickú frekvenciu.Môžete si o ňom vedieť od allready postavený okruh na tento odkaz: ftopic138019.html

3.Before programovania pomocou C, musíte vedieť o nejakej prepherals v mikrokontroléru, a to najmä, vonkajšie prerušenie a internl Timer TMR0.

4.Výber kvalitných UC, odporúčam použiť PIC16F84, pretože to je malý 18 piny, lacné, ľahko ovládateľný, vysoké schopnosti, a sú k dispozícii.

5.Používajte správne C lang. Navrhujem, CCS, z www.ccsinfo.com, ktorý je len pre PIC UCS, ale ako budete môcť dekódovať prichádza signál do UC musíte nastaviť externé prerušenia, ktorý je pripojený s prijímačom IC a nastavenia TMR0, ktoré budete musieť použiť na čítanie v čase nadchádzajúcich známky alebo priestoru.

6.Môžete navštíviť www.microchip.com vedieť viac o IR zariadení.

7.Veľa šťastia: D

 
Urobila som projekt, v ktorom relé môže byť prevádzkované prostredníctvom IR diaľkového
ale jeden problém nastal, je, keby sme stlačte a podržte tlačidlo diaľkového relé prepne na off, aby na off, aby sa k vypnutiu
Chcem musí fungovať rovnako ako diaľkové ovládanie televízora funkcia off znamenať vypnutie a prostriedky, ktoré na neho dotírat prepínanie
dokonca stlačené a držte ho.To len pracuje, keď sme opäť uvoľnite tlačidlo a stlačením ho opäť ďalej.
Takže, prosím, môže akýkoľvek subjekt povedz mi riešenie pre to som použil meškanie, ale tiež to prepína po oneskorený čas
Hardware, ktorý som použil, je At89c52 UC.a Keil kompilátor a program je v "C" jazyk.
Príkladu: ---
prípade 0xAC: onf1var -;
if (onf1var <= 0)
(
ONF1ON = ~ ONF1ON;
putchar (číslice [ONF1ON]); ONF1 ();
pre (i = 0; i <5500; i );
)
break;

neplatné ONF1 (void)
(
if (ONF1ON)
(
ONF1LED = 0;
)
if (! ONF1ON)
(
ONF1LED = 1;
)
pre (i = 0; i <5500; i );<img src="http://www.edaboard.com/images/smiles/icon_neutral.gif" alt="Neutrálny" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_exclaim.gif" alt="Zvolanie" border="0" />
 
Dostal som tento kód od niektorých, kde ..... RC5 dekodér napísaná pre AVR.Dúfam, že môžu byť užitočné pre vás
Kód:/ *

rc5dec.c 0.2.0 - Preruší poháňané RC5 dekodér pre Atmel AVR LC je.

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

Copyright (C) 2003 OZ Haemmerling <rc5(at)markh.de>Tento program je slobodný softvér; môžete ho šíriť a modifikovať

to za podmienok uvedených v GNU General Public License, vydávané

Free Software Foundation; buď verzie 2 tejto licencie, alebo

(Podľa vášho uváženia) ktorejkoľvek neskoršej verzie.Tento program je rozširovaný v nádeji, že bude užitočné,

ale BEZ AKEJKOĽVEK ZÁRUKY; neposkytujú sa ani odvodené záruky

PREDAJNOSTI alebo VHODNOSTI PRE KONKRÉTNY ÚČEL.

GNU General Public License pre bližšie informácie.By ste mali dostať kópiu GNU General Public License

spolu s týmto programom, ak nie, napíšte na Free Software

Foundation, Inc, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USAPredkonfigurované pre int1 (PD3) a Timer/Counter0.

* /# Include <inttypes.h>

# Include <avr/signal.h>

# Include <avr/interrupt.h>

# Include <avr/io.h>/ / Nastaviť hodiny rýchlosť tu

# Define XTAL 1000000/ / Budete musieť trochu experimentovať s touto

/ / V prípade ťažkej poruchy, skúste hodnôt okolo 60

/ / Skúste nepoužívať nepárne hodnoty (pre symetrické úroveň detekcie)

# Define RC5RESAMPLE 11/ / Toto nastaví celkom automaticky všetky časovač hodnoty:

# Ak XTAL <285000

# Define PRESCALEDIV 1

# Define TIMERCR (1 <<CS00)

# Elif XTAL <2300000

# Define PRESCALEDIV 8

# Define TIMERCR (1 <<CS01M)

# Elif XTAL <18000000

# Define PRESCALEDIV 64

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

# Inak

# 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))prchavé uint16_t rc5_code = 0;

volatile uint8_t rc5_first_half;SIGNAL (SIG_INTERRUPT1) (

/ * Externé prerušenie handler

hrana z prijímača IR zistené.

Predpokladá sa uprostred trochu.

* /

uint8_t i;/ / Resample odfiltrovať bodce

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

/ / Sme čakali na nábežnej hrane, takže zrušiť, ak budeme vzorka nízke

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

Else ()

/ / Naopak ...

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

)TCNT0 = RC5TIMERSECOND; / / prednastavenie časovača vzorky (OVF int) v druhej polovici roka (3 / 4 bit času)

rc5_first_half = 0; / / ďalšie vzorky bude v druhej polovici roka

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

CBI (GICR, int1); / / vypnúť ext int (tento handler)

)SIGNAL (SIG_OVERFLOW0) (

/ * Časovač prepad psovoda

Vzorka súčasná úroveň prerušenia linky.

* /

statické uint16_t rc5_shift, rc5_temp;

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

uint8_t i = 0, temp;/ / Resample odfiltrovať bodce

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

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

/ / Toto je timeout, zrušiť prevádzku

goto rc5_cancel;

) Else if (rc5_first_half == 1) (

/ / Táto vzorka je vzatý v prvej polovici bit (1 / 4 bit času)

first_level = úrovni; / / uložiť aktuálnu úroveň

if (úroveň) CBI (MCUCR, ISC10) / / v súčasnosti na vysokej úrovni, čakať na zostupnú hranu

inak SBI (MCUCR, ISC10) / / v súčasnosti na nízkej úrovni, čakať na prednú hranu

rc5_first_half = 2; / / špeciálny kód, sa rozumie: ďalšie OVF int je timeout

SBI (GICR, int1); / / oveľa lepšie: čakať na okraj;)

TCNT0 = RC5TIMERCANCEL, / / na časovač OVF (približne 1 / 2 bit času) sme mali dostať timeout

Else ()

/ / Táto vzorka je vzatý v druhej polovici roka bit (3 / 4 bit času)

TCNT0 = RC5TIMERFIRST; / / ďalšiu vzorku v prvej polovici roka (1 / 4 bit času) ďalšie bit

rc5_first_half = 1;

if (first_level! = hodnota) (

/ / Úrovniach líšia -> platí Manchester kódovanie bit detegovaný

if (! rc5_bit) (

/ / Toto je prvý bit, reset hodnôt

rc5_temp = 0;

rc5_shift = 0x8000;

)

if (! úroveň) rc5_temp | = rc5_shift; / / nízkej úrovni (low-aktívny), tak obchod '1 '

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

ak ( rc5_bit == 14) (

/ / Príjem kompletný, stop prevádzku

rc5_code = rc5_temp;

goto rc5_cancel;

)

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

inak rc5_shift>> = 1;

Else ()

/ / Error v Manchestri stream -> zrušiť prevádzku

goto rc5_cancel;

)

)

návrat;rc5_cancel:

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

SBI (GICR, int1); / / ext.
int.
povolené

GIFR = (1 <<INTF1); / / jasné, nakoniec nastavenia ext.
int.
vlajka

CBI (TIMSK, TOIE0); / / vypnúť časovač int.

first_level = 1; / / ako ďalší ext.
int.
sa objaví na zostupnú hranu, prevziať prvá úroveň ako vysoká

rc5_bit = 0;

)neplatné rc5_init (void) (

/ * Init pre ext.
int.
a stopky.

volania tentoraz pre aktiváciu RC5 dekodér.

* /

TCCR0 = TIMERCR;

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

CBI (PORTD, PD3); / / pullup zdravotným postihnutím (prijímač má definovaný výstup)

CBI (TIMSK, TOIE0); / / časovač OVF zdravotne postihnutých.
dostane povolené ext.
int.

SBI (MCUCR, ISC11); / / ext.
int.
aktivovaná zostupnú hranu

CBI (MCUCR, ISC10);

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

SBI (GICR, int1); / / povoliť ext.
int.

)int main (void) (

/ / Príklad hlavný program:

rc5_init (); / / aktivovať RC5 detekciiDDRB = 0xFF; / / PORTB je výstup

PORTB = 0x00, / / Všetky čapy s nízkym/ / Start hlavnej slučky

pre (;) (

if (rc5_code) (

/ / ... Urobiť nejakú akciu tu ...

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

rc5_code = 0; / / jasné kód

)

)

)/ / EOF

 
Praful Napísal:

Urobila som projekt, v ktorom môže relé je riadená prostredníctvom IR diaľkového ale jeden problém nastal, je, keby sme stlačte a podržte tlačidlo diaľkového relé prepne na off, aby na off, aby na off ...
 

Welcome to EDABoard.com

Sponsor

Back
Top