Mạch cầu H, CCP PWM + Nút nhấn + Nhiệt độ + LCD1602, Vi điều khiển

Mach-cau-h-dieu-khien-toc-do-dong-co-pwm-nut-nhan-nhiet-do-lcd1602-lap-trinh-pic
Mạch Cầu H là một mạch đơn giản dùng để điều khiển động cơ DC quay thuận hoặc quay nghịch. Trong thực tế, có nhiều kiểu mạch cầu H khác nhau tùy vào cách chúng ta lựa chọn linh kiện có dòng điện, áp điều khiển lớn hay nhỏ, tần số xung PWM… Và chúng sẽ quyết định đến khả năng điều khiển của cầu H. Mạch cầu H là một trong những mạch công suất hết sức cơ bản và có nhiều ứng dụng trong việc điều khiển động cơ DC cũng như động cơ bước 2 cặp cự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

 

Các bạn xem Video Mạch cầu H,

CCP PWM + Nút nhấn + Nhiệt độ + LCD1602

 

Các bạn xem Blog Mạch cầu H,

CCP PWM + Nút nhấn + Nhiệt độ + LCD1602

Đề bài điều mạch cầu H:

Mach-cau-h-dieu-khien-toc-do-dong-co-pwm-nut-nhan-nhiet-do-lcd1602-lap-trinh-pic-de-bai

Bài giải mạch cầu H:

Phần cứng chương trình mạch cầu H:

  • Đầu tiên yêu cầu đưa ra có Biến trở phần áp đều chỉnh giá trị cài đặt ngưỡng cho nhiệt độ và 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.
  • Hệ thống điều khiển tốc độ động cơ sử dụng CCP PWM của nhà sản xuất vì vậy việc gắn mạch bắt buộc gắn vào chân RC1/CCP2 và RC2/CCP1 và điều khiển động cơ qua mạch lái cầu H. Theo yêu cầu Động cơ sử dụng 24V và 3A vì vậy không dùng module L298 để lái được mà phải dùng mạch cầu H thiết kế từ tranzitor hoặc Mosfet để điều khiển.
  • Hiển thị LCD1602 dùng giao tiếp 4bit sẽ giúp tối ưu tốc phần cứng hơn, và việc sử dụng thư viện do phần mềm hổ trợ cũng là một cách tối ưu chương trình khá tốt. 
  • Nút nhấn INV, START, STOP dùng để điều chỉnh tốc độ động cơ 10 cấp độ. 
  • 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
Module L298Module M298
LCD1602LCD1602
Mach-cau-h-dieu-khien-toc-do-dong-co-pwm-nut-nhan-nhiet-do-lcd1602-lap-trinh-pic

Phần mềm mạch cầu H:

Khai báo thư viện tiền sử lý của mạch cầu H:

  • 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 ngoài và thạch anh ngoài khai báo 20M bằng lệnh #Fuses  HS  và  #delay(clock=20M).  
  • Thư viện LCD1602 sử dụng 4bit, thư viện sử dụng do phần mềm hổ trợ. Giúp đơn giản trong quá trình lập trình hơn.
  • Đị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.
  • 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.
Mach-cau-h-dieu-khien-toc-do-dong-co-pwm-nut-nhan-nhiet-do-lcd1602-lap-trinh-pic-khai-bao

Chương trình con mạch cầu H:

  • Nút nhấn có nhiều chức năng, nút INV sau mỗi lần nhấn giá trị trả về thay đổi điều khiển động cơ hay đọc nhiệt độ LM35, nút nhấn Start Stop sẽ thay đổi cấp độ hoạt động của động cơ được chia thành 10 cấp từ 0 – 9 vì vậy phải chống dội cho nút nhấn. Việc chống dội ở đây không hướng dẫn chi tiết các bạn có thể tham khảo sách giáo trình thầy Nguyễn Đình Phú.
  • Khi nhấn nút INV sẽ chuyển chế độ điều khiển động cơ sang đọc nhiệt độ, nhấn lần tiếp theo sẽ chuyển ngược lại vì vậy chỉ cần khai báo biến tt là 1bit sao đó đảo trạng thái để quy định chết độ được nhấn.
  • Khi nhấn nút Start sẽ tăng y lên 1 đơn vị theo yêu cầu của đề bài đưa ra, nếu vượt ngưỡng 9 thì gán y=9. Được biết giá trị duty max1000 giá trị này xem cách tính dưới phần chương trình chính. Vì vậy chia giá trị ra từ 0 – 9 chỉ cần mỗi lần giá trị tăng đơn vị thì duty tăng lên 111.11 lần.
  • Khi nhấn nút Stop sẽ giảm y xuống 1 đơn vị theo yêu cầu của đề bài đưa ra, nếu vượt ngưỡng 0 thì gán y=0. Được biết giá trị duty max1000 giá trị này xem cách tính dưới phần chương trình chính. Vì vậy chia giá trị ra từ 0 – 9 chỉ cần mỗi lần giá trị giảm đơn vị thì duty giảm lên 111.11 lần.
Mach-cau-h-dieu-khien-toc-do-dong-co-pwm-nut-nhan-nhiet-do-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 mạch cầu H

  • 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 nút nhấn và cảm biến để đưa vào Vi điều khiển vì thế khởi tạo giá trị là 0xff, Port D, Port C Chân RC1/CCP2, RC2/CCP1 xuất cho động cơ đơn tức đưa tín hiệu từ Vi điều khiển ra ngoài nên khởi tạo là 0x00
  • 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 hai tín hiệu sử dụng chân AN0.
  • 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 T=0.8ms. PR2 = 0.8ms/((1/20M)*4*16)-1 = 249. Sử dụng bộ chia 16. Không thể sử dụng bộ chia 1 hay 4 vì giá trị tính ra sẽ lớn hơn 255 vượt ngưỡng tràn của timer2. Duty = 0.8ms/((1/20M)*16) = 1000. Tức giá trị cực đại của duty=1000. Theo đề yêu cầu giá trị thành 10 cấp độ.
  • Các biến ban đầu gán bằng 0, nếu không gán giá trị ban đầu thì các biến sẽ Random một giá trị nằm trong giới hạn cho phép của biến đó.

  • Kiểm tra nút nhấn INV nếu tt=0 thì sử dụng chế độ điều khiển tốc độ động cơ thông qua PWM 1. Hiển thị nội dung theo yêu cầu của đề bài đưa ra đồng thời kiểm tra nút nhấn Start và Stop. Điều này có nghĩa là chỉ khi ở chế độ thay đổi tốc độ thì hai nút nhấn mới có tác dụng.
  • Ngược lại nếu tt=1 cho phép đọc cảm biến nhiệt độ LM35 từ chân AN0, nếu chỉ đọc một giá trị ADC thì việc khởi tạo kênh sử dụng trong hàm chương trình chính trước while(true). Sau đó đọc kết quả về rồi chia kết quả đọc được cho 2.046 đây là độ lệch độ phân giải vi điều khiển với độ phân giải của LM3510mV.. Đồng thời tắt động cơ.

Mach-cau-h-dieu-khien-toc-do-dong-co-pwm-nut-nhan-nhiet-do-lcd1602-lap-trinh-pic-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 *