Thông báo

Collapse
No announcement yet.

Đã ai làm mạch điều khiển từ xa Quạt điện chưa?

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • #31
    Nguyên văn bởi minhtienbk
    dùng IC nhận IR,đưa vào clock của 4017 ,nó sẽ dời bit nếu bạn nhấn nút ;chẳng hạn bit 1 dang ở chân A của nó ,khi có gai lên của xung clock thì nó dời wa chân B ,cứ như vậy dúng ko ? ,vậy thì chân A dể hở ,chân B nối vào relay 1 ,relay nay sẽ dk số 1 của quạt ,chân B là relay 2 ,số 2 của quạt ,chân C là số 3 ,chân 4 nối với RESET ;
    giả sử bit 1 dang o chan A <wat tắt>,bạn nhấn nút ,nó chuyển bit 1 sang chân B < quạt chạy tốc độ 1> ,nhấn cái nữa ,bit 1 chuyển sang chân C ,tốc độ 2 , tương tự cho tốc độ 3 , bạn nhấn cái nữa ,4017 reset , chuyển về chân 1 ,quạt tắt,,,,,,,,rất đơn giản phải ko , chỉ phiền cái bạn phải nhấn vài lần ,nhưng mạch rẻ tiền ,khỏi mắc công lập trình ,encode,decode.... lằng nhằng
    Chào anh bạn, nếu giả sử như quạt đang chạy, nếu có ai bật tắt TV dùng Control remote thì sao nhi? Thông thường 1 lần bấn nút IR controle remote của TV khoảng 22 bít nếu tương đương khoảng 22 cái gai xung của bạn thì sao nhi?

    Theo tui, cách các bạn dùng IR receiver + Microcontroller + Relays là hợp lý với khả năng thay đổi linh hoạt IR control remote. Trong applications của AVR có 1 application dùng IR để điều khiển
    http://www.atmel.com/dyn/resources/p...ts/DOC1473.PDF

    Có ai có thể convert cái đoạn code trong file trên thì convert cho bà con dùng nha, thành code cho 8051, PIC
    Last edited by dientu.net; 28-07-2006, 04:51.

    Comment


    • #32
      Bao nhiêu người dùng rồi, đâu có gì đâu. Nên anh cứ yên râm dùng mạch của TV đi, không cần thiết phải dùng IR đâu. Còn nếu anh dư tiền, dư thời gian thì làm IR cũng tốt vì còn phải cải tiến lại cái remote nữa.

      Comment


      • #33
        các bác ơi, cho em xin cái mạch đi, em tìm mãi không thấy.
        Mà các bác định đặt ở chỗ nào thế, để ra ngoài trẻ con nó nghịch hỏng mất, chả lẽ lại khoan cái lỗ để lòi cái đèn ra àh.

        Comment


        • #34
          ca bac nen dung cap ic 2249 & 2248 , loai nay ban rat thong dùng nhat co the lam cai dieu khieu tu xa hong ngoai, 8 kenh, so do o datasheet co do
          học học nữa và học khi...... đến chết

          Comment


          • #35
            nều dùng công nghệ insteon thì ko chỉ đk dc quạt điện mà có thể điều khiển dc cả chục thiết bi khác
            SHARE KHO PHIM LỚN

            Comment


            • #36
              Mach Nguon

              T Dang Can 1 Nguon Chuyen Tu Qua Dc Ma Khong Dung Bien Ap , Nho Cac Huynh Chi Cho .

              Comment


              • #37
                Nguyên văn bởi dientu.net
                Thông thường 1 lần bấn nút IR controle remote của TV khoảng 22 bít nếu tương đương khoảng 22 cái gai xung của bạn thì sao nhi?
                Thông thường thì số bit < hơn con số 22 bit vì để tiết kiệm nguồn PIN.
                Các bộ đktx của tivi thông dụng như:
                1-Sony là 12 bit chuẩn tỷ lệ độ rộng xung.
                2-Phillips là 14 bit chuẩn RC5.
                3-Panasonic là 22 bit chuẩn tỷ lệ độ rộng xung.
                4-Daewoo khoảng 16 bit chuẩn tỷ lệ độ rộng xung.
                5-JVC khoảng 15 bit chuẩn tỷ lệ độ rộng xung.
                ....

                Comment


                • #38
                  Em vừa làm một Project bằng Psoc có thể phân tích dược cách mã hóa của tất cả các loại điều khiển từ xa. Bác nào quan tâm???

                  Comment


                  • #39
                    Bạn chỉ cần mua con ic này là mọi chuyện đâu vào đó, mạch điện nhỏ gọn
                    Attached Files

                    Comment


                    • #40
                      thêm con ic này nữa

                      Comment


                      • #41
                        các bạn xem file này nha
                        Attached Files

                        Comment


                        • #42
                          đã ai làm điều khiển tu xa quat chua

                          dung 74ls247 cac bac khong thay co mot diem yeu la hien so 9 va so 6 mat net trong xau qua.em biet co con khac giai ma hay hon1
                          >:D<

                          Comment


                          • #43
                            Hic hic. từ đầu tragn đến giờ chả thấy dc cái hình nào cả . hay mình em ko xem dc nhỉ ?

                            em thấy có cái code này . các bác tham khảo rùi chỉ em cách dùng với .

                            /*
                            A simple RC5 decoder

                            the demodulator diode is connected to P3.2 (INT0)
                            and T0 is used to recieve the RC5 bits
                            The reload values are based on a 12 MHZ XTAL
                            and on a programmable remote control (EasyTip1 code 718)
                            This remote control uses a slightly differnd timming
                            so for standart timming the reload values have to be adjusted

                            I wrote this because I had to emulate a SAA3049
                            which is discontinued

                            more infos and some asm code at:
                            http://www.ustr.net/infrared/infrared1.shtml

                            */
                            #include "AT892051.h"


                            #define UINT8 unsigned char
                            #define UINT16 unsigned int
                            #define UINT32 unsigned long
                            #define INT8 signed char
                            #define INT16 signed int
                            #define INT32 signed long

                            #define HighB(value) ((value >> 8) & 0xFF)
                            #define LowB(value) (value & 0xFF)

                            #define RELOAD -440 // Timming for EasyTip1 Code718
                            #define FIRST_RELOAD -870 // and XTAL = 12 MHZ


                            #define _TOGGLE 0x80 // Toggle Bit
                            #define _START2 0x40
                            #define _START1 0x20



                            typedef struct _BYTE
                            {
                            UINT8 b3; /*msb */
                            UINT8 b2;
                            UINT8 b1;
                            UINT8 b0; /*lsb */
                            }BYTES;

                            typedef union _LONGINT
                            {
                            UINT32 l;
                            BYTES b;
                            }LONGUNION;


                            // global vars
                            bit bRC5valid; // 1 after RC5 code was recieved

                            UINT8 command; // command and subaddress
                            UINT8 subaddress;

                            UINT8 slopecount; // counter for RC5 slopes
                            LONGUNION shiftreg; // shiftregister for raw RC5 data


                            //************************************************** **************
                            // Interrrupt for reciever diode
                            // this IRQ starts the meassurement Timer
                            //************************************************** **************
                            void RC5StartIrq(void) interrupt IE0_VECTOR
                            {
                            EX0=0; // disable the IRQ
                            slopecount=27; // we need 27 slopes
                            TH0=HighB(RELOAD); // first reload
                            TL0=LowB(RELOAD);
                            TR0=1; // start messurement Timer
                            TF0=0;
                            ET0=1; // Timer0 Irq
                            }



                            // ************************************************** ************
                            // Timerinterrupt,
                            // after 27 slopes the shiftreg contains the RC5 value
                            // und bRC5Valid goes to 1
                            // ************************************************** ************
                            void TimingIrq(void) interrupt TF0_VECTOR using 1
                            {
                            bit bLevel;

                            bLevel= P3_2; // read level
                            while (slopecount) // max 27 slopes
                            {
                            TR0=0; // T0 stopp
                            TH0=HighB(FIRST_RELOAD); // new reload value
                            TL0=LowB (FIRST_RELOAD);
                            TR0=1; // T0 start
                            if (bLevel) // add the level to the shift value
                            {
                            shiftreg.b.b0=shiftreg.b.b0 | 1;
                            }
                            shiftreg.l = shiftreg.l << 1;
                            slopecount--;
                            return;
                            }
                            TR0=0; // T0 stop
                            ET0=0; // Timer Irq off
                            bRC5valid=1; //
                            }


                            //************************************************** *****
                            // decodes the recieved value
                            // and sets command and subbaddress
                            // returns 1 if no error occures
                            // else 0
                            //************************************************** *****
                            bit DecodeRC5Code(void)
                            {
                            UINT8 i;
                            UINT8 b;

                            command=0;
                            subaddress=0;
                            shiftreg.l = shiftreg.l >> 1;

                            for (i=0; i < 6 ; i ++) // first 6 Bit command
                            {
                            b=shiftreg.b.b0 & 0x03;
                            if (b==0x02)
                            command = command | 0x40;
                            else if (b==0x01)
                            command = command & ~0x40;
                            else return 0;
                            command = command >> 1;
                            shiftreg.l = shiftreg.l >> 2;
                            }

                            for (i=0;i < 5;i++) // then 5 Bit subaddress
                            {
                            b=shiftreg.b.b0 & 0x03;
                            if (b ==0x02)
                            subaddress = subaddress | 0x20;
                            else if (b==0x01)
                            subaddress = subaddress & ~0x20;
                            else return 0;
                            subaddress = subaddress >> 1;
                            shiftreg.l = shiftreg.l >> 2;
                            }

                            b=shiftreg.b.b0 & 0x03;
                            if (b==0x02) // Toggle Bit
                            command = command | _TOGGLE;
                            else if (b==0x01)
                            command = command & ~_TOGGLE;
                            else return 0;

                            shiftreg.l = shiftreg.l >> 2;
                            b=shiftreg.b.b0 & 0x03; // Startbit 2
                            if (b==0x02)
                            command = command & ~_START2; // inverted to command
                            else if (b==0x01) // for extented RC5 (7 Bit Commands)
                            command = command | _START2;
                            else return 0;

                            shiftreg.l = shiftreg.l >> 2;
                            b=shiftreg.b.b0 & 0x03; // Startbit 1
                            if (b==0x02)
                            subaddress = subaddress | _START1;
                            else if (b==0x01)
                            subaddress = subaddress & ~_START1;
                            else return 0;

                            return 1; // return valid
                            }
                            //************************************************** *****
                            // ext.Int0 in slope mode

                            //************************************************** *****
                            void InitEx0Irq(void)
                            {
                            EX0=1;
                            IT0=1;
                            IE0=0;
                            }

                            //************************************************** *****
                            // both timer in 16 Bit mode
                            // T0 is vor RC5 bittime
                            //************************************************** *****
                            void InitTimer(void)
                            {
                            TMOD = 0x11;
                            }



                            void main(void)
                            {
                            InitTimer();
                            InitEx0Irq(); // ReciverInterupt

                            shiftreg.l=0x02; // startvalue
                            EA=1;


                            while (1)
                            {
                            if (bRC5valid) // if we got a code
                            {
                            bRC5valid=0;
                            if (DecodeRC5Code()) // then test the shiftreg
                            {
                            // here command + subaddress
                            // has a valid RC5 code
                            }
                            shiftreg.l=0x02; // restart the reciever
                            IE0=0;
                            EX0=1;
                            }
                            }
                            }

                            // here command + subaddress
                            // has a valid RC5 code

                            chỗ này xong chả bit làm rì T.T
                            Hok mang bút sao ký dc !

                            Comment


                            • #44
                              Em đang làm mạch điều khiển hẹn giờ tắ và mở bóng đèn bằng con 89c51 hay con 89c2051. Sơ đồ khối gồm 4 nút nhấn, thời gian hẹn giờ được hiển thị ra led 7 đoạn,đồng thời em cũng làm điều khiển bằng hồng ngoại..anh nào làm cái này rồi thì giúp em với..em cẳm ơn nhìu nhìu

                              Comment


                              • #45
                                Quạt treo tường thì dùng con Tricac nào điều khiển thì phù hợp nhỉ???
                                Quang Nhat
                                ---------------------------------------
                                Yahoo :quangnhat85ls
                                Mail :
                                Nhận thiết kế và ép nhựa cho đồ điện tử

                                Comment

                                Về tác giả

                                Collapse

                                skilroad Tìm hiểu thêm về skilroad

                                Bài viết mới nhất

                                Collapse

                                Đang tải...
                                X