| Forfatter | Besked |
|---|
tomikan
Tilsluttet: 09 oktober 2006 Stillinger: 13
| 03 december 2006 22:11 IR lys Displaylys | | |
|
| | Jeg ønsker at opbygge en IR lys dimmer med pic microcontroller. For dimming Jeg vil gerne bruge et tv-fjernbetjening. PIC er nødt til at læse koden og ændre lysstyrken på lys. Læsning af kode tager en masse tid (25ms) og lyset puls, når de modtager koden. Er der nogen ved, hvordan de skal løse dette problem? |
|
| Tilbage til toppen | |
 |
Jaspaa
Tilsluttet: 09 januar 2005 Stillinger: 12 Hjulpet: 1
| 04 december 2006 0:43 Re: IR lys Displaylys | | |
|
| Jeg ved ikke helt, hvad dit problem er, men jeg lavede et kredsløb, gør omtrent det samme, for nogen tid siden
Det vigtigste princip er at have en høj prioritet funktion kontrollerer Triac. Nemmeste måde at gøre dette på er ved hjælp af en timer afbryder. Og en anden funktion gør IR-dekodning. Den Triac kørsel funktion læses pulsen timing fra et register, som IR-modtager og afkode funktion kan justere når det afkodede data fra fjernbetjeningen. Afkodning af din IR signalet burde ikke tage længere så det tager fjernbetjeningen til at sende det til fulde. Bare undersøge protokol, der bruges af din TV-fjernbetjeningen for timing.
Jeg fik mit arbejde i mindre end en dag. Jeg er bestemt ikke en dygtig programmør, så koden var crap, men det fungerede fint. Brug et højt sprog såsom C vil arbejde for at skabe en hurtig dekoder, for Triac timing Jeg vil foreslå skriftligt ASM.
Held og lykke! |
|
| Tilbage til toppen | |
 |
VSMVDD
Tilsluttet: 12 juni 2005 Posts: 557 Hjulpet: 55
| 04 december 2006 0:52 Re: IR lys Displaylys | | |
|
| | tomikan wrote: | | Jeg ønsker at opbygge en IR lys dimmer med pic microcontroller. For dimming Jeg vil gerne bruge et tv-fjernbetjening. PIC er nødt til at læse koden og ændre lysstyrken på lys. Læsning af kode tager en masse tid (25ms) og lyset puls, når de modtager koden. Er der nogen ved, hvordan de skal løse dette problem? |
Deres baudhastighed til com mellem er for lavt til de data pakkestørrelse
Deres send / recieve data er for lang og fuld af rodet ikke nødvendige for at com
25ms er en levetid
Jeg synes dit projekt har et problem
post it
så vi kan hjælpe med yderligere |
|
| Tilbage til toppen | |
 |
tomikan
Tilsluttet: 09 oktober 2006 Stillinger: 13
| 04 december 2006 19:11 Re: IR lys Displaylys | | |
|
| Her er den kode.
# include <16F877.h> # sikringer XT, NOWDT, NOPROTECT, NOLVP # brug forsinkelse (ur = 4000000) # bruge RS232 (baud = 9600, xmit = PIN_C6, AN = PIN_C7) # include <stdio.h> # include "rc5decode.h"
# byte Portb = 0x06 # byte TMR = 0x01
# byte Portb = 0x06 # define IR_IN portb, 4 / / 0
int save_w; # lokalisere save_w = 0x7f int save_status; # lokalisere save_status = 0x20
# byte status = 3
/*--- Globals ---*/ int kommando; / / usignerede CHAR kommando; usignerede CHAR adresse; usignerede CHAR temp; usignerede CHAR timer; usignerede CHAR rc5valid;
int tipka = 32; int dk;
int i = 0, j = 0, a = 0, b = 0, io = 0; int x = 0, t3, t2; int tomi = 0; usignerede int vred = 0;
void pavza () ( # ASM
MOVLW 33 MOVWF T3 MOVF vred, W MOVWF T2 PAV1: DECFSZ T3, F GOTO PAV1 MOVLW 33 MOVWF T3 DECFSZ T2, F GOTO PAV1 # endasm )
/ / # define PORTBIT (adr, bit) ((usignerede) (& adr) * 8 (bit)) / / statisk bit IR_PIN @ PORTBIT (GPIO, 2);
/*--- Rc5 afkode funktion ---*/ / / static void afbryder / /
usignerede CHAR rc5decode (void) ( # ASM
MOVWF save_w SWAPF status, W BCF status, 5 BCF status, 6 MOVWF save_status
;------ Kalibrere timing
BCF 3,5; vælge bank 0 clrf TMR; starte timeren opkald Wlow; få pulsen længde opkald Whigh
btfsc TMR, 7; test for timeren overflow goto codeError; bail out
movf TMR, w; gemme puls længde clrf TMR; starte timeren
movwf timer; tage pulsen længde, movwf temp; gemme det BCF 3,0; klart bære rrf temp, f; kløft med 2 BCF 3,0; klart bære rrf temp, f; kløft med 4 movf temp, w, og trække fra for at få SUBWF timer, f; 3 / 4 puls længde
movlw 0x0c movwf temp; init bit counter
;------ Vente til starten af data
nextBit: movf timer, w; vente 3 / 4 puls længde SUBWF TMR, w btfss 3,2; tage et kig goto nextBit
;------ Starten af data stream
btfss IR_IN; hvis dens høje goto waitlow; gonna være et 0
;------ Vente på høje 1
opkald Whigh; hvis dets lave BSF 3,0; gonna være en 1 goto ur
;------ Vente for lavt 0
waitlow: samtalepris Wlow BCF 3,0; gonna være et 0
;------ Ur data
Ur: clrf TMR; genstarte timer rlf kommando, f; gemme bit rlf adresse, f decfsz temp, f; gjort alt bits? goto nextBit
;------ Få systemet adresse, toggle bit og kommando-kode
movf kommando, w; kopi lave byte movwf temp; i temp rlf temp, f; behovet for at skifte 2 bits rlf adresse, f; i adressen rlf temp, f rlf adresse, f; system adresse er 5 bits
movlw 0x3f; maske system adresse toggle bit andwf adresse, f
movlw 0x3f; maske kommando kode andwf kommando, f; kommando kode er 6 bits goto rc5ok; gjort ok
;------ Vente, mens lav
Wlow: btfsc TMR, 7; test for timeren overflow tilbagevenden; bail out btfss IR_IN goto Wlow tilbagevenden
;------ Vente mens høje
Whigh: btfsc TMR, 7; test for timeren overflow tilbagevenden; bail out btfsc IR_IN goto Whigh tilbagevenden
rc5ok: movlw 0x01 movwf rc5valid goto rc5end codeError: clrf rc5valid rc5end: NOP
SWAPF save_status, W MOVWF status SWAPF save_w, F SWAPF save_w, W
# endasm tilbagevenden rc5valid; )
# int_ext ISR () (
if (vred == 0) goto ss; output_low (pin_a1); if (vred == 180) goto ns;
pavza ();
ss: output_high (pin_a1); ns: x = 1;
)
# int_rb isr_i (void) (
if (rc5decode ()) ( adresse & = 0x1F;
if (command == 32) a = 1; if (command == 33) b = 1; rc5valid = 0; ) )
void Main (void) ( set_tris_b (0xff); ext_int_edge (h_to_l); setup_timer_0 (RTCC_DIV_128 | RTCC_internal); port_b_pullups (true);
enable_interrupts (globale); enable_interrupts (int_ext); enable_interrupts (int_rb);
a = 0; i = 0; j = 0; x = 0; io = 0; vred = 180;
gøre (
hvis (a == 1) ( a = 0; delay_ms (200);
if ((a == 0) & & (vred == 180)) (vred = 0; a = 0; goto nap;)
po: if ((a == 1)) (vred = vred-10, a = 0; if (vred ==- 10) vred = 0;)
delay_ms (100);
hvis (a == 1) goto po; nap: delay_us (1); )
if (b == 1) ( b = 0; delay_ms (200);
if ((b == 0)) (vred = 180 b = 0; goto nap1;)
po1: hvis ((b == 1)) (vred = vred 10 b = 0; if (vred == 190) vred = 180;)
delay_ms (100);
if (b == 1) goto po1; nap1: j = 1; )
) mens (1);
)
/*--- End of File ---*/ |
|
| Tilbage til toppen | |
 |
Google AdSense

| 04 december 2006 19:11 Annoncer | | |
|
|
|
|
| Tilbage til toppen | |
 |
manish12
Tilsluttet: 21 november 2006 Posts: 992 Hjulpet: 31
| 05 december 2006 7:44 Re: IR lys Displaylys | | |
|
| Du kan også ref anvendelsen notat fra mikrochip for rc5 fjernkørsel analyzer for klar anden mulighed. Efter dette er du nødt til at arbejde med hv være forsigtig. |
|
| Tilbage til toppen | |
 |
microsim
Tilsluttet: 15. juli 2007 Stillinger: 4
| 19 jul 2007 9:18 Re: IR lys Displaylys | | |
|
| Der var et projekt, der offentliggøres på th web, jeg arbejdede med, som blev offentliggjort på internettet for forfatteren William Boucher, hans e-mail Boucher (at) mnsi.net
Jeg er ikke i stand til at åbne sit hjem side, (http://www.mnsi.net/ ~ Boucher / emporium.htm) Det synes han lukket det, kan du kontakte ham for at give dig den fulde artikel.
tak, jeg har tegningerne og Skema, men jeg er nødt til at se dem først! Jeg har ingen tid.
Sam |
|
| Tilbage til toppen | |
 |
kelvin_foru
Tilsluttet: 19. juli 2007 Stillinger: 5 Hjulpet: 1
| 19 jul 2007 11:18 IR lys Displaylys | | |
|
| Der er et websted, der har et projekt om fjernbetjening kontrollerende 6devices og en fan med hastighedskontrol, der kan benyttes som Displaylys, men kredsløbet er baseret på Atmel microcontroller.
www.8051projects.info/projects.asp
Kelvin |
|
| Tilbage til toppen | |
 |
jamenyang
Tilsluttet: 14. juli 2007 Stillinger: 12
| 23 jul 2007 5:18 IR lys Displaylys | | |
|
| | god idé, du er stor |
|
| Tilbage til toppen | |
 |
otuzsubat
Tilsluttet: 07 juni 2004 Stillinger: 45 Hjulpet: 2 Beliggenhed: Istanbul, Tyrkiet
| 25 jul 2007 12:55 Re: IR lys Displaylys | | |
|
| h ** p: / / innovexpo.itee.uq.edu.au/2001/projects/s369398/index.html
det er et komplet projekt om IR Remote Room lyskontakt |
|
| Tilbage til toppen | |
 |
segmex
Tilsluttet: 25. oktober 2006 Stillinger: 220 Hjulpet: 6
| 01 sep 2007 14:34 IR lys Displaylys | | |
|
| | tak for links! |
|
| Tilbage til toppen | |
 |