Thông báo

Collapse
No announcement yet.

đo nhiệt độ bằng LM35 thông qua ADC

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

  • đo nhiệt độ bằng LM35 thông qua ADC


    chào các pác .em có câu hỏi muốn hỏi các pác.
    Em đang làm báo cáo môn học là.dùng LM 35 để đo nhiệt độ.nhưng mà em chưa biết làm thế nao cả.Phần cứng thì em nối xong rùi .nhưng mà còn phần mềm thì em chưa biết làm thế nao để đưa tín hiệu từ LM 35 ra cả.
    Pác nào biết về thuật toán của món này thì chỉ giáo cho em với.thật sự em rất bí ở lưu đồ thuật toán.
    thank các pác nhiều

  • #2
    Nguyên văn bởi 01685753092 Xem bài viết

    chào các pác .em có câu hỏi muốn hỏi các pác.
    Em đang làm báo cáo môn học là.dùng LM 35 để đo nhiệt độ.nhưng mà em chưa biết làm thế nao cả.Phần cứng thì em nối xong rùi .nhưng mà còn phần mềm thì em chưa biết làm thế nao để đưa tín hiệu từ LM 35 ra cả.
    Pác nào biết về thuật toán của món này thì chỉ giáo cho em với.thật sự em rất bí ở lưu đồ thuật toán.
    thank các pác nhiều
    Bạn nên viết code bằng Codevision AVR, trong chương trình chính bạn khởi tạo các PORT và ADC. Nếu bạn hiển thị nhiệt độ ra LED7SEG thì phần hiển thị sẽ lấy dữ liệu từ một biến toàn cục, đặt phần hiển thị này trong vòng while (hoặc dùng ngắt timer). Dùng một timer khác để đếm thời gian, cứ 500ms thì timer sẽ đo điện áp từ ADC và lưu vào biến toàn cục ở trên.

    Bạn nên post sơ đồ lên, mọi người trong diễn đàn sẽ giúp bạn.
    Chúc bạn thành công!

    Comment


    • #3
      Muốn dùng Buff sử dụng OAmp trước khi cho vào chân ADC của AVR thì phải làm thế nào các bác nhỉ ?

      Comment


      • #4
        thank cac bác nhìu .
        em muon hỏi 1 vấn đề nữa là cái thuật toán,em có tham khảo qua nhưng ko hỉu lám.bác nào biết thì chỉ giáo giúp em với.thuật toán như sau:
        unsigned int hienthi(unsigned char a)
        {
        int n;
        ndouble)(a*(float)((float)(5000)/(float)(1024))));
        nfloat)(n)-2732)/((float)(10));


        }
        những hàm double rồi thì float để làm gì vậy sao nhìu thế chóng hết cả mặt.
        thuật toán hiển thị như sau:
        a=read_adc(4);
        n=hienthi(a);
        x=n/10;
        y=n-n/10;

        PORTC=x;
        PORTB.0=0x01;
        delay_ms(3);

        PORTC=y;
        PORTB.1=0x01;
        delay_ms(3);

        Comment


        • #5
          Kiểu float trong hàm để tính ra giá trị có dấu chấm thập phân, trong khi xài biến double thi giá trị sẽ bị làm tròn. Ví dụ cho bạn thấy sự khác nhau:
          double n;
          n=(double) 9999 / (double) 5000; -----> kết quả n=1 (làm tròn)
          nhưng nếu:
          float n;
          n= (float) 9999 /(float) 5000; ---------> kết quả n=1.9998
          Bạn thấy là rất kết quả khác nhau và cái sau chính xác hơn nhiều
          Còn cái kiểu (float) 9999 được gọi là "ép kiểu" có nghĩa là bạn bắt buộc nó phải là dạng float, nếu không thì mặc định chương trình sẽ hiểu nó là 1 biến kiểu interger

          Comment


          • #6
            có bác nào có bài mẫu nào không .post lên anh em tham khảo cái nhỉ

            Comment


            • #7
              ko hiểu sao khi chạy chương trình thì khi EM TĂNG NHIỆT Độ thì giá trị của nhiệt độ hiển thị lại giảm.chán...bác nào bít thì chỉ giùm em với

              Comment


              • #8
                Tui đã làm cái này cho thằng em nhưng kô hiểu nó bị gì mà nhiệt độ cứ nhảy lên xuống 1-2 độ chứ kô chịu đứng yên


                email:
                Giá mà mạch điện tử không có nhiễu (noise) thì mình bây giờ đã là ... đại gia

                Comment


                • #9
                  Nguyên văn bởi Nomad204 Xem bài viết
                  Muốn dùng Buff sử dụng OAmp trước khi cho vào chân ADC của AVR thì phải làm thế nào các bác nhỉ ?

                  Nguyên văn bởi hoangtuan88 Xem bài viết
                  có bác nào có bài mẫu nào không .post lên anh em tham khảo cái nhỉ
                  Có ví dụ nè..http://dientuvietnam.net/forums/show...419#post177419

                  Nguyên văn bởi luong_k45 Xem bài viết
                  ko hiểu sao khi chạy chương trình thì khi EM TĂNG NHIỆT Độ thì giá trị của nhiệt độ hiển thị lại giảm.chán...bác nào bít thì chỉ giùm em với
                  Bạn xem lại trong thiết kế xem, có thể điện trở hạn dòng cho LM335 lớn nên khi nhiệt độ cần đo tăng thì có hiện tượng điện áp trên cảm biến giảm.
                  Tốt nhất là sử dụng điện trở 1K với điện áp cấp cho cảm biến là 5V.

                  Nguyên văn bởi otacon Xem bài viết
                  Tui đã làm cái này cho thằng em nhưng kô hiểu nó bị gì mà nhiệt độ cứ nhảy lên xuống 1-2 độ chứ kô chịu đứng yên
                  Có thể do bạn lấy mẫu và xuất trực tiếp ra led quá nhanh.
                  Bạn thử đọc AD khoảng 10 lần, tính trung bình và hiển thị giá trị này. Đây là bộ lọc thông thấp.
                  Nếu chỉ cho yêu cầu báo nhiệt độ thì 1 giây hiển thị 3 lần là đc.

                  Comment


                  • #10
                    Mình đã làm trễ khoảng 1 giây cập nhật 1 lần,nó vẫn nhảy,nếu không làm trễ mà xuất trực tiếp thì nó nhảy nhanh tới nỗi làm con Led 7 đoạn bị sáng lem,đ/a đo trên chân Vref2 vẫn ồn định,có khi nào tại con ADC không các bác.
                    Àh,hồi trước ông thầy em có nói con ADC muốn làm việc tốt phải đổ Mass thật nhiều dưới bụng của nó(em thì mới đổ được 1/3 vì phải chừa chỗ cho đường line chứ).
                    Có ai bị như thế này chưa?khắc phục thế nào?


                    email:
                    Giá mà mạch điện tử không có nhiễu (noise) thì mình bây giờ đã là ... đại gia

                    Comment


                    • #11
                      bác nào có code của chương trình đo nhiẹt đọ ko ?post lên cho anh em tham khả và học tập với

                      Comment


                      • #12
                        bÁC xem lại cái điện áp cấp cho AREF phải ổn định, nếu không thì nó không chịu đứng yên đâu mặc dù đầu vào của bác rất ổn định!!!

                        Comment


                        • #13
                          Chào bạn mình đang làm về đo nhiệt độ phòng dùng LM35 và ATemega 16 bạn có thể gửi code bài của bạn cho mình tham khảo được không . Cảm ơn bạn rất nhiều . Mail của mình : yeuphanmem@gmail.com

                          Comment


                          • #14
                            ban nao co so do mach do nhiet do va giai thich nguyen ly hoat dong cua mach
                            su dungcam bien nhiet do lm35 adc 0808 va vvi xu li at89c51 hok?cho minh voi.cam on va hau ta

                            Comment


                            • #15
                              Tham khảo cái này mình viết khi còn là SV
                              Attached Files


                              Add: 97 Quán Nam - Lê Chân - Hải Phòng.
                              Tel: 031 518648 Phone: 0904 283 505

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X