Thông báo

Collapse
No announcement yet.

Thu nhận dữ liệu bằng rf

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

  • Thu nhận dữ liệu bằng rf

    Chào các anh. em có một mạch thu phát sóng rf.

    mạch phát sóng có sơ đồ như sau :

    Click image for larger version

Name:	mach thu.jpg
Views:	1
Size:	102.0 KB
ID:	1412082Click image for larger version

Name:	mach thu.jpg
Views:	1
Size:	102.0 KB
ID:	1412082

    theo thầy em bảo thế này :

    _dùng sw để tạo địa chỉ cho mạch phát.
    _bên thu sẽ giải mã địa chỉ bên phát để điều khiển

    bác nào làm về rf rùi. có thể hướng dẫn cho em với không ạ
    em dùng 892051

    _giải thuật em định làm là như thế này
    __dữ liệu nhận được sẽ được đưa vào P1
    __khi 2272 giải mã.sau khi giải mã xong.chân vt sẽ được chuyển lên mức cao.em cho nó qua cổng đảo rồi đưa vào int0
    __trong chương trình ngắt : em sẽ so sánh giá trị port 1 đưa vào với giá trị điều khiển để tiến hành điều khiển.tiến hành điều khiển led.

    thế này có đúng ko ạ.
    xin các anh giúp. lần đầu làm với rf

  • #2
    Bên phát: F05R điện áp hoạt động không đến 5v đâu (chưa dùng loại này chỉ đọc ở đâu đó).
    Bên thu: PT2272 nếu muốn dùng ngắt thì dùng loại M4
    Giải thuật vậy chắc là ổn rồi.

    Comment


    • #3
      Nguyên văn bởi OoMrBayoO Xem bài viết
      Bên phát: F05R điện áp hoạt động không đến 5v đâu (chưa dùng loại này chỉ đọc ở đâu đó).
      Bên thu: PT2272 nếu muốn dùng ngắt thì dùng loại M4
      Giải thuật vậy chắc là ổn rồi.
      PT2272 L4 thì sao anh ?

      em viết code thế này :

      #include <AT89x51.h>
      #include <stdio.h>

      #define led1 P3_1
      #define led2 P3_0


      void delay(int n)
      {
      int i,j;
      for(i=0;i<n;i++)
      for(j=0;j<1000;j++)
      {}
      }

      void main()
      {
      led1=1;
      led2=1;
      IE=0x81;
      IT1=1;
      while(1)
      {
      }
      }

      void ngat0(void) interrupt 2
      {
      int k;
      while(P1!=0)
      {
      for(k=0;k<15;k++)
      {
      led1=0;led2=0;
      delay(200);
      led1=1;led2=1;
      delay(200);
      }
      }
      }
      led em điều khiển mức 0.

      Comment


      • #4
        Loại L4, chân VT khi bạn nhấn xong nó vẫn giữ trạng thái do vậy khi bạn nhấn nút khác thì ngắt không phát hiện được. Bạn hãy up nguyên lý lên nhé.

        Comment


        • #5
          Nguyên văn bởi OoMrBayoO Xem bài viết
          Loại L4, chân VT khi bạn nhấn xong nó vẫn giữ trạng thái do vậy khi bạn nhấn nút khác thì ngắt không phát hiện được. Bạn hãy up nguyên lý lên nhé.
          Click image for larger version

Name:	mach thu.jpg
Views:	1
Size:	119.2 KB
ID:	1358454

          mạch đây anh.

          em sữ dụng địa chỉ để so sánh chứ không dùng data. mạch phát em có gữi ở topic #1

          Comment


          • #6
            em viết code thế này :
            #include <AT89x51.h>
            #include <stdio.h>

            #define xanh P3_1
            #define do P3_0


            void delay(int n)
            {
            int i,j;
            for(i=0;i<n;i++)
            for(j=0;j<1000;j++)
            {}
            }

            void main(void)
            {
            xanh=1;
            do=1;
            IE=0x81;
            IT1=1;
            xanh=1;
            do=1;
            while(1)
            {
            P1=0x02;
            }
            }

            void ngat0(void) interrupt 0
            {
            if(P1==0x01)
            {
            xanh=0;do=1;
            }
            else
            if(P1==0x02)
            {
            xanh=1;do=0;
            }
            }
            em muốn send dữ liệu ra port 1. nếu dữ liệu nhận về của con 2272 là 0010 thì nó sẽ ngắt. trong ngắt em xét. nếu p1 = 0010 thì cho đèn sáng. vậy mà. khi nạp code.gắn vào mạch nó sáng cùng lúc 2 led xanh và đỏ. không hiểu gì sao . mạch em sai ở đâu mấy anh

            Comment


            • #7
              Mình không biết sao nó chạy đc mới lạ đấy. Bạn xem lại, P1 nối qua trở băng rồi nên tín hiệu P1 có dạng 0xf...không phải là 0x0.. nữa.

              Comment


              • #8
                Nguyên văn bởi OoMrBayoO Xem bài viết
                Mình không biết sao nó chạy đc mới lạ đấy. Bạn xem lại, P1 nối qua trở băng rồi nên tín hiệu P1 có dạng 0xf...không phải là 0x0.. nữa.
                xữ lý xong rùi bác ạ.bác cho em hỏi tiếp nhé.
                nếu mạch phát em set là 0101 = 5
                bên thu em cho quét từ 1 tới 15. tới 5 nó sẽ ngắt. trong ngắt em viết chương trình nháy led xanh 5 lần. đụng một cái.nó ko ra khỏi ngắt được.
                Theo em nghĩ do mạch phát là 5. nên khi p1=5 nó sẽ bị ngắt và chết cứng ở đó.nên ngắt miết.

                giờ cần phải viết chương trình như thế nào hở anh.
                em dự định là trong ngắt. sau khi thực hiện xong nháy led thì set cho nó không ngắt nữa. nhưng nếu thế thì sau khi mình set là số khác hoặc đi qua nơi khác có mạch phát số khác thì không biết nó còn làm được việc thứ 2 trong ngắt không

                code chương trình test ngắt của em :

                #include <AT89x51.h>
                #include <stdio.h>
                /* led dieu khien muc thap */
                #define xanh P3_1
                #define do P3_0
                #define s1 P1_0
                #define s2 P1_1
                #define s3 P1_2
                #define s4 P1_3
                #define s5 P1_4
                #define s6 P1_5
                #define s7 P1_6
                #define s8 P1_7

                /* delay */
                void delay(int n)
                {
                int i,j;
                for(i=0;i<n;i++)
                for(j=0;j<1000;j++)
                {}
                }

                /* chuong trinh chinh */
                void main(void)
                {
                long k;
                // tat led
                xanh=1;
                do=1;
                // ngat int0
                IE=0x81;
                //suon am
                IT1=1;
                s1=s2=s3=s4=s5=s6=s7=s8=0;

                while(1)
                {
                for(k=1;k<=15;k++)
                {

                P1=k;do=0;delay(200);
                do=1;delay(100);


                }
                }
                }

                /* phuc vu ngat */
                void ngat0(void) interrupt 0
                {
                int i;
                for(i=1;i<=5;i++)
                {
                xanh=0;
                delay(100);
                xanh=1;
                delay(100);
                }
                }

                Comment


                • #9
                  hi. mình có biết 1 chỗ nó bán cả module này hết rồi, chỉ cần dùng vi điều khiển điều khiển nó thu và phát thôi.
                  Nếu vậy thì đồ án này đâu có khó nữa. hihi
                  ai cần biết chỗ bán thì Pm mình: 0986773956.(không nói trực tiếp được, họ tưởng mình quảng cáo banned nick chết )

                  Comment


                  • #10
                    Nguyên văn bởi it_p0k3t Xem bài viết
                    ...chương trình nháy led xanh 5 lần...
                    Không cần phức tạp vậy đâu. Bạn thử xem ý tưởng của mình thế này:
                    Code:
                    ...
                    unsigned char i,j;	
                    if(i==1)
                    {
                    for(j=0;j<5;j++)
                    {
                    xanh=0;
                    delay(100);
                    xanh=1;
                    delay(100);
                    }
                    }
                    while(1);
                    }
                    /**************** phuc vu ngat ******************/
                    void ngat0(void) interrupt 0
                    {
                    i++;
                    if(i>2) i=0;
                    }

                    Comment


                    • #11
                      Không biết mua 1 bộ bao nhiêu đây ta. Nếu 80K 1 bộ 8 kênh mình mua vài bộ.

                      Comment


                      • #12
                        Nguyên văn bởi OoMrBayoO Xem bài viết
                        Không biết mua 1 bộ bao nhiêu đây ta. Nếu 80K 1 bộ 8 kênh mình mua vài bộ.
                        Bộ này có 8 chân địa chỉ 4 chân data. em chỉ dùng từ a0 tới ả. vì phạm vi đồ án chỉ thế thui. giờ mạch phát thu và ngắt ngon lành rồi. cảm ơn bác nhiều lắm.
                        Em đang dinh tới vụ con C1815 và opto PC817.
                        Nếu em nối theo kiểu bình thường .
                        PC817 : chân 1 nối nguồn 5v thông qua trở 330 . chân 2 nối mát. chân 3 nối nguồn 5v. chân 4 nối trở 330 nối tiếp với led 5mm siêu sáng. thì led sang ngon lành.
                        giờ em muốn dùng C1815 để điều khiển opto.

                        mạch nguyên lý như sau :

                        Click image for larger version

Name:	Capture.PNG
Views:	1
Size:	9.8 KB
ID:	1359048

                        khi chân vdk của C1815 được nối với VCC thì led không sáng. đã thử qua.

                        em sai ở đâu ạ

                        Comment


                        • #13
                          Nguyên nhân có thể là do con C1815 chưa mở hoặc không đủ dòng cho opto dẫn. Bạn thử treo trở từ chân đk lên VCC xem, nếu không được thì giảm trở hạn dòng cho opto xuống. (Bạn chú ý khi thiết kế với tran ngược NPN thì đặt tải phía trên nhé). Chúc thành công.

                          Comment


                          • #14
                            Nguyên văn bởi OoMrBayoO Xem bài viết
                            Nguyên nhân có thể là do con C1815 chưa mở hoặc không đủ dòng cho opto dẫn. Bạn thử treo trở từ chân đk lên VCC xem, nếu không được thì giảm trở hạn dòng cho opto xuống. (Bạn chú ý khi thiết kế với tran ngược NPN thì đặt tải phía trên nhé). Chúc thành công.
                            nó chạy rùi bác ạ. hì hì. bác tốt quá. cóa thể up cho em những tài liệu về điện tử của bác không. em con ngu quá . đến cái mạch quang báo còn chưa làm được

                            Comment


                            • #15
                              Nguyên văn bởi it_p0k3t Xem bài viết
                              nó chạy rùi bác ạ. hì hì. bác tốt quá. cóa thể up cho em những tài liệu về điện tử của bác không. em con ngu quá . đến cái mạch quang báo còn chưa làm được
                              Rất xin lỗi bạn mình chỉ học được qua diễn đàn, mạng, sách. Mà mình không phải dân điện tử (chính xác thuộc khoa cơ khí) đâu bon chen tý thôi.

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X