Mạch đo nhiệt độ dùng AT8 và LM35

Thảo luận trong 'Các họ khác' bắt đầu bởi VQA, 28/10/11.

  1. VQA Administrator

    Mạch đo nhiệt độ dùng AT8 và LM35

    Hôm trước một số bạn có hỏi mình về cách đo nhiệt độ. Trên mạng cũng có khá nhiều tài liệu cũng như bài viết về cảm biến nhiệt độ. Hôm nay, mình sẽ tổng hợp và hướng dẫn các bạn xây dựng ví dụ cảm biến nhiệt sử dụng ATMEGA8 và LM35.

    Trước hết, chúng ta cần xác định được yêu cầu của bài toán : cảm biến nhiệt độ và thể hiện trên LCD. Như thế để làm được ví dụ này, chúng ta cần có một chút hiểu biết về làm việc với LCD trong ATMEGA8 và CodeVision. Các bạn có thể tìm hiểu thêm các vấn đề này trên mạng.

    Tiếp theo, chúng ta cần nắm được nguyên tắc hoạt động của LM35. LM35 cảm biến sự thay đổi nhiệt độ và tạo ra sự thay đổi điện áp trên đầu Vout. Dải điện áp này biến thiên từ 0 đến 5 V. Chúng ta sẽ sử dụng bộ ADC đọc giá trị điện áp này và quy đổi ra nhiệt độ tương ứng.

    Đối với ATMEGA8: 4 chân của PORTC sử dụng làm 4 kênh đầu vào ADC. Để sử dụng tính năng ADC của Atmega8 chúng ta cần phải thiết kế phần cứng của Vi điều khiển như sau :
    • Chân AVCC cấp nguồn cho các kênh (đầu vào) của bộ biến đổi.
    • Chân AREF cần cấp 1 giá trị điện áp được sử dụng làm điện áp tham chiếu. Với 1 giá trị đầu vào chúng ta có công thức tính như sau:

    ADCx=(adc_vIn*1024)/ AREF

    Giá trị ADC thu được từ các kênh được lưu vào 2 thanh ghi ADCH và ADCL khi sử dụng chúng ta phải đọc giá trị từ các thanh ghi này. Khi dùng Code Vision giá trị ADC được lưu trong mảng adc_data[]

    Oki, đã qua giai đoạn khó khăn nhất là lý thuyêt, chúng ta có thể bắt tay luôn vào khâu tiếp theo �o các bạn.</span>
    Hôm trước một số bạn có hỏi mình về cách đo nhiệt độ. Trên mạng cũng có khá nhiều tài liệu cũng như bài viết về cảm biến nhiệt độ. Hôm nay, mình sẽ tổng hợp và hướng dẫn các bạn xây dựng ví dụ cảm biến nhiệt sử dụng ATMEGA8 và LM35.

    Trước hết, chúng ta cần xác định được yêu cầu của bài toán : cảm biến nhiệt độ và thể hiện trên LCD. Như thế để làm được ví dụ này, chúng ta cần có một chút hiểu biết về làm việc với LCD trong ATMEGA8 và CodeVision. Các bạn có thể tìm hiểu thêm các vấn đề này trên mạng.

    Tiếp theo, chúng ta cần nắm được nguyên tắc hoạt động của LM35. LM35 cảm biến sự thay đổi nhiệt độ và tạo ra sự thay đổi điện áp trên đầu Vout. Dải điện áp này biến thiên từ 0 đến 5 V. Chúng ta sẽ sử dụng bộ ADC đọc giá trị điện áp này và quy đổi ra nhiệt độ tương ứng.

    Đối với ATMEGA8: 4 chân của PORTC sử dụng làm 4 kênh đầu vào ADC. Để sử dụng tính năng ADC của Atmega8 chúng ta cần phải thiết kế phần cứng của Vi điều khiển như sau :
    • Chân AVCC cấp nguồn cho các kênh (đầu vào) của bộ biến đổi.
    • Chân AREF cần cấp 1 giá trị điện áp được sử dụng làm điện áp tham chiếu. Với 1 giá trị đầu vào chúng ta có công thức tính như sau:

    ADCx=(adc_vIn*1024)/ AREF

    Giá trị ADC thu được từ các kênh được lưu vào 2 thanh ghi ADCH và ADCL khi sử dụng chúng ta phải đọc giá trị từ các thanh ghi này. Khi dùng Code Vision giá trị ADC được lưu trong mảng adc_data[]

    Oki, đã qua giai đoạn khó khăn nhất là lý thuyêt, chúng ta có thể bắt tay luôn vào khâu tiếp theo : lập trình và mô phỏng

    B1 : Tạo sơ đồ mạch sau :
    [​IMG]


    B2 : Viết chương trình trên Code Vision :
    * Khởi tạo project và chọn chip

    [​IMG]
    * Khởi tạo LCD

    [​IMG]

    * Khởi tạo ADC

    [​IMG]
    * Viết code chương trình

    + Bổ sung thêm thư viện

    PHP Code:
    #include <stdlib.h>
    + Khai báo các biến

    PHP Code:
    // Declare your local variables here
    float adc_vIn;
    int nhietDo;
    unsigned char thongBao[3];
    + Đọc adc_vIn, tính nhiệt độ và hiện thị trên LCD

    PHP Code:
    B3 : Chạy mô phỏng

    [​IMG]

    B4 : Cắm mạch thật để test

    Chúc các bạn thành công.

    Link download mã nguồn và tài liệu hướng dẫn : Free File Hosting Made Simple - MediaFire
     
  2. mientay269

    mientay269 New Member

    sao tải không được bạn ơi !
    hiện mình đang làm điều khiển nhiệt với AT8, đọc dữ liệu về giao tiếp và điều khiển trên phần mềm labview.
    bạn nào có chương trình của AT8 hay tài liệu thì cho mình xin nha !
    mientay269@gmail.com
    cám ơn nhiều.
     
  3. thuong121991

    thuong121991 New Member

    bạn có thể làm cho minh xin cái code của mạch này không! phần hướng dẫn kia mình không hiểu? bạn có thế gửi qua địa chỉ: nguyenvanthuong91@gmail.com. thanks bạn nhiều!
     
  4. deargod

    deargod New Member

    không down được bạn ơi, gửi giúp mình vào mail nhé deargod1991@gmail.com
    cám ơn nhiều
     
  5. hankiemson

    hankiemson New Member

    Link die rui, ban lam on gui wa email giup minh nha....Thanks nhiu!! Cho minh xin code ATM va huong dan mach nhiet do LM35
    rachgam@gmail.com
     
  6. ggzz

    ggzz New Member

    mình bị mắc chỗ lm35 giao tiếp với máy tính, bạn có code cho mình xin tham khảo với
     
  7. spartannhat007

    spartannhat007 New Member

  8. danckm

    danckm New Member

    cho mình xin code được không bạn ơi
     
  9. yolocol

    yolocol New Member

    Bạn gửi lại file cho mình được k ạ. Mình đang rất cần. Cảm ơn. ngocvuongd13@gmail.com
     

Chia sẻ trang này