Chat
Danh mục
Mạch đo tốc độ động cơ hiển thị LCD Code Asembly

Mạch đo tốc độ động cơ hiển thị LCD Code Asembly

Số lượng:
Thêm vào giỏ
Mạch đo tốc độ động cơ hiển thị LCD Code Asembly đã được thêm vào giỏ hàng

Chia sẻ với các bạn mạch đo tốc độ động cơ dùng AT89C52, hiển thị bằng LCD16x2
- Đặt chính xác tốc độ mong muốn
- Giá thành thấp
- Nhiều tùy biến (có thể phát triển để tích hợp vào các hệ thống khác)




1. ​Nguyên lý: Có hai nguyên lý cơ bản đo trực tiếp tốc độ quay như sau
(ngoài ra còn một số phương pháp gián tiếp khác)
xem file Nguyên lý

2 – Lựa chọn: 
Do yêu cầu đặt ra là: 
- Điều khiển cho nhiều cơ cấu điều tốc khác nhau,
- Thời gian đáp ứng nhanh, 
- Tốc độ động cơ vừa phải (200Vg/Ph ~ 1200Vg/Ph) 
=> nên chọn phương án đo (đếm) chu kỳ.
(tính toán sơ bộ KQ đo bằng bảng tính)
· Do không phải dân Toán, nên phải tính thủ công, hơn nữa bộ VXL 89xx, không có số thực !
Lệnh ĐK ra sẽ là dạng xung (rơ le / khởi động từ), độ rộng xung, thời gian trễ có thể đặt trước bằng các SW (điều chỉnh theo thực tế khi lắp đặt để đạt KQ tối ưu)

3 – Sơ đồ nguyên lý mạch điện & PCB (rất tiếc là không tìm thấy file vẽ đâu cả, nên đành mô tả bằng chức năng và Port - Bạn nào cần vẽ contact: echipkool.com@gmail.com )
- Vi xử lý AT89C52, với thạch anh 12MHz
- Đầu vào đếm xung: dùng cảm biến tiệm cận OMRON, đầu ra xung (có thể dùng photo diode dạng chữ U)
Xung nhận được đưa vào P3.2 (Ngắt ngoài INT0)

3.1 - Phần hiển thị LCD: 
Data 0~7 - Port P0 (0~7)
RS P3.7
RW P3.6
CE P3.5

3.2 – Phần điều khiển (phím bấm)
Nút tăng tốc độ P1.1
Nút giảm tốc độ P3.3

3.3 Phần nhận xung – có zener bảo vệ quá áp
INT0 P3.2

3.4 – Phần Lệnh ra (Tăng/ giảm tốc độ) – Qua tầng đệm, ĐK rơ le
Lệnh Tăng P3.0
Lệnh Giảm P3.1

3.5 – Phần cài đặt (Các SW gạt đặt chế độ)
+ Đặt số răng P2.0 ~P2.6 (Max = 128 răng), chỉ đặt 1 lần cho 1 động cơ cụ thể
+ Đặt TG trễ trước khi ra lệnh (0.6s, 1.2s, 2.5s, 5s)
Bit0DLP1.2
Bit1DLP1.3
+ Sai số cho phép (1%, 2%, 5%, 10%)
Bit0PC P1.4 
Bit1PC P1.5
· dưới ngưỡng sai số này, sẽ ko ra lệnh 
+ TG duy trì lệnh với 10% sai số (0.6s, 1.2s, 2.5s, 5s)
Bit0CTP1.6
Bit1CTP1.7
+ Ngưỡng sai số để duy trì lệnh (>15%, >30%)
Bit30 P2.7
· Khi sai số tốc độ lớn hơn ngưỡng này, lệnh ra sẽ duy trì liên tục

3.6 – Nguồn nuôi: dùng biến áp 220/12, cầu, lọc và 7805

4 – Phần mềm 89C52
Giải thích cấu trúc cơ bản của chương trình:
- Ngắt ngoài INT0, nhận biết xung: với xung thứ nhất sẽ bắt đầu đếm, với xung thứ 2=dừng đếm. (số đếm x T xung = chu kỳ T)
- Timer T0, xử dụng như một bộ đếm 16bit (đếm xung)
- Timer T1, xử dụng như một bộ định kỳ kiểm tra, nhận biết tốc độ quay quá chậm hoặc động cơ đang dừng (do không nhận được xung ngắt ngoài)
- và các thủ tục (function) khác như, so sánh, nhận lệnh, kết xuất LCD v.v.
(code đầy đủ trong file attach, dịch bằng MBUG.EXE)
· Nhược điểm của ngôn ngữ Assembler là hơi rối (vì ko có cấu trúc rõ ràng)
· Ưu điểm là giúp hiểu biết “tường tận” về cấu trúc VXL, và đôi lúc CT nhanh hơn
Kết quả: 
Đã sử dụng ổn định trong nhà máy SX cao su (có rất nhiều động cơ cần đồng bộ tốc độ)
Sai số tốc độ trong phạm vi cho phép.

Chip đã vẽ lại mô phỏng + Biên dịch lại code Asem các bạn download về chỉ việc dùng nhé.
( Mediafire)
Khi nhấn nút "Tải Về Máy", bạn sẽ vào trang quảng cáo, vui lòng chờ 5 giây. Nút  hiện ra ở góc phải phía trên, nhấn vào để đến trang download

Nguồn yeuthichdientu (codientu.org)