Điều khiển Relay, Đọc nhiệt độ LM35 + Kích rơ-le + lcd1602, Lập trình Pic

dieu-khien-relay-doc-nhiet-do-lm35-ro-le-lcd1602-lap-trinh-pic
Điều khiển Relay giúp kích hoạt các thiết bị có điện áp cao như bóng đèn, quạt điện, máy bơm,… được xem là phương pháp cách ly hiệu quả và thịnh hành nhất hiện nay. Relay có nhiều loại tùy theo điện áp kích và dòng điều khiển của tải mà việc lựa chọn thích hợp được đề cao, Sử dụng phải tính toán tới việc nhiễu, đặt biệt là nhiễu từ trường dễ làm hệ thống hoạt động không ổn định, ngoài ra tuổi thọ các tiếp điểm thường không quá cao và tần số điều khiển cũng khá chậm nên chỉ dùng trong trường hợp đóng ngắt không điều khiển tần số cao. Ứng dụng trong công nghiệp hoặc hộ gia đình khá nhiều.

Mua linh kiện điện tử tại Điện tử Nhật Tùng

Liên hệ làm mạch  Phone: 0967.551.477 Zalo: 0967.551.477 Email: dientunhattung@gmail.com Địa Chỉ: 171/25 Lê Văn Thọ, P8, Gò Vấp, Tp HCM Chi tiết: Nhận làm mạch và đồ án Điện tử  
Khóa học Vi điều khiển có phí Hình thức học: Video hoặc Kèm trực tiếp ===>>>>  Kích vào hình để được biết thêm chi tiết khóa học lập trình vi điều khiển online

Tải File bài giải

Pass giải nén: Huynhnhattung.com
===>>>   Nếu bạn chưa có phần mềm giải nén:

Hướng dẫn Tải và Cài đặt phần mềm giải nén Winrar

Video Điều khiển Relay, Đọc nhiệt độ LM35 + Kích rơ-le + lcd1602

Blog Điều khiển Relay, Đọc nhiệt độ LM35 + Kích rơ-le + lcd1602

Đề bài điều khiển Relay:

dieu-khien-relay-doc-nhiet-do-lm35-ro-le-lcd1602-lap-trinh-pic-de-bai

Bài giải điều khiển Relay:

Phần cứng chương trình điều khiển Relay:

  • Đề yêu cầu sử dụng cảm biến nhiệt độ LM35 trả về tín hiệu Analog vì vậy phải đấu vào chân đọc tín hiệu ADC được ký hiệu là ANxx.
  • Hiển thị màn hình LCD1602 được chọn vào Port D. Theo yêu cầu đưa ra thứ tự chân RS, RW, EN được kết nối như hình.
  • Sử dụng dao động ngoài thạch anh 20M gắn vào chân OSC1 OSC2.
  • Sử dụng relay các bạn lưu ý vì dòng cấp để kích relay thường khá cao vì vậy phải dùng thêm một tranzitor để đệm ngõ ra của Vi điều khiển.
  • Các linh kiện chính cần sử dụng tham khảo tại.
    Thông số kỹ thuậtMua Linh kiện
    Pic16F887Pic16F877
    Led đơnLed đơn
    Điện trởĐiện trở
    Nút nhấnNút nhấn
    Thạch anhThạch anh
    Nhiệt độ LM35Nhiệt độ LM35
    LCD1602LCD1602
    RelayRelay
    QuạtQuạt
    Tranzitor C1815Tranzitor C1815
    Diode 1N4007Diode 1N4007
     
dieu-khien-relay-doc-nhiet-do-lm35-ro-le-lcd1602-lap-trinh-pic

Phần mềm điều khiển Relay:

Khai báo thư viện tiền sử lý của cảnh báo nhiệt độ:

  • Vi điều khiển hiện tại mình đan dùng là Pic16F887
  • Theo yêu cầu hệ thống có đọc giá trị ADC vì vậy phải khai báo ADC bằng lệnh #device  adc=10 tức sử dụng bộ ADC 10bit. Ngoài ra có thể chọn ADC 8bit16bit.
  • Hiện đan dùng thạch anh ngoài và thạch anh ngoài 8M bằng lệnh #Fuses    hs     và    #delay(clock=8M)
  • Khai báo thư viện  #include <lcd.c> được phần mềm hổ trợ vì vậy chỉ cần định nghĩa đúng chân theo kết nối phần cứng thì hệ thống sẽ hoạt động.
  • Định nghĩa chân: tùy theo chức năng của chân mà tên định nghĩa được bám sát vào nội dung đan thực hiện. Vì đây là bài thi nên việc định nghĩa chân phụ thuộc rất lớn vào nội dung đề bài.
  • Tên khai báo biến thì cái này tùy thuộc vào chức năng sử dụng.
dieu-khien-relay-doc-nhiet-do-lm35-ro-le-lcd1602-lap-trinh-pic-khai-bao

Chương trình chính thực hiện toàn bộ hoạt động của vi điều khiển dùng điều khiển Relay

  • Bắt đầu chương trình chính phải khỏi rạo ngõ vào ra cho vi điều khiển. Một chân của vi điều khiển thì làm nhiệm vụ I/O vì thế phải khỏi tạo. Port D, Port B kết nối vào LCD1602 và Relay nên xuất dữ liệu nên khởi tạo là 0x00. Port A chân RA0 kết nối vào cảm biến nhiệt độ LM35 dùng để đưa tín hiệu vào vi điều khiển nên dùng khai báo khởi tạo là 0x01.
  • Khởi tạo LCD1602 bằng lệnh lcd_init();
  • Khởi tạo ADC sử dụng bộ chia 32 để số lần đọc nhiệt độ trên 1s ít. Vì sử dụng chân AN0 đọc nhiệt độ LM35 vì thế khai báo phải khai báo ports là sAN0, đồng thời khai báo kênh 0 để phù hợp với chức năng đọc của Analog.
  • Ban đầu khỏi động lên thì lcd hiển thị thông tin nhiệt độ ra hàng một của  màn hình LCD1602, vì thông tin này chỉ hiển thị một lần và không cần thay đổi trong suốt quá trình chạy chương trình và tắt động cơ ban đầu.
  • Tiến hành đọc nhiệt độ cảm biến LM35. Sau đó chuyển đổi từ giá trị ADC sang nhiệt độ, Vref+ = 5V = 5000mV, adc được chọn là 10bit nên 2^10 = 1023. Theo nhà sản xuất cung cấp thì độ phân giải của nhiệt độ LM3510mV nhưng vì lấy phần thập phân nên giữ giá trị để hiển thị ra màn hình.

  • Nếu nhiệt độ nhỏ hơn 1000 tức nhỏ hơn 100 độ C thì tắt Relay đồng thời giải mã hiển thị ra màn hình LCD1602. Khi khởi tạo là  lcd_gotoxy(1,2); là cần xuất dữ liệu ra LCD1602 vị trí hàng 2 cột 1. Tương tự cho các vị trí khác chỉ cần xem định vị theo yêu cầu. 
  • Khi các phép chia t/100t/10%10, t%10 đây là phương pháp tách số, lý do mỗi ô của LCD1602 chỉ hiển thị một ký tự duy nhất tại một thời điểm nhất định. Ví dụ 123 là một số nhưng có 3 giá trị. Sau khi tách số xong đem +0x30 chuyển giá trị thập phân sang bảng mã ASCII. Mã lệnh 0xdfdấu độ trong bảng mã ASCII, mọi thông tin các bạn tra bảng sẽ hiểu rõ hơn. Vì độ phân giải là 10mV đóng vai trò là phần thập phân của nhiệt độ nên trước khi lấy số đơn vị thì hiển thị dấu “.” sau đó hiển thị giá trị hàng đơn bị.
  • Nếu nhiệt độ lớn hơn hoặc bằng 1000 tức 100 độ C thì bật Relay đồng thời hiển thị giá trị hàng trăm của nhiệt ra màn hình của LCD1602, đây được xem là phương pháp hiển thị dù giá trị nhỏ hay hớn thì vị trí hiển thị ban đầu vẫn không thay đổi.
dieu-khien-relay-doc-nhiet-do-lm35-ro-le-lcd1602-lap-trinh-pic-chuong-trinh-chinh

Chúc các bạn có một kỳ thi thành công…!!!

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *