Thông báo

Collapse
No announcement yet.

[IR] nhờ anh Mod gợi ý giúp em nhận đúng tín hiệu từ remote Sony

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

  • [IR] nhờ anh Mod gợi ý giúp em nhận đúng tín hiệu từ remote Sony

    Em đang làm cái ĐHS , nhưng thêm module thu hồng ngoại từ remote Sony để hẹn giờ .
    - Mắt thu sử dụng con 3 chân SM0038 , HRM3800...màu đen
    - tín hiệu thu đưa vào chân RB4 , & thiết lập ngắt ngoài để nhận tín hiệu


    em viết thử chương trình nhận tín hiệu : có mức 0 trên chân Rb4 thì nhảy vào ngắt , trong ngắt chờ Rb4 hết mức 0 thì tắt led đang sáng trên chân RA0 & delay_ms(1000) ; ( em nối 1 cái led nhỏ để báo hiệu đã nhận tín hiệu)

    hiện tượng xảy ra : led liên tục tắt ... rùi sáng nhẹ , lại tắt ... --> con mắt thu đã nhận tín hiệu hồng ngoại từ môi trường ...mà ko phải từ remote ( tất nhiên lúc đó em chưa bấm nút )--> VDK luôn nhảy vào ngắt (khi đảo mức trên RB4)

    Gợi ý giúp em :
    - làm cách nào để chỉ khi em bấm nút trên remote thì mới đc nhảy vào ngắt , hoặc VDK mới làm công việc gì đó theo ý mình
    - hoặc đặt điều kiện như thế nào trên chân RB4 để bit là ta đang nhấn nút chứ ko phải là tín hiệu nhiễu

  • #2
    bạn nên chú ý làm nguồn tốt cho con module thu ( nên thêm tụ lọc nhỏ 47uf đặt gần module ) .

    thông thường các đầu ra của module luôn ở mức 1 vì có điện trở pull up ,

    bắt ngăt falling ( xung xuống )

    bạn chỉ cần viết đúng mã của nó thì nó nhảy vào ngắt 1 vài cái do nhiễu cũng chẳng đáng kể gì .

    còn muốn led nhấp nháy khi tín hiệu vào thì khó gì . Cứ để khi bắt đúng được 1 khung cái led nó nháy 1 cái có khi lại hay.
    Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com

    Comment


    • #3
      Nguyên văn bởi Zz_Bi_zZ Xem bài viết
      Gợi ý giúp em :
      - làm cách nào để chỉ khi em bấm nút trên remote thì mới đc nhảy vào ngắt , hoặc VDK mới làm công việc gì đó theo ý mình
      - hoặc đặt điều kiện như thế nào trên chân RB4 để bit là ta đang nhấn nút chứ ko phải là tín hiệu nhiễu
      RC5

      http://home1.stofanet.dk/hvaba/fprc5rx/index.html
      http://www.mcselec.com/index.php?opt...d=69&Itemid=57

      Comment


      • #4
        cái này mình đã làm rồi,làm cả remote 12 kênh bằng PIC16F628A theo chuẩn RC5,nếu Zz_Bi_zZ muốn mình có thể hướng dẫn

        Comment


        • #5
          Nguyên văn bởi david Xem bài viết
          cái này mình đã làm rồi,làm cả remote 12 kênh bằng PIC16F628A theo chuẩn RC5,nếu Zz_Bi_zZ muốn mình có thể hướng dẫn
          cảm ơn anh David nhìu nhìu ! có phải bài viết này ko ah ?
          Decoding Sony IR protocol with a pic16f628
          http://users.pandora.be/davshomepage/decodesony.htm
          Last edited by Zz_Bi_zZ; 13-02-2008, 19:36.

          Comment


          • #6
            hehehehe dùng một cái tụ hóa nhỏ hay một cái tụ pi xem !!!

            Comment


            • #7
              Nguyên văn bởi Zz_Bi_zZ Xem bài viết
              cảm ơn anh David nhìu nhìu ! có phải bài viết này ko ah ?
              Decoding Sony IR protocol with a pic16f628
              http://users.pandora.be/davshomepage/decodesony.htm
              không phải,mình dùng Pic16f628a để coding(not decoding) theo chuẩn RC5,tức là làm remote luôn bằng PIC luôn

              Comment


              • #8
                Bỏ dùng ngắt chân RB4 đi, dùng chân RB0, còn không thì set các chân RB5 - RB7 là ngõ ra, đừng dùng các chân đó như ngõ vào nếu bạn dùng chân RB4 để thực hiện ngắt ngoài thì các chân RB5 - RB7 cũng sẽ tạo ra ngắt khi có thay đổi trạng thái giống như chân RB4.
                Last edited by kekhongten; 14-02-2008, 14:54.

                Comment


                • #9
                  Nguyên văn bởi kekhongten Xem bài viết
                  Bỏ dùng ngắt chân RB4 đi, dùng chân RB0, còn không thì set các chân RB5 - RB7 là ngõ ra, đừng dùng các chân đó như ngõ vào nếu bạn dùng chân RB4 để thực hiện ngắt ngoài thì các chân RB5 - RB7 cũng sẽ tạo ra ngắt khi có thay đổi trạng thái giống như chân RB4.
                  bạn thấy trên mạch mình vẽ đấy ! mình dùng ngắt ngoài RB4 để thu tín hiệu IR , nếu mình thu đúng thì có xảy ra ngắt trên các chân RB5-7 cũng ko vấn đê gì ..bởi khi vào ngắt , mình sẽ kiểm tra chân nào thay đổi mức ... & tương ứng là ct sẽ thực hiện nhiệm vụ theo chân ngắt đó

                  Theo mình nghĩ , nếu dùng ngắt ngoài mức thấp trên Rb4 thì vấn đề xảy ra là
                  - ct liên tục nhảy vào ngắt . Ng nhân là vì mắt nhận luôn thu mức 0 . Nhưng tín hiệu từ mắt thu ko phải là tín hiệu mong muốn mà do ánh sáng mặt trời , ánh sáng đèn ...nói chung là nhiễu . Dẫn đến , ct ko có thời gian để quét led , đếm led ...

                  Băn khoăn của mình là dùng ngắt & kiểm tra như thế nào đây ? để nếu có nhiễu thì đồng hồ vẫn hoạt động đúng thời gian thực

                  Comment


                  • #10
                    Vấn đề là bạn post cái code lên đây có thể tìm ra nguyên nhân.

                    Comment


                    • #11
                      tui cũng đang làm cái này nhưng nó đâu có bị nhiễu đến mức như bạn nói đâu. lâu lâu nó mới nhiễu 1 lần ,mình vẫn chưa decode được mình dùng ngắt RB0 (falling)để đếm số lần ngắt khi mình nhấn một phím trên remote từ đó ==> tổng số bit mà nó truyền trong một lần nhấn ==> frame truyền của nó ,ko biết có được ko.
                      mình đang decode cho cai remote TV LG ở nhà nhưng pó tay rồi , nó dùng con IC LG 8989 , down datasheet of nó về xem mà ko được, chắc phải chạy đi mua cái remote SONY or PHILLIPS giống như của mấy bác về làm chung may ra còn .........thành công. hihi.
                      Nguyễn Xuân Thanh - 0905848525 - 01686996698
                      Chuyên: Quảng Cáo Điện Tử
                      =>Led Siêu Sáng - Board điều khiển led động
                      =>Các loại Màn Hình Led trong nhà, ngoài trời

                      Comment


                      • #12
                        ngâm cứu vài tuần nay , tui cũng có khá hơn đôi chút !
                        - Muốn nhận đúng bit Start , ta chờ đảo bit rùi thêm delay_us(..) thì sẽ biết chắc là phím trên remote đc nhấn hay nhiễu ! tui đang cố ghi lại mã các phím ...có vài đồng chí cùng làm thì zui rùi , học hỏi nhau để nhau ra kết quả nha !

                        Comment


                        • #13
                          Nguyên văn bởi Zz_Bi_zZ Xem bài viết
                          bạn thấy trên mạch mình vẽ đấy ! mình dùng ngắt ngoài RB4 để thu tín hiệu IR , nếu mình thu đúng thì có xảy ra ngắt trên các chân RB5-7 cũng ko vấn đê gì ..bởi khi vào ngắt , mình sẽ kiểm tra chân nào thay đổi mức ... & tương ứng là ct sẽ thực hiện nhiệm vụ theo chân ngắt đó

                          Theo mình nghĩ , nếu dùng ngắt ngoài mức thấp trên Rb4 thì vấn đề xảy ra là
                          - ct liên tục nhảy vào ngắt . Ng nhân là vì mắt nhận luôn thu mức 0 . Nhưng tín hiệu từ mắt thu ko phải là tín hiệu mong muốn mà do ánh sáng mặt trời , ánh sáng đèn ...nói chung là nhiễu . Dẫn đến , ct ko có thời gian để quét led , đếm led ...

                          Băn khoăn của mình là dùng ngắt & kiểm tra như thế nào đây ? để nếu có nhiễu thì đồng hồ vẫn hoạt động đúng thời gian thực
                          Theo như bác Quế Dương, nhiễu một vài cái cũng không gây ra vấn đề gì. Trước em đã thử đề tài này và thấy không bị ảnh hưởng gì. Chỉ gặp chuyện khi em bấm remote điều khiển một cái đèn sợi đốt. Mỗi khi đèn này bật lên, ánh sáng nó chói chang quá nên chặn mất tia hồng ngoại. Bỏ cái đèn ra xa thì mạch hoạt động bình thường. Như vậy vấn đề nhiễu không quá quan trọng.

                          Nói chung, làm đề tài này bác phải có một ốc-xi-lô. Đo trực tiếp ngay chân ngắt xem có phải do vấn đề này không.

                          Nếu chính xác là do vấn đề bác nói thì chắc phải thay con mắt nhận.
                          Email: - Mobil: tạm thời ngừng liên lạc 1 thời gian
                          Giới thiệu website kiếm tiền trực tuyến & tăng thứ hạng website.

                          Comment


                          • #14
                            có đôi điều hơi lạ , muốn hỏi mấy anh 1 chút
                            theo tài liệu tham khảo đc ( đây là tài liệu của BK HN)



                            dựa vào đó , em chuyển sang C
                            Code:
                            #include    <16F877A.h>
                            #fuses      NOPROTECT,HS,NOWDT,NOLVP,NODEBUG,PUT
                            #use        delay(clock =20000000)
                            #use        fast_io(a)
                            
                            #define IR     RE2
                            
                            unsigned char var_IR  = 0x00 ; 
                            unsigned char i ; 
                            
                            
                            void scan_IR()
                            { if (!IR) { delay_us(1500);
                                           if(!IR){ PORTA = 0x00 ;   
                                                    while(!IR) continue ; 
                                                    while(IR) continue ;  
                                                    delay_us(900);
                                                    for(i=1;i<=14;i++)
                                                           { if(IR==0){bit_set(var_IR,i)   ; };
                                                             if(IR!=0){bit_clear(var_IR,i) ; };
                                               
                                                            while(!IR) continue ; 
                                                            while(IR) continue ;  
                                                            delay_us(900);
                                                           };
                                                  };
                                        };
                            }  
                            
                            
                            void test_IR()  
                            {  for(i=0;i<=13;i++)
                                    {
                                      if(bit_test(var_IR,i)==1) 
                                           {output_high(pin_A1);delay_ms(1000);
                                            output_low(pin_A1);delay_ms(1000);
                                           };
                                      if(bit_test(var_IR,i)==0) 
                                           {output_high(pin_A0);delay_ms(1000);
                                            output_low(pin_A0);delay_ms(1000); 
                                           };
                                    };
                            }
                                         
                            
                            main()
                            { set_tris_A(0b00000000); PORTA = 0x00;
                              set_tris_E(0xFF); PORTE = 0xFF;
                             
                              while(1)
                              { PORTA = 0xFF ; 
                                scan_IR();
                                if(var_IR!=0) {test_IR();while(1);};
                                
                              };
                            }

                            hiện tượng xảy ra là
                            - bật nguồn , reset PIC , 2 led xanh đỏ đều sáng --> đúng
                            - khi chĩa remote vào & bấm số , vd số 8 , thì 2 led tắt ngủm , im lặng luôn
                            - tiếp tục bấm số 8 , 2 led cùng chớp sáng rùi lại tắt tiếp
                            - bấm lần thứ 3 , led xanh lúc này mới sáng lần 1 --> bit Start --> đúng (led xanh đại diện cho bit 0)
                            - tiếp , led xanh sáng lần 2 --> bít 1 = 0
                            - lần 3 là led đỏ sáng --> bit 2 = 1
                            - tiếp sau đó là led xanh sáng ---> bit 3- bit 13 = 0

                            em ko hỉu là do chương trình delay sai hay do nhiễu mà lạ thế( thử wa 3 con thu mới mua , 5 lần test ct , hiện tượng vẫn thế)
                            Last edited by Zz_Bi_zZ; 23-04-2008, 00:24.

                            Comment


                            • #15
                              ui , em vẫn chưa giải quyết đc sự cố này , mod có thể chỉ cho em bit chỗ sai ở đâu đc ko ? có cao thủ nào làm rùi chỉ dẫn tui zới !

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X