Thông báo

Collapse
No announcement yet.

pic16F876A và DS18B20

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

  • #31
    Cảm biến nhiệt độ DS1820 nối mạng

    Các bạn ai đã có kinh nghiệm thiết kế và sử dụng cảm biến nhiệt độ dạng 1 wire DS1820 cho mình hỏi là khi mắc chung DS1820 vào cùng 1 bus thì tối đa có thể ghép nối được bao nhiêu DS1820 vào chung bus nhỉ? Xin cảm ơn các bạn.

    Comment


    • #32
      Nguyên văn bởi e_fan Xem bài viết
      Các bạn ai đã có kinh nghiệm thiết kế và sử dụng cảm biến nhiệt độ dạng 1 wire DS1820 cho mình hỏi là khi mắc chung DS1820 vào cùng 1 bus thì tối đa có thể ghép nối được bao nhiêu DS1820 vào chung bus nhỉ? Xin cảm ơn các bạn.
      với 64 bit mã thì số lượng có thể gọi là bạn sài ko hết đấy

      Comment


      • #33
        Nguyên văn bởi chung1608 Xem bài viết
        với 64 bit mã thì số lượng có thể gọi là bạn sài ko hết đấy
        64 bit code ROM thì mình có biết nhưng đó chỉ là lý thuyết thì 64 bit mã hóa được 2^64 device nối chung bus. Ý mình muốn hỏi là kinh nghiệm thực tế thì nối được bao nhiêu sensor DS1820 cùng 1 bus, vì khi nối quá nhiều thì còn phát sinh nhiều vấn đề như nguồn bị sụt (có thể dùng nguồn kí sinh khi nối nhiều sensor chung bus), quy trình hỏi đáp địa chỉ và dữ liệu bị chậm và xung đột nhau (2 sensor cùng trả lời về master) ... Cảm ơn mọi người.

        Comment


        • #34
          Nguyên văn bởi e_fan Xem bài viết
          64 bit code ROM thì mình có biết nhưng đó chỉ là lý thuyết thì 64 bit mã hóa được 2^64 device nối chung bus. Ý mình muốn hỏi là kinh nghiệm thực tế thì nối được bao nhiêu sensor DS1820 cùng 1 bus, vì khi nối quá nhiều thì còn phát sinh nhiều vấn đề như nguồn bị sụt (có thể dùng nguồn kí sinh khi nối nhiều sensor chung bus), quy trình hỏi đáp địa chỉ và dữ liệu bị chậm và xung đột nhau (2 sensor cùng trả lời về master) ... Cảm ơn mọi người.
          thứ nhất không có việc 2 slave trên 1 bus đáp ứng về master, trong 1 thời điểm chỉ có 1 slave đc master gửi đúng địa chỉ mới đáp ứng về nên cũng ko có chuyện dữ liệu bị chậm
          thứ hai cũng do trong 1 thời điểm chỉ có 1 slave đc phép trả lời với master nên năng lượng cũng chỉ có slave này dùng. Nếu BUS quá dài thì đó là điều kiện bất khả kháng bị sụt áp trên BUS vì thế người thiết kế phải biết kết hợp thêm phần cứng bổ trợ cho giao tiếp.

          Comment


          • #35
            Nguyên văn bởi chung1608 Xem bài viết
            thứ nhất không có việc 2 slave trên 1 bus đáp ứng về master, trong 1 thời điểm chỉ có 1 slave đc master gửi đúng địa chỉ mới đáp ứng về nên cũng ko có chuyện dữ liệu bị chậm
            thứ hai cũng do trong 1 thời điểm chỉ có 1 slave đc phép trả lời với master nên năng lượng cũng chỉ có slave này dùng. Nếu BUS quá dài thì đó là điều kiện bất khả kháng bị sụt áp trên BUS vì thế người thiết kế phải biết kết hợp thêm phần cứng bổ trợ cho giao tiếp.
            Cảm ơn bạn chung1608,nhân tiện đây nhờ bạn tư vấn dùm mình xem nên làm thế nào: mình cần ghép nối 40 con sensor DS1820 vào cùng 1 bus,vậy theo bạn nên t.kế hardware thế nào và quy trình ntn của software để giao tiếp đọc ghi các sensor dùng master là vi điều khiển PIC,cần thiết kế làm sao cho hệ thống hoạt động tin cậy,nếu có code C cho PIC thực hiện được việc này thì tốt quá,cảm ơn bạn.

            Comment


            • #36
              Nguyên văn bởi e_fan Xem bài viết
              Cảm ơn bạn chung1608,nhân tiện đây nhờ bạn tư vấn dùm mình xem nên làm thế nào: mình cần ghép nối 40 con sensor DS1820 vào cùng 1 bus,vậy theo bạn nên t.kế hardware thế nào và quy trình ntn của software để giao tiếp đọc ghi các sensor dùng master là vi điều khiển PIC,cần thiết kế làm sao cho hệ thống hoạt động tin cậy,nếu có code C cho PIC thực hiện được việc này thì tốt quá,cảm ơn bạn.
              với số lượng lớn như thế thì mình chỉ có thể nói nếu bạn làm chưa quen thì không nên dùng nguồn kí sinh. Còn về code thì bạn có thể xác định 64bit địa chỉ của từng con rồi viết chương trình hoặc bạn có thể viết chương trình search và lưu lại ROM, chương trình mẫu và những ghi chú liên quan thì bạn search google từ khóa: Application Note 162

              Comment


              • #37
                CCS với DS1820

                Mình dùng thử chương trình mẫu của CCS routines để giao tiếp giữa PIC và DS1820 thì khi dịch cứ bị báo lỗi "A numeric expression must appear here", file 1820_2.c,không hiểu sửa thế nào, có bạn nào đã từng dịch thử ok file này chưa chỉ giúp mình cách sửa lỗi với.Thanks.

                Comment


                • #38
                  Nguyên văn bởi e_fan Xem bài viết
                  Mình dùng thử chương trình mẫu của CCS routines để giao tiếp giữa PIC và DS1820 thì khi dịch cứ bị báo lỗi "A numeric expression must appear here", file 1820_2.c,không hiểu sửa thế nào, có bạn nào đã từng dịch thử ok file này chưa chỉ giúp mình cách sửa lỗi với.Thanks.
                  cái bạn nói là lỗi cấu trúc C và nó có nhiều lỗi báo thế lắm @@

                  Comment


                  • #39
                    Nguyên văn bởi chung1608 Xem bài viết
                    cái bạn nói là lỗi cấu trúc C và nó có nhiều lỗi báo thế lắm @@
                    Có cách nào sửa được lỗi này không bạn chung1608 ơi?

                    Comment


                    • #40
                      Nguyên văn bởi e_fan Xem bài viết
                      Có cách nào sửa được lỗi này không bạn chung1608 ơi?
                      lỗi cấu trúc chỉ có thể xem lại tài liệu cấu trúc các lệnh của C thôi.

                      Comment


                      • #41
                        Chào các bạn. Mình đang thử viêt đoạn code để đọc 64 bit ID-Rom của ds18b20 và hiển thị lên lcd, nhưng chưa biết cách nào để hiển thị. Mong các bạn giúp đỡ.

                        Comment


                        • #42
                          Nguyên văn bởi thuong_123 Xem bài viết
                          Chào các bạn. Mình đang thử viêt đoạn code để đọc 64 bit ID-Rom của ds18b20 và hiển thị lên lcd, nhưng chưa biết cách nào để hiển thị. Mong các bạn giúp đỡ.
                          bạn viết bằng ngôn ngữ gì? cho con pic gì?
                          Nếu viết bằng C thì tôi không giúp được.
                          Mãi đi tìm vàng.

                          Comment


                          • #43
                            Các huynh giải thích dùm đệ vài cái lệnh command này được không.
                            Vi dụ onewire_write(0x55); la lenh match rom
                            CÁi lệnh onewire_write(0x28); là ....
                            onewire_write(0x6c); đén onewire_write(0x6d); em chưa hiểu lắm.

                            float ds1820_read()
                            {
                            int8 busy=0, temp1, temp2;
                            signed int16 temp3;
                            float result;
                            onewire_reset();
                            onewire_write(0x55);

                            onewire_write(0x28);
                            onewire_write(0x6c);
                            onewire_write(0xde);
                            onewire_write(0x0f);
                            onewire_write(0x01);
                            onewire_write(0x00);
                            onewire_write(0x00);
                            onewire_write(0x6d);

                            onewire_write(0x44);// convert T

                            while (busy == 0) busy = onewire_read();
                            output_high(ONE_WIRE_PIN);
                            delay_ms(100);
                            output_low(ONE_WIRE_PIN);

                            onewire_reset();
                            onewire_write(0x55);

                            onewire_write(0x28);
                            onewire_write(0x6c);
                            onewire_write(0xde);
                            onewire_write(0x0f);
                            onewire_write(0x01);
                            onewire_write(0x00);
                            onewire_write(0x00);
                            onewire_write(0x6d);

                            onewire_write(0xBE);
                            temp1 = onewire_read();
                            temp2 = onewire_read();
                            temp3 = make16(temp2, temp1);
                            result = (float)temp3/16.0;
                            delay_ms(200);
                            return(result);
                            }
                            Khói nhựa thông che lấp đời trai trẻ.Dây thiếc hàn quấn chặt tuổi thanh xuân

                            Comment

                            Về tác giả

                            Collapse

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

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

                            Collapse

                            Đang tải...
                            X