Thông báo

Collapse
No announcement yet.

HELP! đo và khống chế nhiệt độ dùng lm335

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

  • HELP! đo và khống chế nhiệt độ dùng lm335

    hôm nay nhận được đề tài đồ án: thiết kế bộ đo và khóng chế nhiệt đồ dùng cảm biến LM335. sử dụng cổng song song để ghép nối với mạch ngoài. kết quả đo được hiển thị trên máy tính dưới 2 dang: 01 bẳng con số, 02 đồ thị phản ánh sự biến thiên của nhiệt độ cần đo theo thời gian.
    em chưa biết phải bắt đầu từ đâu cả, các bác giúp em vơi nhé
    cam on cac bác trước nhé

  • #2
    Đề tài này cũng hơi căng đó. Vấn đề là bạn chọn loại chip gì? dùng LM35 hay DS18s20. Theo mình biết thì dùng con DS18s20 thì tiết kiệm chi phí hơn và thiết kế mạch gọn hơn

    Comment


    • #3
      vấn đề căng ở đây là biết lập trình để hiển thị dạng biểu đồ trên máy tính, còn phần cứng thì bạn có thể tham khảo rất nhiều trên diễn đàn. trường hợp tự chọn IC cảm biến thì bạn nên chọn DS18B20 cho tiện lợi và chính xác, con này là loại DIGITAL nên khỏi lo vấn đề cân chỉnh. chúc bạn thành công.

      Comment


      • #4
        Nguyên văn bởi phungdontinh
        các bac oi bac nao co so do nguyen ly thi cho em xin voi de em lam.
        giup em voi
        Thế này nha, mình sẽ nói sơ sơ về ý tưởng. Rồi bác cứ chọn phần cứng, bắt tay vào mô phỏng, có khó khắn gì thì post lên, chứ như thế này thì khó lắm bạn ah.

        Một hệ thống sẽ bao gồm:
        + sensor nhiệt: bao gồm dây cấp nguồn, và dây truyền tín hiệu ( thông thường chỉ có 3 dây thôi)
        + IC giao tiếp giữa máy tính và sensor nhiệt.
        + Trên lí thuyết tất cả các quá trình trên phải là real time. nhưng vì nhiệt độ ko bao giờ thay đổi quá đột ngột, và thay đổi tuyến tính nên bạn cứ việc thoải mái viết chương trình ghi nhận nhiệt độ sau mỗi 10s, hiện thị bằng số. Và cứ sau 1 phút thì vẽ lại đồ thị nhiệt.

        Bạn có thể thao khảo hệ thống các đầu do nhiệt dùng trong các kho, nhà xưởng.

        Comment


        • #5
          Nguyên văn bởi phungdontinh
          uh cam on bac nhe em se lam nhu vay co j bac jup e nhe
          bác làm đi. Mà bác học trường gì? Để mình biết xem nên làm mạch nó lớn đến đâu.
          Thế này: có 2 hướng làm.
          --Ko dùng MCU:
          + Sensor nhiệt ----> LPT ----> PC. Con LM335 biến nhiệt độ thành điện áp, thì giữa sensor nhiệt >< LPT sẽ có thêm những thành phần sau: mạch khuếch đại điện áp ( thường là từ 0 đến 5V) , và 1 con ADC. phần việc còn lại chỉ là viết chương trình trên PC thôi. Cái nì chắc là khó khăn.
          --Dùng MCU:
          + Sensor nhiệt ----> ADC ----> MCU ----> LPT ----> PC. Giao tiếp MCU với PC qua cổng LPT thì đã có chuẩn. ADC >< MCU cũng đã có rồi.

          Ah, còn 1 vấn đề nữa: bạn nói khống chế nhiệt độ là sao? Có phải là đặt ngưởng LOT, HIT để nhiệt độ ko được vượt quá đúng ko? Cũng rất khó về mặt thực tế, nhưng bạn có thể dùng 1 chân của cổng song song( thường là DB 25 cái) điều khiển cái quạt. Nhiệt độ vượt ngưỡng HI thì quạt sẽ chạy, còn cái ngưỡng LO làm sao thì hẻm biết. Há há

          Còn nếu giao tiếp LPT khó khăn thì bạn chuyển sang dùng giao tiếp COM. Các hệ thống nhiệt dùng RS485 giao tiếp với PC, còn RS232 để kết nối các dãy đầu dò lại với nhau.
          Đề tài bạn khá khó đấy, lập trình C phải vững vàng. Hiện tại mình đang làm bên thiết bị y tế, nên ít có thời gian. Bạn làm đến đâu thì post đến đấy.

          Hix, post hoài mệt lém..... liên hệ Y!M: lovelymouse989
          Last edited by mouse989; 02-06-2009, 11:17.

          Comment


          • #6
            yêu cầu cụ thể ở đây là: nếu nhiệt độ thấp hơn nhiệt độ khống chế sẽ có một thông báo. khi nhiệt độ môi trường lớn hơn nhiệt độ khống chế sẽ có một thông báo. khi nhiệt độ môi trường bằng nhiệt độ khống chế thì sẽ có một thông báo

            Comment


            • #7
              Nguyên văn bởi phungdontinh Xem bài viết
              yêu cầu cụ thể ở đây là: nếu nhiệt độ thấp hơn nhiệt độ khống chế sẽ có một thông báo. khi nhiệt độ môi trường lớn hơn nhiệt độ khống chế sẽ có một thông báo. khi nhiệt độ môi trường bằng nhiệt độ khống chế thì sẽ có một thông báo
              Ờ vậy thì viết chương trình bằng C cho PC thôi, ko có gì hết.
              If t > HIT, t< LOT thì sẽ xuất hiện một msg box else thì sẽ xuất hiện 1 msg box khác nữa.
              Mà bác học trường gì?

              Comment


              • #8
                em học trường công nghiệp hà nội. bác có thể hướng dẫn em viết bang acssem không? vì c thì em chẳng biết một tẹo nào cả

                Comment


                • #9
                  Nguyên văn bởi phungdontinh Xem bài viết
                  em học trường công nghiệp hà nội. bác có thể hướng dẫn em viết bang acssem không? vì c thì em chẳng biết một tẹo nào cả
                  hix, làm sao viết Assembly được? Bởi vì bạn nói là kết nối với máy tính rồi hiển thị kết quả mà? Máy tính thì viết C đi.
                  Còn nếu muốn viết asembly thì phải đổi đề tài lại 1 chút, là ko còn kết nối máy tính nữa, đọc nhiệt độ, xong rồi hiển thị ra LCD, hoặc LED luôn.
                  Sr, mấy nay đi công tác ko reply sớm được

                  Comment


                  • #10
                    k rành tin học mà viết C cho PC thì chỉ có chuốc thêm rắc rối, bạn tìm hiểu Viusual Basic đi, có sẵn giao diện dạng cửa sổ, lại khá đơn giản để bắt đầu. còn tài liệu giao tiếp PC qua LPT thì search trên mạng nhé, rất nhiều.
                    phần khống chế nhiệt độ bạn có thể viết trên PC hay lập trình trên kit luôn cũng được.

                    1 chút góp ý, he he.

                    Comment


                    • #11
                      Làm đến đâu rồi vậy pác? Uhm, dùng Visual Basic cũng được.

                      Comment


                      • #12
                        mình góp ý một chút nha, nếu dùng sensor thì nên dùng loại số. Như DS18B20 chẳng hạn. Nếu dùng LM35 hay 335 thì mạch phức tạp, không thể real time đc. Làm nóng hay lạnh thì phải mất một khoảng thời gian khá lâu mới có thể nhận được giá trị chính xác. Còn dùng số thì chỉ cần thở một phát là nhiệt độ tăng lên thấy rõ luôn, và lại còn vấn đề nhiệt độ âm cũng khá đơn giản. Đơn cử như con DS18B20, cứ thêm bao nhiêu sensor vào chung một bus là đc.

                        Comment


                        • #13
                          Nguyên văn bởi thientaisodo Xem bài viết
                          mình góp ý một chút nha, nếu dùng sensor thì nên dùng loại số. Như DS18B20 chẳng hạn. Nếu dùng LM35 hay 335 thì mạch phức tạp, không thể real time đc. Làm nóng hay lạnh thì phải mất một khoảng thời gian khá lâu mới có thể nhận được giá trị chính xác. Còn dùng số thì chỉ cần thở một phát là nhiệt độ tăng lên thấy rõ luôn, và lại còn vấn đề nhiệt độ âm cũng khá đơn giản. Đơn cử như con DS18B20, cứ thêm bao nhiêu sensor vào chung một bus là đc.
                          Oh LM335 ko real time được ah? Bản chất LM335 nó là sensor chuyển nhiệt thành điện áp, còn DS1820 là gì? hihi, có phải cũng là sensor nhiệt, nguyên lí cơ bản thì mình ko biết, nhưng ít nhất cũng phải có chuyển thành điện áp, hay dòng điện, rồi sau đó mới số hóa dữ liệu. Thế cái nào real time hơn hả bạn?
                          Thế này, bạn viết chương trình đọc giá trị liên tục của LM335 rồi hiển thị đi, ko delay gì hết? 1 chu kì đọc như vậy tính đại khái là 10ms. Rồi bạn coi, khỏi cần thở mà nhiệt độ vẫn thay đổi. Thở vào 1 phát là nó chạy từ a-z luôn.
                          Nếu như bạn nói thì DS1820 số hóa tốt hơn, thế sao trong các hệ thống đầu dò nhiệt ng ta ko dùng loại số đi? mà vẫn dùng các sensor thông thường?

                          Sr ví bức xúc quá

                          Comment


                          • #14
                            Nếu bạn nói như vậy chứng tỏ bạn chỉ mới tìm hiểu chứ chưa làm thực tế đúng ko?!
                            Sensor LM35 hay 335 thì đã có sẵn ADC của vi điều khiển, chỉ cần đưa vào đọc, vi chỉnh nhờ biến trở nữa là ok nên nó phổ biến, còn dùng DS thì gặp một chuẩn giao tiếp mới 1-Wire (mình phải mất mấy ngày mới chinh phục đc nó). Nếu bạn đang dùng 8051 thì vấn đề ADC lại phức tạp hơn vì phải thêm ADC ngoài. Và đảm bảo là sau ít ngày bạn phải lấy cục đá để cân chỉnh lại biến trở cho đúng với nhiệt độ thực.
                            Mình đã sử dụng cả LM335 và LM35, khi đo nhiệt độ, nếu bạn thay đổi nhiệt độ đo xong nó thu thập nhiệt độ rồi phải để mấy giây nó mới về nhiệt độ thực ở xung quanh, nếu chênh lệch nhiệt độ lớn thì phải mất đến hơn 10s đó. (ko biết tại lý do LM335 mua ở VN còn DS18B20 sample ở Mỹ hay ko? )
                            Còn DS18B20 thì chỉ cần bạn thở, nhiệt độ lên và xuống tức thời, thấy rõ luôn (mình thở ra nó báo 32 độ, ko biết có bị ốm ko ). Bạn bỏ LM335 vào nước, chắc chắn ít nhiều nước sẽ làm thay đổi áp ra của sensor vì ít nhiều nc dẫn điện, DS18B20 thì ko, đo nhiệt độ của nước đá, nước sôi đều ok. Còn nữa, nếu bạn dùng LM335 thì mỗi con bạn phải mất 1 chân để thu thập nhiệt độ, còn DS18B2 thì bao nhiêu con cùng chung 1bus 3 dây (VCC - Tín hiệu - GNG) (hoặc cần thiết chỉ dùng 2 đường: Tín hiệu - GND), miễn là bus đừng dài quá 300met.
                            Nếu bạn có hứng thú chuyển qua con nhiệt độ số này thì mình cho code C mẫu đã test thử và chạy ngon lành (dành cho PIC- nhưng cơ bản thì code C nào chẳng giống code C nào )
                            Last edited by thientaisodo; 26-06-2009, 18:35.

                            Comment


                            • #15
                              Công thức tính nhiệt cho LM35
                              ADC 10bit:

                              temp= (value_adc- (1023/5)2.73) )/ (10*1024/5000) = (value_adc -558,5)/2,048

                              Tương tự, ADC 8bit:

                              temp= (value_adc- (255/5)2.73) )/ ((10*256)/5000) = (value_adc -139,23)/0,512

                              Good Luck !

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X