Điều chế xung PWM + Nhiệt độ LM35 + Tốc độ quạt + LCD1602, Lập trình Pic

dieu-che-xung-pwm-nhiet-do-lm35-toc-do-quat-hien-thi-lcd1602-lap-trinh-pic
Điều chế xung PWM để tạo xung tần số cao nhằm điều khiển các thiết bị DC theo yêu cầu như điều khiển độ sáng bóng đèn, điều khiển tốc độ quay động cơ,… giúp các thiết bị hoạt động tiết kiệm năng lượng, đồng thời đáp ứng được nhu cầu cần thiết của công việc.

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 chế xung PWM Nhiệt độ LM35 + Tốc độ quạt + LCD1602

Blog Điều chế xung PWM Nhiệt độ LM35 + Tốc độ quạt + LCD1602

Đề bài điều chế xung PWM:

dieu-che-xung-pwm-nhiet-do-lm35-toc-do-quat-hien-thi-lcd1602-lap-trinh-pic-de-bai

Bài giải điều chế xung PWM:

Phần cứng chương trình điều chế xung PWM:

  • Đề yêu cầu sử dụng đọc ADC thông qua chân RA0/AN0 và đọc nhiệt độ LM35. Nếu không yêu cầu các bạn có thể gắn vào chân có ký hiểu ANxx đây là chân có cổng đọc ADC. Vi điều khiển hổ trợ đọc tín hiệu tương tự sang số giúp phần cứng được tối ưu và dễ dàng giao tiếp thông qua các hàm hoặc thanh nghi đã được định nghĩa sẵn. Nguyên lý đưa ra giá trị ADC đọc về từ 0 đến 5V.
  • Đề yêu cầu sử dụng điều chế độ rộng xung PWM với duty cố định. Khi tạo xung CCP PWM nếu sử dụng hổ trợ từ phần mềm CCS hoặc từ nhà sản xuất thì chỉ có thể tạo được thông qua 2 chân CCP1CCP2. Ngoài ra người lập trình vẫn có khả năng tạo xung từ bất kể chân I/O nào có thể sử dụng delay, timer0, timer1,… Theo đề chân tạo xung bắt buộc vào chân RC1 đồng nghĩa với việc tạo xung bằng CCP2
  • Sử dụng một nút nhấn tích cực mức thấp được đấu vào chân RB7.

  • Màn hình LCD1602 hiển thị các thông tin, và việc sử dụng giao tiếp 4bit cũng góp phần vào việc tối ưu phần cứng. Khi lắp phần cứng phải có thêm nguồn và biến trở phân áp để hệ thống được hoàn thiện hơn.
  • Sử dụng dao động ngoài thạch anh 16M gắn vào chân OSC1 OSC2. Khi làm phần cứng thì nhớ gắn vào.
  • 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
    LCD1602LCD1602
    Quạt 12vQuạt 12v
    Module L298Module L298
    Nhiệt độ LM35Nhiệt độ LM35
     
dieu-che-xung-pwm-nhiet-do-lm35-toc-do-quat-hien-thi-lcd1602-lap-trinh-pic

Phần mềm điều chế xung PWM:

Khai báo thư viện tiền sử lý của xung PWM:

  • Vi điều khiển hiện tại mình đan dùng là Pic16F887
  • Hiện dùng thạch anh ngoài và thạch anh ngoài khai báo 16M bằng lệnh #Fuses    hs  và    #delay(clock=16M).  
  • Đị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.
  • Thư viện lcd.c là thư viện được phần mềm hổ trợ vì vậy chỉ cần định nghĩa đúng chân theo phần cứng thì sẽ hoạt động được.
  • Tên khai báo biến phụ thuộc vào chức năng để khai báo cho phù hợp. 
dieu-che-xung-pwm-nhiet-do-lm35-toc-do-quat-hien-thi-lcd1602-lap-trinh-pic-khai-bao

Chương trình con xung PWM:

  • Theo bảng yêu cầu khi nhiệt độ nhỏ hơn 50 thì khởi tạo duty là 600 tức 100%, đồng thời hiển thị ra màn hình LCD1602. Xem cách tính bên dưới chương trình chính.
  • Khi nhiệt độ nhỏ hơn hoặc bằng 60 thì khởi tạo duty là 540 tức 90%, đồng thời hiển thị ra màn hình LCD1602
  • Khi nhiệt độ nhỏ hơn hoặc bằng 70 thì khởi tạo duty là 300 tức 50%, đồng thời hiển thị ra màn hình LCD1602
  • Khi nhiệt độ lớn hơn 70 thì tắt quạt tức xuất xung duty là 0, đồng thời hiển thị ra màn hình LCD1602 nhấp nháy vị trí 0%.
dieu-che-xung-pwm-nhiet-do-lm35-toc-do-quat-hien-thi-lcd1602-lap-trinh-pic-chuong-trinh-con

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 chế xung PWM

  • 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 D, Port C xuất cho màn hình LCD1602 và điều khiển tốc độ quay của quạt tức đưa tín hiệu từ Vi điều khiển ra ngoài nên khởi tạo là 0x00. Port A nhận tín hiệu từ cảm biến nhiệt độ LM35 nên khởi tạo là 0xff. Thật ra chỉ cần khởi tạo là 0x01 nhưng tránh tính toán nên dùng 0xff.
  • Khởi tạo ban đầu cho LCD1602 như lựa chọn giao tiếp 4bit, mở con trở, xóa các ký tự, di chuyển con trỏ,…. để phù hợp với yêu cầu đưa ra.
  • Sử dụng ADC khởi tạo bộ chia 32 để số lần đọc ADC trên 1s được xem nhỏ nhất. Yêu cầu sử dụng tín hiệu chân AN10 đọc nhiệt độ LM35.
  • Khi sử dụng điều chế độ rộng xung do vi điều khiển hổ trợ thì sử dụng Timer2. Cách tính: Tần số yêu cầu f=5KHz  => T=0.2ms. PR2 = 0.6ms/((1/4M)*4*16)-1 = 149. Sử dụng bộ chia 16. Nếu sử dụng bộ chia 1 hoặc 4 thì giá trị vượt 255 không thể đếm cho timer2. Duty = 0.4ms/((1/4M)*16) = 600. Tức giá trị cực đại của duty=600. Từ đó suy ra 100%, 90%, 50%, 0% theo yêu cầu đã đặt ra.
  • Tiến hành đọc giá trị nhiệt độ LM35, sau đó chia cho 2.046độ lệch độ phân giải của Vi điều khiển 4.887mV với độ phân giải của LM35 10mV.

  • Chương trình có xóa số 0 vô nghĩa, khi giải mã nếu nd/100 = 0 thì kết quả trả về là 0x30 nên kiểm tra nếu giá trị là 0x30 thì gán giá trị đó là 0x20 đây là khoảng trắng trên LCD1602. Thứ tự kiểm tra phải kiểm tra hàng trăm trước nếu hàng trăm bằng 0 thì mới tiến hành kiểm tra hàng chục vì nếu giá trị là 102 thì số 0 hàng chục vẫn cho nghĩa.
  • Kiểm tra nhiệt độ thoải điều kiện đưa ra thì thực hiện hệ thống để kích động cơ quạt quay.
  • Sau đó hiển thị ra màn hình LCD1602 theo trình tự yêu cầu đề ra.

dieu-che-xung-pwm-nhiet-do-lm35-toc-do-quat-hien-thi-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 *