Điều khiển nhiệt độ LM35 + UART + Nút nhấn + Led 7 đoạn, Lập trình Pic

dieu-khien-nhiet-do-lm35-uart-nut-nhan-led-7doan-lap-trinh-pic
Điều khiển nhiệt độ được sử dụng nhiều trong nông nghiệp, công nghiệp, trong hộ gia đình có tính ứng dụng vô cùng lớn trong cuộc sống,…. như hệ thống giám sát nhiệt độ trong phòng tự động bật tắt quạt, hoặc giám sát nhiệt độ phòng bếp,… trong nông nghiệp được sử dụng như trong chăn nuôi, trong trồng trọt, công nghiệp được sử dụng nhiều trong các hệ thống như giám sát máy móc, giám sát kho lạnh, giám sát lò hơi,…vì vậy đây được xem là một hệ thống được ứng dụng rộng rãi nhất trong đời sống con người hiện tại.

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 nhiệt độ, LM35 + UART + Nút nhấn + Led 7 đoạn

 

Blog Điều khiển nhiệt độ, LM35 + UART + Nút nhấn + Led 7 đoạn

Đề bài điều khiển nhiệt độ:

dieu-khien-nhiet-do-lm35-uart-nut-nhan-led-7doan-lap-trinh-pic-de-bai

Bài giải điều khiển Nhiệt độ:

Phần cứng chương trình điều khiển nhiệt độ:

  • Đầu tiên yêu cầu đưa ra có nhiệt độ LM35 vì vậy bắt buộc phải gắn vào chân ANxx tức chân đọc tín hiệu Analog chuyển sang Digital.
  • Giao tiếp với máy tính thông qua giao tiếp UART và sử dụng chuẩn RS232 được xem là phương pháp giao tiếp đơn giản và có độ ổn định rất cao. Việc sử dụng UART bắt buộc phải sử dụng hai chân TX, RX của Vi điều khiển tức là chân RC6, RC7
  • Hiển thị hai led 7 đoạn anot chung theo phương pháp xuất tín hiệu trực tiếp nên phải gắn vào 2 Port là Port DPort B. Nếu làm mạch thực tế phải gắn trở cho led, cách tính trở 330 xem trong giáo trình thầy Nguyễn Đình Phú
  • Sử dụng một loa Buzzer, ở đây tính chất mô phỏng nên sử dụng một led đơn để thay thế, nhưng khi làm mạch thực tế thì sử dụng loa 5V hàn board hoặc tùy thuộc vào yêu cầu đưa ra.
  • Các linh kiện chính cần sử dụng tham khảo tại.
Thông số kỹ thuật Mua Linh kiện
Pic16F887Pic16F887
Led 7 đoạnLed 7 đoạn
Điện trởĐiện trở
Nút nhấnNút nhấn
Thạch anhThạch anh
Led đơnLed đơn
Loa 5V hàn boardLoa 5V hàn board
Nhiệt độ LM35Nhiệt độ LM35

dieu-khien-nhiet-do-lm35-uart-nut-nhan-led-7doan-lap-trinh-pic

Phần mềm điều khiển nhiệt độ:

Khai báo thư viện tiền sử lý của Random ngẫu nhiên:

  • 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 dùng thạch anh nội và thạch anh nội khai báo 8M bằng lệnh #Fuses  intrc_io  và  #delay(clock=8M).  
  • Khai báo giao tiếp UART chuẩn rs232 ” #use rs232(baud=4800,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)” gồm tốc độ truyền bằng 4800, không kiểm tra tính chắn lẻ, đồng thời dữ liệu truyền đi 8bit trong đó có 1bit STOP. Khi sử dụng UART bắt buộc phải dùng chân RC6/TX, RC7/RX 
  • Đị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.
  • Mã 7 đoạn là đoạn mã Anot: Cấu trúc lệnh cho bạn nào cần copy : ” unsigned int8 ma7doan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8.0x80,0x90,0xff} “.
  • Tên khai báo biến phụ thuộc vào chức năng để khai báo cho phù hợp. 
  • Khi các biến không biết được giá trị cuối thì nên khai báo signed int32 tức khai báo biến có dấu 32bit, lúc này giá trị rất rộng không sợ bị thiếu.

dieu-khien-nhiet-do-lm35-uart-nut-nhan-led-7doan-lap-trinh-pic-khai-bao

Chương trình con điều khiển nhiệt độ:

Chương trình con nhận dữ liệu từ máy tính gửi xuống

  • Kiểm tra nếu KBHIT()=1 tức có dữ liệu gửi xuống, khi đó tiến hành nhận dữ liệu nếu giá trị nhận được là ký tự “S” thì gửi giá trị nhiệt độ lên máy tính thông qua giao tiếp UART chuẩn RS232 một lần để đáp ứng được yêu cầu đề bài đưa ra.
  • Ngược lại nếu KBHIT()=0 thì kiểm tra nếu giá trị nhiệt độ bị thay đổi thì gửi lên máy tính thông qua giao tiếp UART chuẩn RS232 một lần đồng thời gán ndt=nd để chuẩn bị cho chu kỳ tiếp theo.

dieu-khien-nhiet-do-lm35-uart-nut-nhan-led-7doan-lap-trinh-pic-chuong-trinh-con-nhan-du-lieu

Chương trình con đọc nhiệt độ LM35

  • Sau khi đọc xong chuyển đổi giá trị nhiệt độ sang giá trị thực bằng cách chia 2.046 tức chia cho độ lệch độ phần giải của Vi điều khiển với độ phân giải của nhiệt độ LM35
  • Đầu tiên phải tách số giá trị nhiệt độ ở hàng chục. Nếu kết quả nd/10=0 thì ma7doan trả về sẽ làm biến ch=0x30. Từ đó kiểm tra nếu ch=0x30 thì gán ch=0xff tức tắt led ở hàng chục.
  • Sử dụng biến chay để tạo thời gian nhấp nháy khi thoải mãn điều kiện của đề đã đặt ra. Sau 10ms chay sẽ thay đổi 1 đơn vị vậy nếu chay nhỏ hơn 51 tức được 500ms đầu thì xuất giá trị ra led 7 đoạn, theo phần cứng thì hàng chục sẽ được gán vào Port D hàng đơn vị sẽ gán vào Port B. Ngược lại nếu chạy nhỏ hơn 60 tức 100ms tiếp theo nếu nhiệt độ nhỏ hơn 35 thì hiển thị bình thường điều này có nghĩa toàn bộ thời gian đều là hiển thị, ngược lại tức nhiệt độ lớn hơn hoặc bằng 35 thì xuất giá trị cho hai Port0xff tức tắt hết hai led sau đó cho giá trị chay=0 khi chay=61.

dieu-khien-nhiet-do-lm35-uart-nut-nhan-led-7doan-lap-trinh-pic-chuong-trinh-con-doc_nd

Chương trình chính điều khiển nhiệt độ:

  • Bắt đầu chương trình chính phải khởi tạ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 A dùng cho nhiệt độ LM35 để đưa vào Vi điều khiển vì thế khởi tạo giá trị là 0xff, nếu đúng thì chỉ cần khởi tạo là 0x01. Port C có chân RC7/RX nhận tín hiệu từ máy tính gửi xuống nên đóng vai trò nhận tín hiệu vì vậy phải khởi tạo mức 1 nên khởi tạo là 0x80. Port D, Port B sử dụng xuất tiến hiệu cho led 7 đoạn vì vậy khởi tạo là 0x00.
  • 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 AN4 đọc nhiệt độ LM35 vì thế khai báo phải khai báo ports là sAN4, đồng thời
  • Gán giá trị ban đầu bằng 0 đồng thời tắt còi khi khởi động..
  • Kiểm tra nhận dữ liệu và đọc nhiệt độ như đã trang bị ở chương trình con, nếu nhiệt độ trả về nhỏ hơn 55 độ thì tắt còi Buzzer ngược lại thì bật khi vượt ngưỡng cho phép.

dieu-khien-nhiet-do-lm35-uart-nut-nhan-led-7doan-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 *