đo và điều khiển nhiệt đô bình nước dùng PIC 16f887a

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • dovanhiep
    Đệ tử 1 túi
    • Dec 2007
    • 11

    #1

    đo và điều khiển nhiệt đô bình nước dùng PIC 16f887a

    Em có bài tập về PIc16f887a, mong mọi người giúp đỡ!
    Em mời làm quen với PIC, ai có tài liệu nào liên quan tới PIC thì post lên luôn nha!
    Thanks!
  • NANO
    Nhập môn đệ tử
    • Nov 2007
    • 4

    #2
    Mình xin trích dẫn 100% bài của bạn Linhnc bên DTVN:

    Nguyên văn bởi Linhnc308 View Post
    Đề tài: Mạch đo nhiệt độ và cảnh báo

    Chức năng của mạch:
    - Đo nhiệt độ môi trường tại một điểm thông qua sensor nhiệt LM335(Chi tiết về LM335 xem trong
    datasheet). LM335 là sensor đo nhiệt, đầu ra là 10mV/K. Do đó để đo độ C ta cần có công thức chuyển đổi
    giá trị. Vì ta dùng ADC của PIC là 8bit (có thể dùng 10bit) => max=255, Vref=VCC, giả thiết là VCC=5V nên tại 0 độ C
    hay 273K thì đầu ra của LM335 có giá trị là 2.73V. Như vậy khi muốn tính toán ra độ C ta cần phải trừ đi mức
    điện áp là 2.73V. Lấy ví dụ: nhiệt độ là 30 độ C = 303K -> out = 303 x 10mV/K =3.03V. Ta tính toán giá trị đọc được từ
    ADC.
    ADC 8 bit: V_in = VCC=5V => ADC_value = 255
    V_in = 2.73V => ADC_value = (255/5)x2.73=139.23 (tương ứng 0 độ C)
    V_in = 3.03V => ADC_value = (255/5)x3.03=154.53 (tương ứng 30 độ C)
    Mặt khác do V_ref = VCC=5V nên ADC_value=1 tương ứng 5/255=19.6mV ~ 20mV. Trong khi đó LM335
    cho ra điện áp là 10mV/1K nên để giá trị ADC thay đổi 1 đơn vị thì nhiệt độ phải thay đổi là 2K (hay 20mV)
    Từ đó ta có công thức đầy đủ sau để tính giá trị độ C:

    C = (ADC - 139.25)x(19.6mV/10mV)=(ADC-139.25)x1.96~(ADC-139.25)/0.512
    Tương tự ta có công thức cho ADC 10bit và 12 bit:
    ADC_10_bit: C= ( reading-558.6)/ 2.048
    ADC_12_bit: C= ( reading-2235.9)/ 8.19

    - Để hiện thị giá trị nhiệt độ ta có nhiêu phương án như LED 7, LCD, máy tính(qua RS232)... Trong đề tài
    này ta dùng LED 7 thanh cho việc hiển thị. Gồm có hai LED 7, dùng PIC để giải mã hiển thị cho LED (có thể
    dùng 7447 để tiết kiệm chân). Để cảnh báo ta đặt khoảng theo dõi nhiệt độ là từ 15 C đến 40 C (cái này tuỳ
    vào người dùng) khi nhiêt độ nằm ngoài khoảng này thì phát tín hiệu cảnh báo bằng loa và có thể gửi tìn
    hiệu điều khiển đến các mạch khác nếu có.
    - Mạch có sử dụng thêm điện trở tinh chỉnh 10K tại chân ADJ của LM335 để điều chỉnh nhiệt độ ban đầu cho
    phù hợp.

    Mở rộng của đề tài:
    - Nâng cao độ chính xác hiển thị bằng cách dùng ADC có độ phân giải cao hơn (có thể dùng ADC ngoài)
    - Thêm bàn phím giao tiếp để có thể thay đổi trực tiếp khoảng nhiệt độ theo dõi, cùng với đó ta thêm vào
    LED 7 để hiển thị hai giá trị nhiệt độ này
    - Sử dụng EEPROM để lưu giá trị nhiệt độ mà người dùng thiết lập, các lần thay đổi khác...
    - Ghép nối máy tính để truyền giá trị nhiệt độ đến máy tính
    - Ghép nối LCD và một mạch đếm thời gian thực (DS1307) để ứng với mỗi thời điểm chương trình sẽ tự động
    chọn khoảng thiết lập nhiệt độ thích hợp theo từng mùa, từng thời điểm định trước...
    - Sử dụng PID trong điều khiển tự động kết hợp với các mạch điều khiển tăng giảm nhiêt độ để đảm bảo nhiệt
    độ luôn bám theo một giá trị cho trước, hệ ổn định nhiệt (giá trị thay đổi là rất nhỏ)
    - Vân vân và vân vân...anh em nào có thêm cao kiến gì thì bổ sung.

    Liện hệ: linhnc308@yahoo.com

    Files gửi kèm bao gồm sơ đồ mạch Orcad và code viết bằng CCS.

    Hướng dẫn quá chi tiết rồi đó.
    Chúc thành công
    Have Fun

    Comment

    • dovanhiep
      Đệ tử 1 túi
      • Dec 2007
      • 11

      #3
      Cảm ơn bạn

      Nguyên văn bởi NANO View Post
      Mình xin trích dẫn 100% bài của bạn Linhnc bên DTVN:




      Hướng dẫn quá chi tiết rồi đó.
      Chúc thành công
      Have Fun
      Bạn ơi!v Mình mới làm quen với Pic. Trong đầu bài thầy còn yêu cầu dùng PT100, chứ không phải dùng LM335.
      Bạn có thể hướng dẫn cụ thể cho mình thêm chút nữa được không?
      Cảm ơn bạn!

      Comment

      • ThanhPhuc
        Đệ tử 2 túi
        • Jul 2005
        • 35

        #4
        Theo mình Pic 16F877a đủ để bạn làm đề tài không cần phải dùng thêm ADC hoặc EEprom ngoài,nếu khéo tính toán và xử lý độ chính xác có thể đạt được 0,1 Độ C.
        Chúc bạn thành công.

        Comment

        • VNArmy
          Đệ tử 2 túi
          • Jan 2007
          • 33

          #5
          Nguyên văn bởi dovanhiep View Post
          Bạn ơi!v Mình mới làm quen với Pic. Trong đầu bài thầy còn yêu cầu dùng PT100, chứ không phải dùng LM335.
          Bạn có thể hướng dẫn cụ thể cho mình thêm chút nữa được không?
          Cảm ơn bạn!
          Với PT100 bạn có thể dùng nguồn dòng để nuôi nó hoặc dùng mạch cầu điện trở. Mạch khuếch đại có thể dùng AD620 là OK.
          OpAmp, EEPROM, Real Time, MCU, 74xx, 4xxx, ADC, DAC... vào đây
          LCD các loại vào đây

          Comment

          • xuanhiendk2
            Đệ tử 3 túi
            • Jan 2009
            • 52

            #6
            Nguyên văn bởi ThanhPhuc View Post
            Theo mình Pic 16F877a đủ để bạn làm đề tài không cần phải dùng thêm ADC hoặc EEprom ngoài,nếu khéo tính toán và xử lý độ chính xác có thể đạt được 0,1 Độ C.
            Chúc bạn thành công.
            Bạn có thể làm chính xác đến 0.1 độ C à? Hix hix cao thủ cao thủ!!!!Mình đo nhiệt độ trong khoảng từ 0-100 độ C sử dụng PLC truyền thông lên máy tính. Mới chỉ đạt sai số 0.14 độ C. Bạn đạt mức sai số 0.1 độ C thì bạn đã kiểm chuẩn ở đâu rồi thế???

            Comment

            • namqn
              Trưởng lão PIC bang
              • Feb 2006
              • 3020

              #7
              Nguyên văn bởi xuanhiendk2 View Post
              Bạn có thể làm chính xác đến 0.1 độ C à? Hix hix cao thủ cao thủ!!!!Mình đo nhiệt độ trong khoảng từ 0-100 độ C sử dụng PLC truyền thông lên máy tính. Mới chỉ đạt sai số 0.14 độ C. Bạn đạt mức sai số 0.1 độ C thì bạn đã kiểm chuẩn ở đâu rồi thế???
              Tôi cho là các bạn đang nói đến độ phân giải (resolution) của kết quả, chứ không phải là độ chính xác (accuracy).

              Thân,
              Biển học mênh mông, sức người có hạn.

              Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
              http://www.picvietnam.com/forum/showthread.php?t=1263

              Comment

              • xuanhiendk2
                Đệ tử 3 túi
                • Jan 2009
                • 52

                #8
                Em nói đến độ chính xác đó anh à. Sai số lớn nhất là 0.14 độ C trong dải 0-100 độ C

                Comment

                • namqn
                  Trưởng lão PIC bang
                  • Feb 2006
                  • 3020

                  #9
                  Nguyên văn bởi xuanhiendk2 View Post
                  Em nói đến độ chính xác đó anh à. Sai số lớn nhất là 0.14 độ C trong dải 0-100 độ C
                  Bạn tính sai số ra sao mà có kết quả đó?

                  Thân,
                  Biển học mênh mông, sức người có hạn.

                  Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
                  http://www.picvietnam.com/forum/showthread.php?t=1263

                  Comment

                  • xuantd2010
                    Nhập môn đệ tử
                    • May 2009
                    • 7

                    #10
                    thank all vi tai lieu nhe.rat bo ich.)

                    Comment

                    • hoangnguyen_qn
                      Đệ tử 1 túi
                      • Dec 2008
                      • 22

                      #11
                      chính xác đến 0.1 độ C là chấp nhận đc rồi
                      Ta biết rằng cố quên là sẽ nhớ nên dặn lòng cố nhớ để mà quên!

                      Comment

                      • maitruccucdao
                        Đệ tử 1 túi
                        • Apr 2009
                        • 20

                        #12
                        chào mọi người, em đang làm mạch đo nhiệt độ dùng con lm35 nhưng con này, có giá trị điện áp từ -55 đến 150,không biết phải tính toán như thế nào, giúp em với được chứ. phải nó hiện thị từ -55 là 0 v còn 150 là 2 v còn dể , đằng này nó lại hiện từ -55 vào khoảng -550mv, còn 150 là 1500mv. Cái giá trị đó làm sao hở mọi người.
                        Em đang làm về con pic6f877a. nhưng không biết phải mắt như thế nào để nâng mức điện áp lên khoảng 5 v khi nhiệt độ là 150 độ cả. Mong mọi người chỉ giáo nhé. thanks

                        Comment

                        • doflamingo
                          Nhập môn đệ tử
                          • Oct 2009
                          • 4

                          #13
                          thanks nhieu ,

                          Comment

                          • xuanhiendk2
                            Đệ tử 3 túi
                            • Jan 2009
                            • 52

                            #14
                            Nguyên văn bởi namqn View Post
                            Bạn tính sai số ra sao mà có kết quả đó?

                            Thân,
                            Em đã kiểm chuẩn tại cục đo lường chất lượng của BQP.
                            Sai số ở đây là sai số tương đối lớn nhất. Nghĩa là với các mẫu đo nhiệt độ, thiết bị đo của em bị lệch lớn nhất là 0,14 độ C.

                            Comment

                            • lephuthuan
                              Nhập môn đệ tử
                              • Sep 2010
                              • 2

                              #15
                              mình cũng đang làm đồ án về điều khiển nhiệt độ lò ấp dung pic 16f877a nữa, sao mình hong thấy file.rack đâu hết vậy, xin mọi người giúp đở email của minh nè: pthuan.dongthap@gmail.com thanks mọi người nhiều

                              Comment

                              Working...