Thông báo

Collapse
No announcement yet.

Vantanevn " Điều khiển từ xa 8 kênh

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

  • #61
    Nguyên văn bởi vantanevn Xem bài viết
    Bác nói thế chứ cho em xin lỗi thật nhé EM KHÔNG BIẾT CHỮ MEGA CỦA BÁC LÀ Ý GÌ. Thật ra em chỉ dùng AT8951 hoặc 892051 chứ chưa thử loại khác. mong bác thông cảm.
    à thế này, mình có con atmega32 (AVR) nên dùng nó luôn để thu hồng ngoại. Nhấn remote xa chục mét vẫn nhận phát nào trúng phát nấy (trả biết có đúng mã không(!), nhưng mỗi nút khác nhau thì ra 1 mã khác nhau).
    Thế mà dùng thử con AT89C2051 thì o chạy, mặc dù mạch i chóc, thời gian bắt xung cũng thế.
    Hiện giờ chưa biết do đâu, lúc nào rảnh chắc phải thử lại lần nữa.
    !e

    Comment


    • #62
      Nguyên văn bởi zemen Xem bài viết
      à thế này, mình có con atmega32 (AVR) nên dùng nó luôn để thu hồng ngoại. Nhấn remote xa chục mét vẫn nhận phát nào trúng phát nấy (trả biết có đúng mã không(!), nhưng mỗi nút khác nhau thì ra 1 mã khác nhau).
      Thế mà dùng thử con AT89C2051 thì o chạy, mặc dù mạch i chóc, thời gian bắt xung cũng thế.
      Hiện giờ chưa biết do đâu, lúc nào rảnh chắc phải thử lại lần nữa.
      Thế thì lạ nhỉ? Em thiết kế thì chỉ dùng có AT8951 hoặc 892051. Còn chắc con AVR Của bác với con at của em giống nhau về ngắt, về chân rồi.
      Bác đã nhấn mà có mã ra khác nhau thì trúng mã đó. Vì nếu không trúng mã thì sẽ không có đầu ra đâu bác à. Bác có thể kiểm tra bằng các điều khiển loại khác như đầu DVD, VCD.... không phải là TV.

      Comment


      • #63
        Nguyên văn bởi Multi System Xem bài viết
        Vậy hả anh ?
        Nhà không dùng Remote SS nên chưa thử nạp file dành cho SS.
        Nói vậy thì mạch này có thể ứng dụng à ?
        Để em làm thử phát !
        Thật ra mạch mình làm ra chỉ để nghiên cứu một chút. Một phần để anh em cùng đưa vào ứng dụng cụ thể. Do vậy mình chỉ thiết kế cho ra tín hiệu ra hiển thị trên LED để anh em kiểm tra chứ mình không làm mạch điều khiển relay. Vì sau khi có tín hiệu này ta có thể thiết kế tích hợp mạch này vào nhiều ứng dung khác.
        Chúc các bác vui vẻ.

        Comment


        • #64
          Ra được thế này là tốt rồi, còn vấn đề ứng dụng thì tuỳ mỗi người thôi, có thể dùng Relay hay SCR thì tùy.
          Giá như anh giải mã bàn phím có tính logic hơn thì hay.
          Em lấy ví dụ để điều khiển 1 cái quạt:
          - Nút Power dùng để tắt nguồn cấp cho quạt
          - Nút 1 ứng với tốc độ 1 cho quạt
          - Nút 2 ứng với tốc độ 2 cho quạt...
          Còn nữa, trong những trường hợp mất nguồn cấp cho mạch điều khiển bị và khi có trở lại thì tín hiệu ra không được lưu. Ví dụ: Led 2 đang sáng thì mất điện, khi có điện trở lại thì kết quả là có một vài Led cùng sáng luôn chứ không phải chỉ Led 2 sáng.
          Trong TV khi đang ở kênh 2 mà mất điện và khi có điện nó sẽ bật lại kênh 2.

          Comment


          • #65
            Nguyên văn bởi Multi System Xem bài viết
            Ra được thế này là tốt rồi, còn vấn đề ứng dụng thì tuỳ mỗi người thôi, có thể dùng Relay hay SCR thì tùy.
            Giá như anh giải mã bàn phím có tính logic hơn thì hay.
            Em lấy ví dụ để điều khiển 1 cái quạt:
            - Nút Power dùng để tắt nguồn cấp cho quạt
            - Nút 1 ứng với tốc độ 1 cho quạt
            - Nút 2 ứng với tốc độ 2 cho quạt...
            Còn nữa, trong những trường hợp mất nguồn cấp cho mạch điều khiển bị và khi có trở lại thì tín hiệu ra không được lưu. Ví dụ: Led 2 đang sáng thì mất điện, khi có điện trở lại thì kết quả là có một vài Led cùng sáng luôn chứ không phải chỉ Led 2 sáng.
            Trong TV khi đang ở kênh 2 mà mất điện và khi có điện nó sẽ bật lại kênh 2.

            thì bạn dùng thêm con eeprom nữa, 24c08 chẳng hạn, hoặc nếu dc thì dùng luôn eeprom của vdk (at89s8252)
            !e

            Comment


            • #66
              //Các bạn cho ý kiến!
              //VDK dùng ATmega32, chân pir = PORTD.2 (P3.2)
              //Ta nhận cả 12 bit rồi truyền về máy tính qua cổng com (mảng kdlieu[12])
              //Tuy hơi thủ công nhưng nhận xung khá chuẩn, còn 8051 cũng viết như vầy
              //sẽ không chạy.

              //Trong chương trình ngắt mình viết thế này:
              ktong=0;
              #asm("cli") //tam ngung ngat ngoai
              delay_ms(2); delay_us(400); //bit start
              delay_ms(1); delay_us(500);
              if(!pir){kdlieu[0]='1'; delay_ms(1); delay_us(800);ktong=ktong<<1; ktong|=1;}
              else{kdlieu[0]='0'; delay_ms(1); delay_us(200);ktong=ktong<<1;}
              if(!pir){kdlieu[1]='1'; delay_ms(1); delay_us(800);ktong=ktong<<1; ktong|=1;}
              else{kdlieu[1]='0'; delay_ms(1); delay_us(200);ktong=ktong<<1;}
              if(!pir){kdlieu[2]='1'; delay_ms(1); delay_us(800);ktong=ktong<<1; ktong|=1;}
              else{kdlieu[2]='0'; delay_ms(1); delay_us(200);ktong=ktong<<1;}
              if(!pir){kdlieu[3]='1'; delay_ms(1); delay_us(800);ktong=ktong<<1; ktong|=1;}
              else{kdlieu[3]='0'; delay_ms(1); delay_us(200);ktong=ktong<<1;}
              if(!pir){kdlieu[4]='1'; delay_ms(1); delay_us(800);ktong=ktong<<1; ktong|=1;}
              else{kdlieu[4]='0'; delay_ms(1); delay_us(200);ktong=ktong<<1;}
              if(!pir){kdlieu[5]='1'; delay_ms(1); delay_us(800);ktong=ktong<<1; ktong|=1;}
              else{kdlieu[5]='0'; delay_ms(1); delay_us(200);ktong=ktong<<1;}
              if(!pir){kdlieu[6]='1'; delay_ms(1); delay_us(800);ktong=ktong<<1; ktong|=1;}
              else{kdlieu[6]='0'; delay_ms(1); delay_us(200);ktong=ktong<<1;}
              if(pir){kdlieu[7]='1'; delay_ms(1); delay_us(800);ktong=ktong<<1; ktong|=1;}
              else{kdlieu[7]='0'; delay_ms(1); delay_us(200);ktong=ktong<<1;}
              if(!pir){kdlieu[8]='1'; delay_ms(1); delay_us(800);ktong=ktong<<1; ktong|=1;}
              else{kdlieu[8]='0'; delay_ms(1); delay_us(200);}
              if(!pir){kdlieu[9]='1'; delay_ms(1); delay_us(800);ktong=ktong<<1; ktong|=1;}
              else{kdlieu[9]='0'; delay_ms(1); delay_us(200);ktong=ktong<<1;}
              if(!pir){kdlieu[10]='1'; delay_ms(1); delay_us(800);ktong=ktong<<1; ktong|=1;}
              else{kdlieu[10]='0'; delay_ms(1); delay_us(200);ktong=ktong<<1;}
              if(!pir){kdlieu[11]='1'; delay_ms(1); delay_us(800);ktong=ktong<<1; ktong|=1;}
              else{kdlieu[11]='0'; delay_ms(1); delay_us(200);ktong=ktong<<1;}

              //delay_ms(500);
              kdau=1;

              #asm("sei") //dung ngat tro lai

              Còn trong chương trình chính mình viết thế này:
              if(kdau==1) //nếu kdau=1 => đã nhận dc phím nhấn
              {
              kdau=0;
              for(i=0;i<12;i++)
              {
              putchar(kdlieu[i]); //truyền về máy tính để kiểm tra 12 bit
              delay_ms(10);
              }
              putchar(' '); delay_ms(10);
              for(i=0;i<6;i++){mang[i]='';} //xoa mang
              itoa(ktong,mang);
              puts(mang);
              putsf("\r\n");
              PORTA++;
              }
              !e

              Comment


              • #67
                Chương trình đóng tắt thiết bị!

                Tôi có chương trình điều khiển TV Sony sử dụng AT89C51 để đóng cắt thiết bị nè. Hi vọng sẽ júp được anh em.
                Ai cần đoạn mã chương trình+Sơ đồ nguyên lý để nghịch thì liên hệ với mình nghe.

                Comment


                • #68
                  u post lên đây luôn để anh em tiện theo dõi , gửi từng ng rất mệt đó u !
                  Tui cũng đang thu IR của Sony đây , cho tui hỏi vài điều nha
                  - Bit start , u delay ? ms để wa mức 0
                  - Trong bit 0 , thời gian tín hiệu hồng ngoại phát ra ( mức 1 )là ? us , còn lại thời gian im lặng là ?us
                  - Tương tự thế cho bit 1 !
                  Hình như file của u viết = ASM đúng ko ? do mấy u HN làm bài tập lớn !

                  Comment


                  • #69
                    Phần đầu tiên của tín hiệu có độ dài 3T=1800us, được gọi là Header hay Start bit.
                    + Bit 0 = -T + T = 500us of silence + 700us of IR.
                    + Bit 1 = -T + 2T = 500us of silence + 1300us of IR.
                    Khi thu tín hiệu bằng Led thu IR, tín hiệu qua Led sẽ bị đảo ngược như sau:
                    + Bit 0 = 500us of IR + 700us of silence.
                    + Bit 1 = 500us of IR + 1300us of silence.
                    Bit Start đặt là bit 0, bit cuối là bit 11. Với 7 bit đầu tiên là bit Command(bit lệnh), 5 bit cuối là bit Address(bit địa chỉ).
                    Vì các tín hiệu đều lấy từ cùng 1 Remote nên chúng ta chỉ cần giải mã 7 bit lệnh đầu tiên là Ok.

                    Comment


                    • #70
                      //Cái này viết cho 89S52 thì chạy nhưng viết cho 89C2051 thì không.
                      //Mình chỉ trình bày đoạn mã cho ngắt ngoài:

                      void Ngat_ngoai0 (void) interrupt 0
                      {
                      unsigned char i,bdem;

                      kdlieu=0; kdchi=0;

                      EA=0; //tam dung ngat
                      Hdelay_ms(2);
                      while(!pir); //chor len 1
                      for(i=0;i<7;i++) //7 bit du lieu
                      {
                      bdem=0;
                      kdlieu=kdlieu>>1;
                      while(pir){if(++bdem==255) goto thoat;}

                      bdem=0;
                      while(!pir){if(++bdem==255) bdem=255;}
                      if(bdem>120) kdlieu=kdlieu|0x80;
                      }
                      kdlieu=kdlieu>>1;

                      for(i=0;i<5;i++) //5 bit dia chi
                      {
                      bdem=0;
                      kdchi=kdchi>>1;
                      while(pir){if(++bdem==255) goto thoat;}

                      bdem=0;
                      while(!pir){if(++bdem==255) bdem=255;}
                      if(bdem>120) kdchi=kdchi|0x80;
                      }
                      kdchi=kdchi>>3;
                      thoat:
                      P0 = kdchi; Hdelay_ms(1000); //xem có đúng mã không!
                      P0 = kdlieu; Hdelay_ms(2000);
                      P0 = 255;
                      EA=1;
                      kdau=1;
                      }
                      !e

                      Comment


                      • #71
                        Tham khảo!

                        Còn cái này thì chạy dc với 89C2051. Các bạn tham khảo!
                        * Lưu ý: đoạn mã viết bằng ng.ngữ 'Keil C'
                        Attached Files
                        !e

                        Comment


                        • #72
                          mình làm mạch chốm trộm bằng sensor hồng ngoại.mạch yêu càu phải báo có trộm o nơi nào .nếu đặt cảm biến ở nhiếu nơi thì lam sao biết trôm ở đâu?vấn đề mình đặt ra là ..nếu có nhiều tín hiệu trộm báo về ..nhưng ta chỉ dùng 1 mạch thu rồi đưa tín hiệu đó vào vi xử lí.Vậy làm sao để xử lý được có trọm ở đâu vì các tín hiệu hồng ngoại có trộm đều giống nhau mà.....xin chỉ giúp.Nếu có sơ đồ mạch nào tương tự thí up lên giup nha...thankkk

                          Comment


                          • #73
                            gởi ban VANTANEVN. MÌNH MONG MUỐN LÀM CÁI NÀY LÂU LẮM RỒI MÀ CỨ HỎNG TỚI HƯ LUI HOÀI. NẾU ĐỰƠC BẠN UP LUÔN CHƯƠNG TRÌNH LÊN CHO MÌNH HỌC HỎI VỚI. NIẾU TIỆN BẠN GỞI CHO MÌNH QUA E " locnewsun@gmail.com" MÌNH BIẾT LÀ MÌNH HƠI ĐÒI HỎI..NHƯNG MÀ THẬT SỰ MÌNH RẤT MUỐN LÀM NÓ.. MONG GIÚP ĐỠ.

                            HỌC HỎI LÀM TÔI VUI SỐNG.
                            PHƯỚC LỘC

                            Comment


                            • #74
                              Nguyên văn bởi tuannambk Xem bài viết
                              Tôi có chương trình điều khiển TV Sony sử dụng AT89C51 để đóng cắt thiết bị nè. Hi vọng sẽ júp được anh em.
                              Ai cần đoạn mã chương trình+Sơ đồ nguyên lý để nghịch thì liên hệ với mình nghe.
                              BẠN CHO MÌNH NHE. MÌNH ĐANG NGHỊCH NÓ ĐÓ.
                              EM: LOCNEWSUN@GMAIL.COM

                              Comment


                              • #75
                                Minh dang nghien cuu ve de tai nay

                                Hi
                                Ban co the cho minh xin schema & code cua no duoc ko?
                                Minh dang can no lam.
                                Thanks

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...
                                X