Đọc xung encoder, Ngắt ngoài INT + Tính góc + Led 7 đoạn, Lập trình Pic

doc-xung-encoder-su-dung-ngat-ngoai-int-tinh-goc-hien-thi-led-7doan-lap-trinh-pic
Đọc xung encoder được dùng nhiều trong các hệ thống mạch điện như tốc độ, tính góc, tính lưu lượng,…. tính giá trị bằng cách mở một thời gian nhất định sau đó tính số lượng xung và quy đổi ra giá trị theo yêu cầu đã đặt ra, ngoài ra giúp kiểm tra hệ thống theo chức năng bảo vệ như bảo vệ động cơ, tạo tính ổn định bởi sự đáp ứng nhanh.

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 Đọc xung encoder, Ngắt ngoài INT + Tính góc + Led 7 đoạn

 

Blog Đọc xung encoder, Ngắt ngoài INT + Tính góc + Led 7 đoạn

Đề bài đọc xung Encoder:

doc-xung-encoder-su-dung-ngat-ngoai-int-tinh-goc-hien-thi-led-7doan-lap-trinh-pic-de-bai

Bài giải đọc xung Encoder:

Phần cứng chương trình đọc xung Encode:

  • Đầu tiên sử dụng đếm sản phầm thông qua Counter0 vì vậy bắt buộc gắn vào chân RA4/T0CKI để đếm sản phẩm. Khi làm mạch thực tế nên sử dụng cảm biến hồng ngoại hoặc quang và một vài cảm biến liên quan khác.
  • Nút nhấn STOP dùng để dừng hệ thống nhấp nháy theo thời gian cố định sáng 3s, tắt 3s. Đây được xem là nút nhấn khẩn cấp khi hệ thống gặp sự cố.
  • Hiển thị thời gian được quy định ra một Led 7 đoạn anot chung được nối vào Port D và Port C. Cách tính trở 330 xem trong giáo trình thầy Nguyễn Đình Phú
  • Led đơn khi sử dụng cho vi điều khiển phải gắn thêm trở 330 để bảo vệ led đơn. Cách tính xem lại lý thuyết mạch điệ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
    Pic16F877APic16F877A
    Led đơnLed đơn
    Điện trởĐiện trở
    Nút nhấnNút nhấn
    Thạch anhThạch anh
    Led 7 đoạn AnotLed 7 đoạn Anot
    Tranzitor A1015Tranzitor A1015
    Cảm biến EncoderCảm biến Encoder
     

doc-xung-encoder-su-dung-ngat-ngoai-int-tinh-goc-hien-thi-led-7doan-lap-trinh-pic

Phần mềm đọc xung Encoder:

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

  • Vi điều khiển hiện tại mình đan dùng là Pic16F877A
  • 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).  
  • 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} “.
  • Đị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. 
  • Hàm khai báo #int_extngắt ngoài INT, chương trình con void ngat_ngoai(); sảy ra khi có sự thay đổi xung ngõ vào. Khi sảy ra tăng giá trị đếm xung lên một đơn vị, cứ tăng được 1 xung tương ứng với tăng lên 1.8 độ.
doc-xung-encoder-su-dung-ngat-ngoai-int-tinh-goc-hien-thi-led-7doan-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 Đọc xung Encoder

  • 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 B dùng cho chân nhận xung của ngắt ngoài INT EXT để đưa vào Vi điều khiển vì thế khởi tạo giá trị là 0x01. Port D, Port C sử dụng cho Led 7 đoạn vì vây khởi tạo là 0x00.
  • Khởi tạo chương trình ngắt gồm Global là khởi tạo ngắt toàn cục, nói đơn giản hơn là cho phép các chương trình ngắt sảy ra, INT_EXT là cho phép chương trình ngắt ngoài hoạt động, đặt biệt là lệnh báo trạng thái thay đổi của xung để ngắt ext_int_edge(L_TO_H); 
  • Các giá trị ban đầu gán bằng 0 đây là điều bắt buộc vì nếu không gán hệ thống sẽ tự Ramdom trong các biến theo giá trị khai báo. 
  • Một vòng có 360 độ và 200 xung trả về vì vậy góc sẽ tính bằng cách lấy xung đọc được nhân cho 1.8 hoặc 360/200.
  • Khi góc trả về lớn hơn 999 thì gán lại giá trị ban đầu bằng 0. Sau đó hiển thị thông tin ra 3 led 7 đoạn.
doc-xung-encoder-su-dung-ngat-ngoai-int-tinh-goc-hien-thi-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 *