Thông báo

Collapse
No announcement yet.

Cần giúp đỡ gấp để hoàn thành khóa luận

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

  • Cần giúp đỡ gấp để hoàn thành khóa luận

    Mình làm đề tài đo và điều khiện nhiệt độ dùng VĐK ATMega16 giao tiếp với máy tính. Vì không có thời gian nghiên cứu về Atmega nên nhờ mọi người giúp đỡ để mình nộp khóa luận vào cuối tháng này.
    *** Dùng cặp nhiệt điện đo đưa tín hiệu analog vào PA0 (ADC0) với hệ số là 25mV/oC, sử dụng chế độ ADC 10 bit, Vref là +5V, khoảng đo là 0 đô (0V) đến 200 độ (5V)
    *** Hiển thị giá trị đo ra LED7 đoạn và truyền giá trị này lên máy tính
    *** Bàn phím 5 nút nhấn: nút MODE, sang trái, sang phải, tăng, giảm để đặt giá trị điều khiển --> hiện lên led 7 đoạn và truyền lến máy tính
    *** Dùng VB6.0 viết giao diện và diều khiển PID cho tải dùng PWM
    Mình không biết cách giải quyết và không hiểu ở những điểm sau:
    --- Nếu dùng Vref=5V --> độ phần giải là 5V/(2^10-1)=4.88mV~5mV~0.2 độ C
    Vin=0V (@0 độ C) --> ADC=0
    Vin=5V (@200 độ C) --> ADC=1023
    Vậy nếu nhiệt độ hiện tại là 200 đô tức ADC=1023 --> Temp=1023*0.2=204.6 độ --> sai số tới 4 độ. vậy có cách nào để giảm sai số này không. Mình cần một đoạn code sử dụng ICC để lấy giá trị ADC
    ---- Mình gắn nút nhấn mode (tín hiệu đặt nhiệt độ và LED 7 đoạn đầu tiên sẽ nhấp nháy) vào ngõ vào ngắt INT1 (PD3), còn các nút nhấn còn lại gắn vào các lối vào khác mà không phải lối vào INT2,3 được không? và cách truyền nhiệt độ đặt này lên máy tính như thế nào, có nhất thiết phải ghi giá trị này vào eprom để truyền lên máy tính không?
    ---- Để dùng VB truyền thông giữa máy tính và VDK thì mình phải khai báo Uart phải không? và cách đưa dữ liệu nhiệt độ đo được và nhiệt độ đặt của bàn phím lên máy tính trên giao diên của VB như thế nào? Có cần phải đồng bộ 2 tín hiệu này không? Cách chọn kênh đưa lên như thế nào?
    ---- Dùng VB để điều khiển PID cho tải theo PWM thì có phải viết code VB như thế nào?
    Rất mong nhận được sự giúp đỡ nhiệt tình của mọi người.

  • #2
    --- Nếu dùng Vref=5V --> độ phần giải là 5V/(2^10-1)=4.88mV~5mV~0.2 độ C
    Vin=0V (@0 độ C) --> ADC=0
    Vin=5V (@200 độ C) --> ADC=1023
    --> thực hiện hàm số nhiệt độ theo giá trị ADC: temper=200*ADC/1024;

    Mình gắn nút nhấn mode (tín hiệu đặt nhiệt độ và LED 7 đoạn đầu tiên sẽ nhấp nháy) vào ngõ vào ngắt INT1 (PD3), còn các nút nhấn còn lại gắn vào các lối vào khác mà không phải lối vào INT2,3 được không?--> nút nhấn thì làm kiểu nào cũng được( dùng interrupt hay polling đểu được).

    Truyền dữ liệu lên máy tính: dùng RS-232, cái này lại là 1 vấn đề riêng, bạn tìm hiểu có nhiều topic bàn về vấn đề này rồi.
    có nhất thiết phải ghi giá trị này vào eprom để truyền lên máy tính không?--> không cần thiết, giống như bạn truyền giá trị real time, nếu ghi vào eeprom rồi lấy từ eeprom truyền lên máy tính thì dữ liệu bị delay, cứ tính xong gia trị trong Ram rồi truyền lên (thực ra delay này trong điều khiển nhiệt độ cũng ko quan trọng)

    Vấn đề truyền dữ liệu thì bạn phải định ra protocol truyền qua lai ( vi dụ như bạn quy dịnh COMMAND từ PC xuống MCU: lệnh đọc giá trị hiện tại, lệnh đọc set point value....)

    Về PID số thì chắc bạn cũng đã biết cách viết hàm truyền. Còn xử lý PWM như sau: ví dụ hàm truyền có giá trị từ min đến max, min tương ứng điều rộng 0%, Max tương ứng 100%PWM. Sau mổi chu kỳ tính giá trị hàm truyền thì bạn xử lý việc điều rông xung theo 1 chu ky thời gian nào đó (0.5s hay 1s.....)phải làm thực nghiệm

    Theo mình nếu bạn chưa có nhiều kinh nghiệm thì làm từng bước 1: test phía MCU, test phần giao tiếp RS-232, rồi đến test truyền dử liệu, viết program...

    Comment


    • #3
      Cặp nhiệt bác dùng chắc chắn phải qua một bộ khuếch đại tín hiệu mới dùng được. Thực ra cũng không nhất thiết phải là 25mV/độ C. Chỉ cần khuếch đại lên một điện áp vừa phải thui cũng được (ví dụ 200 oC >> 4V cũng được) sau đó bạn dùng phần mềm mà chỉnh lại giá trị hiển thị theo ý muốn (chỉ cần nhân thêm một hệ số k đủ lớn là được)

      Comment

      Về tác giả

      Collapse

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

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

      Collapse

      Đang tải...
      X