1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

đo và ổn định tốc độ động cơ sử dụng phương pháp PID

63 34 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thiết Kế, Chế Tạo Mạch Đo Và Điều Khiển Ổn Định Tốc Độ Động Cơ Điện 1 Chiều Bằng Phương Pháp PID
Tác giả Nguyễn Đình Khiêm, Vũ Hồng Kiên
Người hướng dẫn Thầy Nguyễn Tiến Dũng
Trường học Khoa Điện - Điện Tử
Thể loại Đồ án
Định dạng
Số trang 63
Dung lượng 3,09 MB

Cấu trúc

  • LỜI NÓI ĐẦU

  • NHẬN XÉT CỦA GIÁO VIÊN

    • ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

  • MỤC LỤC

  • 2.3 Encoder

  • 2.3.1 Giới thiệu

  • 2.3.3 Encoder tương đối (incremental encoder)

  • 2.4 Động cơ điện 1 chiều.

  • 2.4.1 Giới thiệu chung về động cơ điện 1 chiều

  • 2.5 Khối hiển thị LCD

  • 2.5.3 Bảng dữ liệu của LCD

  • 2.6 Một số linh kiện khác

  • 2.6.1 Cách ly quang PC 817.

  • 2.6.4. IC ổn áp nguồn 7805

  • CHƯƠNG III: THIẾT KẾ CHẾ TẠO MẠCH ĐIỆN

  • 3.1. Sơ đồ khối

  • 3.1.1 Sơ đồ khối

  • 3.2 Sơ đồ mạch điện

  • 3.2.1 Sơ đồ nguyên lý

  • 3.2.2 Sơ đồ board mạch

  • 3.2.3 Sơ đồ bố trí linh kiện

  • 3.3 Thuật toán điều khiển

  • 3.4 Chương trình điều khiển

  • KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI

Nội dung

Giúp sinh viên hiểu rõ và nắm chắc hơn về các môn học: điện tử công suất, truyền động điện, vi xử lý, … có thể vận dụng linh hoat giữa lý thuyết và thực tế. Hiểu được phương pháp điều khiển động cơ cũng như các phương pháp điều chế xung với PWM. Nâng cao khả năng thực hành làm mạch,tra cứu các linh kiện.

Encoder

Giới thiệu

Encoder là thiết bị quan trọng dùng để quản lý vị trí góc của các đĩa quay như bánh xe, trục động cơ, hoặc bất kỳ thiết bị nào cần xác định chính xác vị trí góc trong quá trình hoạt động.

-1 Encoder tuyệt đối (absolute encoder): sư dụng đĩa theo mã nhị phân hoặc mã Gray

-2.Encoder tương đối (incremental encoder): có tín hiệu tăng dần hoặc theo chu kỳ

* Nguyên lý hoạt động cơ bản của encoder, LED và lỗ.

Encoder hoạt động dựa trên nguyên lý của một đĩa tròn xoay quanh trục, trên đó có các lỗ (rãnh) được chiếu sáng bởi một đèn LED Khi đĩa quay, ánh sáng LED sẽ chiếu qua các lỗ, và một cảm biến sẽ ghi nhận tín hiệu ánh sáng này Nếu đĩa chỉ có một lỗ, mỗi lần cảm biến nhận được tín hiệu ánh sáng sẽ tương ứng với một vòng quay của đĩa Tuy nhiên, để cải thiện độ chính xác trong việc xác định vị trí của đĩa và hướng quay, cần áp dụng các phương pháp tinh vi hơn.

-Ta có công thức đo vận tốc:

2.3.2 Encoder tuyệt đối (absolute encoder)

- Sơ đồ nguyên lý, kết cấu:

Encoder kiểu tuyệt đối bao gồm ba phần chính: bộ phát ánh sáng, thường là LED, đĩa mã hóa chứa các dải băng mang tín hiệu, và bộ thu ánh sáng nhạy, thường là photosensor, để nhận ánh sáng từ bộ phát.

Đĩa mã hóa được chế tạo từ vật liệu trong suốt, với mặt đĩa được chia thành các góc đều nhau và các đường tròn đồng tâm Các đường tròn này và bán kính giới hạn tạo thành các phân tố diện tích Tập hợp các phân tố diện tích giữa hai vòng tròn đồng tâm gọi là dải băng, số lượng dải băng phụ thuộc vào khả năng công nghệ Mỗi dải băng có một đèn LED và một photosenser Trên các dải băng, các phân tố có thể là trong suốt (cho phép ánh sáng xuyên qua) hoặc được phủ lớp không cho ánh sáng chiếu xuyên qua, thể hiện đặc tính trong suốt và không trong suốt của các phân tố.

Nguyên lý hoạt động của encoder bao gồm ba bộ phận chính: đèn LED, đĩa mã hóa và các photosensor Ánh sáng từ đèn LED chiếu qua đĩa mã hóa đến các photosensor, với số lượng đèn LED tương ứng với số dải băng trên đĩa mã hóa Đèn LED và photosensor cần được sắp xếp thẳng hàng, trong khi đèn LED và photosensor được gắn cố định trên vỏ encoder Đĩa mã hóa quay quanh trục để truyền tín hiệu mã hóa, giúp xác định góc quay chính xác.

Encoder tương đối (incremental encoder)

a) Encoder tương đối kiểu quay

- Sơ đồ nguyên lý, kết cấu:

Hình 2.13 Đĩa encoder tương đối kiểu quay

Encoder tương đối và encoder tuyệt đối có cấu tạo tương tự, nhưng khác nhau ở đĩa mã hóa Encoder tương đối sử dụng một dải băng tạo xung, được chia thành nhiều lỗ bằng nhau và cách đều nhau Khi ánh sáng từ đèn LED chiếu qua các lỗ này, photosensor sẽ nhận tín hiệu và encoder sẽ tăng giá trị trong biến đếm.

Khi đĩa mã hóa có 360 lỗ quay qua 90 lỗ, photosensor nhận được 90 tín hiệu, cho phép biến đếm tăng lên 90, từ đó xác định rằng đĩa đã quay 90 độ Tuy nhiên, để biết encoder đã quay hết một vòng, cần giải quyết vấn đề đếm vô hạn, vì nếu không, sẽ không xác định được khi nào hoàn thành một vòng Hơn nữa, nếu có rung động không kiểm soát, encoder có thể bị sai một xung, dẫn đến tích lũy sai số theo thời gian Điều này có thể khiến động cơ quay 2 vòng nhưng chỉ đếm được 1 vòng.

Để ngăn chặn sự cố sai lệch trong quá trình đếm vòng quay của encoder, một lỗ định vị đã được thêm vào Lỗ định vị này giúp xác định số vòng quay chính xác, ngay cả khi có hiện tượng lệch xung xảy ra Nếu encoder không đi qua lỗ định vị do rung động, từ số xung đã ghi và việc không đi qua lỗ định vị, ta có thể nhận diện được sai sót trong quá trình hoạt động của encoder.

Encoder tương đối bao gồm các bộ phận chính như nguồn phát (đèn LED), đĩa quay (đĩa mã hóa) và cảm biến (photosensor) Khi đĩa quay qua một lỗ, cảm biến nhận tín hiệu và encoder tăng giá trị trong biến đếm Khi cảm biến dưới nhận tín hiệu từ lỗ định vị, ta xác định được đĩa đã quay một vòng Giá trị biến đếm cho biết góc độ quay của đĩa, và nếu dải băng có nhiều lỗ hơn, góc đếm nhỏ nhất mà encoder có thể nhận diện sẽ càng nhỏ, tạo ra độ chính xác cao hơn.

Encoder thẳng là loại thiết bị đo kích thước thẳng, khác với encoder kiểu quay ở chỗ sử dụng một thước thẳng để thực hiện phép đo Để đảm bảo độ chính xác, chiều dài của encoder thẳng cần phải bằng tổng chuyển động thẳng tương ứng, tức là chiều dài cần đo phải tương đương với chiều dài của thước Do đó, giá thành của encoder thẳng thường cao hơn nhiều so với encoder dạng quay.

Hình 2.15 Động cơ điện một chiều

2.4.1 Giới thiệu chung về động cơ điện 1 chiều

Máy phát điện một chiều có thể hoạt động như máy phát điện hoặc động cơ điện, trong đó động cơ điện một chiều là thiết bị chuyển đổi điện năng thành cơ năng thông qua hiện tượng cảm ứng điện từ Động cơ này được sử dụng phổ biến trong nhiều lĩnh vực, bao gồm công nghiệp và giao thông vận tải Các loại động cơ điện một chiều rất đa dạng và phục vụ nhiều mục đích khác nhau.

- Động cơ điện một chiều kích từ song song

- Động cơ điện một chiều kích từ nối tiếp

- Động cơ điện một chiều kích từ hỗn hợp

Gồm các phần chính sau: a Cực từ chính:

Cực từ là bộ phận tạo ra từ trường, bao gồm lõi sắt và dây quấn kích từ bên ngoài Lõi sắt được làm từ các lá thép kỹ thuật điện và được gắn chặt vào vỏ bằng bulông Dây quấn kích từ được quấn bằng dây đồng có lớp cách điện.

Cực từ phụ đặt giữa các cực từ chính và dùng để cải thiện đổi chiều c Gông từ:

Dùng để làm mạch từ nối liền các cực từ đồng thời làm vỏ máy. d Các bộ phận khác

Gồm các bộ phận sau: a Lõi sắt phần ứng:

Lõi sắt phần ứng được sử dụng để dẫn từ, thường làm từ những lá thép kỹ thuật điện dày 0,5 mm, được phủ cách điện ở hai đầu và ép chặt lại Các lá thép này có hình dạng rãnh để dễ dàng đặt dây quấn vào sau khi ép.

Dây quấn phần ứng là bộ phận tạo ra sức điện động (s.đ.đ) và cho phép dòng điện lưu thông qua Thông thường, dây quấn được làm bằng dây đồng có lớp cách điện Trong các máy điện nhỏ, dây có tiết diện tròn thường được sử dụng, trong khi đó, máy điện vừa và lớn thường sử dụng dây có tiết diện hình chữ nhật Dây quấn được cách điện với rãnh của lõi thép để đảm bảo hiệu suất hoạt động.

Cổ góp, hay còn gọi là vành góp hoặc vành đổi chiều, là thiết bị chuyển đổi dòng điện xoay chiều thành dòng điện một chiều Cấu trúc của cổ góp bao gồm nhiều phiến đồng hình đuôi nhạn, được cách điện với nhau bằng lớp mica dày từ 0,4 đến 1,2 mm, tạo thành hình trụ tròn Phần đuôi của vành góp được thiết kế cao hơn một chút để thuận tiện cho việc hàn các đầu dây của các phần tư dây quấn vào các điểm kết nối.

- Cánh quạt: Dùng để quạt gió làm nguội máy.

Trục máy điện một chiều là bộ phận quan trọng, nơi lắp đặt lõi sắt phần ứng, cổ góp, cánh quạt và ổ bi Thường được chế tạo từ thép Cacbon chất lượng cao, trục máy đảm bảo độ bền và hiệu suất hoạt động của động cơ Nguyên lý làm việc của động cơ điện một chiều dựa trên sự tương tác giữa từ trường và dòng điện, tạo ra chuyển động quay hiệu quả.

Sơ đồ nguyên lý làm việc của động cơ điện 1 chiều

Khi điện áp một chiều U được áp dụng vào hai chổi than A và B trong dây quấn phần ứng, dòng điện Iư sẽ chạy qua các thanh dẫn ab, cd, tạo ra lực điện từ Fđt trong từ trường, khiến rotor quay Chiều lực từ được xác định theo quy tắc bàn tay trái Khi phần ứng quay được nửa vòng, các thanh dẫn ab, cd sẽ đổi chỗ nhờ vào phiến góp, giữ cho chiều lực tác dụng không đổi, đảm bảo động cơ quay liên tục Khi động cơ hoạt động, các thanh dẫn cắt từ trường sẽ cảm ứng sức điện động Eư, với chiều xác định theo quy tắc bàn tay phải Trong động cơ điện một chiều, sức điện động Eư ngược chiều với dòng điện Iư, do đó Eư còn được gọi là sức phản điện động.

Phương trình cân bằng điện áp: U= Eư+Rư.Iư

Trong đó: Rư: điện trở phần ứng

Iư: dòng điện phần ứng

Hệ điều chỉnh tốc độ của động cơ điện một chiều kích từ độc lập cho phép điều chỉnh mà không phụ thuộc vào dòng điện phần ứng Đặc điểm nổi bật của động cơ này là dòng điện kích từ độc lập, dẫn đến từ thông không bị ảnh hưởng bởi phụ tải, mà chỉ phụ thuộc vào điện áp và điện trở của mạch kích từ.

Hình 2.16 Sơ đồ nối dây động cơ điện 1 chiều kích từ độc lập

2.4.2 Giới thiệu về động cơ DC( có gắn encoder)

Động cơ điện gồm hai phần chính: stato và rôto Phần cảm, thường nằm trên stato, tạo ra từ trường đi xuyên qua các vòng dây quấn của phần ứng trên rôto Khi dòng điện chạy qua phần ứng, các thanh dẫn sẽ bị tác động bởi lực điện từ, khiến rôto quay Lực điện từ trên mỗi đơn vị chiều dài thanh dẫn là tích có hướng của vectơ mật độ từ thông B và vectơ cường độ dòng điện I Dòng điện phần ứng được truyền vào rôto qua hệ thống chổi than và cổ góp, giúp đổi chiều dòng điện trong mỗi thanh dẫn khi nó đi qua các cực từ khác nhau.

- Hình ảnh về động cơ DC có gắn encoder:

Hình 2.17 Động cơ DC có gắn encoder

Bên trong động cơ có gắn một encoder đồng trục với nó dùng để xác định tốc độ và vị trí của động cơ.

 Các thông số của động cơ:

- Điện áp cung cấp cho động cơ DC: 12VDC.

- Tốc độ tối đa 2000 vòng/phút.

- Số xung của encoder 100 xung/vòng.

- Động cơ có tất cả 5 dây ra:

+ 2 dây cung cấp nguồn 12VDC cho động cơ.

+ 2 dây cung cấp nguồn 5VDC cho encoder.

+ 1 dây tín hiệu đưa xung encoder ra ngoài.

 Phương pháp điều khiển: Thay đổi tốc độ động cơ bằng cách thay đổi điện áp cấp vào cho động cơ.

Cảm biến encoder hoạt động dựa trên nhiều nguyên lý khác nhau, tùy thuộc vào loại encoder Trong báo cáo đồ án này, tôi sẽ trình bày nguyên lý hoạt động của encoder kiểu incremental, loại encoder mà tôi đã sử dụng cho đề tài của mình.

Cải tiến mô hình 1 bằng mô hình 2 như sau:

Động cơ điện 1 chiều

Khối hiển thị LCD

Một số linh kiện khác

Cách ly quang PC 817

Đây là một loại thiết bị đại diện cho bộ quang điện tư.

Hình 2.25 Sơ đồ cấu tạo và hình dạng thực tế của PC 817

Nguyên lý hoạt động của opto là khi tín hiệu được cấp vào chân số 1, đèn LED bên trong sẽ phát sáng, tạo ra hiệu ứng quang điện Hiệu ứng này dẫn đến việc truyền tín hiệu từ chân 3 đến chân 4.

-Tác dụng : cách li điều khiển giữa 2 tầng mạch điện khác nhau

-Mục đích : nếu có sự cố từ tầng ứng dụng như cháy ,chập , tăng áp thì cũng không làm ảnh hưởng tới tầng điều khiển

 Các thông số cơ bản của PC 817

Tham số Ký hiệu Mức Đơn vị Đầu vào Dòng thuận IF 50 mA

Dòng thuận cực đại IFM 1 A Điện áp ngược VR 6 V

Công suất tiêu tán P 70 mW Đầu ra Điện áp C-E VCEO 35 V Điện áp E-C VECO 6 V

Dòng điện cực C IC 50 mA

Công suất tiêu tán cực C PC 150 mW

Tổng công suất tiêu thụ Ptot 200 mW Điện áp cách ly Viso 5 kVrms

• Dòng điện cực đại mosfet IRF540N: I D = 33A.

Hình 2.27 Hình dạng, sơ đồ chân, kí hiệu trên mạch điện của IRFZ44

Hình 2.28 Hình dạng thực tế của rơle

- Hãng sản xuất: Omron Japan

- Điện áp cấp cho cuộn hút: 12VDC

- Tiếp điểm: gồm 2 tiếp điểm thường đóng và 2 tiếp điểm thường mở với thông số:

IC ổn áp nguồn 7805

a) Sơ đồ chân và sơ đồ kết nối chân của IC 7805

OUT b)Nguyên lý hoạt động

Ngõ ra của IC LM7805 luôn duy trì ổn định ở mức 5V, bất chấp sự thay đổi của điện áp từ nguồn cung cấp Mạch này rất hữu ích cho các mạch điện yêu cầu điện áp 5V, như nhiều loại IC phổ biến Trong trường hợp nguồn điện gặp sự cố, như điện áp tăng cao, IC 7805 sẽ đảm bảo rằng ngõ ra 5V vẫn được giữ nguyên, giúp mạch hoạt động ổn định Khi sử dụng IC LM7805, cần lưu ý một số điểm quan trọng để đảm bảo hiệu suất tối ưu.

 Dòng cực đại có thể duy trì 1A.

 Công suất tiêu tán cực đại nếu không dùng tản nhiệt: 2W.

 Công suất tiêu tán nếu dùng tản nhiệt đủ lớn: 15W

 Ta nên hạn chế áp lối vào 7805 để giảm công suất tiêu tán trên tản nhiệt.

 Thực tế áp lối ra có thể đạt giá trị nào đó trong khoảng 4,8 – 5,2 V

THIẾT KẾ CHẾ TẠO MẠCH ĐIỆN

Sơ đồ khối

3.1.2 Chức năng các khôi a) Khối nguồn

-Khối nguồn 5v nuôi khối điều khiển

-Khối nguồn 12v nuôi mạch điều khiển phần động lực IR2184

Tính toán chọn linh kiện

Để đạt được điện áp ra ổn định tối đa 12VDC từ nguồn điện đầu vào 220VAC, chúng ta có thể sử dụng máy biến áp với các thông số như 220VAC-24VAC-3A hoặc 220VAC-12VAC-1A Trong dự án này, nhóm chúng em đã chọn máy biến áp 220VAC-24VAC-3A vì linh kiện này sẵn có trong bộ thiết bị của chúng em.

Trong đề tài này chúng em lựa chọn cầu diode 3A.

Tụ có điện dung lớn để san phẳng điện áp để làm giảm độ gợn sóng.

Trong đồ ỏn này chỳng em chọn tụ 2200 àF để san phẳng điợ̀n ỏp.

Tụ lọc cao tần là tụ gốm 104 vì tụ này có tần số lọc lớn.

Chứng minh bởi công thức: f= 1/(2π Xc C)

Có hai loại linh kiện ổn áp họ 78XX và 79XX.

Họ 78xx là họ cho ổn định điện áp đầu ra là dương Còn xx là giá trị điện áp đầu ra như 5V, 8V…

Họ 79xx là dòng IC cung cấp điện áp đầu ra âm, trong khi xx đại diện cho giá trị điện áp cụ thể như -5V, -8V Để đáp ứng yêu cầu của đồ án cần điện áp 12V và 5V, chúng ta sử dụng IC7812 cho điện áp dương 12V và IC7805 cho điện áp dương 5V.

Khối sư dụng vi điều khiển PIC16F877A để làm bộ điều khiển trung tâm c) Khối công suất

Mạch công suất được sử dụng để điều khiển động cơ thông qua FET và rơle Trong đó, rơle có chức năng đảo chiều quay của động cơ, trong khi FET đảm nhiệm vai trò đóng cắt điện áp và dòng điện, giúp động cơ hoạt động hiệu quả.

Sơ đồ nguyên lý của khối công suất

 Nguyên lý hoạt động của khối công suất:

Rơle được sử dụng để đảo chiều động cơ, trong khi FET có nhiệm vụ đóng cắt và điều chỉnh tốc độ động cơ Khi có tín hiệu 1 (12V) kích vào chân G, FET sẽ dẫn dòng điện từ nguồn qua động cơ và xuống mass, làm cho động cơ quay mạnh hơn khi FET dẫn mạnh Diode D11 bảo vệ cuộn hút rơle khỏi dòng ngược, trong khi diode D13 ngăn dòng ngược từ động cơ, bảo vệ van bán dẫn Tụ C9 là tụ công suất giúp chống nhiễu từ động cơ về mạch điều khiển, còn trở R16 có tác dụng xả cho FET khi không có áp đặt vào chân điều khiển G.

Khối cách ly có chức năng cách ly hai tín hiệu quan trọng: tín hiệu điều khiển với điện áp và dòng điện nhỏ, và tín hiệu của mạch động lực với điện áp và dòng điện lớn Để đảm bảo an toàn, khối điều khiển và khối công suất được cách ly bằng phần tư cách ly quang sử dụng PC817.

 Sơ đồ nguyên lý khối cách ly và khuếch đại tín hiệu. e) Khối nút nhấn điều khiển

 Sơ đồ mạch nút ấn

Các chân của mạch được treo lên mức logic 1, trong khi các nút nhấn được kết nối với cùng một chân mass Khi nhấn bất kỳ nút nào, chân chip tương ứng sẽ chuyển về mức 0 Khối hiển thị sẽ phản ánh trạng thái này.

Khối sư dụng LCD 16x02 để hiển thị các giá trị thuận tiện cho việc điều khiển.

Sơ đồ mạch điện

Cấp nguồn cho cuộn sơ cấp MBA với điện áp xoay chiều 220 V sẽ tạo ra điện áp cuộn thứ cấp là 12V xoay chiều Qua cầu chỉnh lưu, điện áp này được chuyển đổi thành 12V một chiều Nguồn điện sau đó được đưa vào IC ổn áp 7805, cho ra điện áp ổn định 5V một chiều để cung cấp cho mạch.

Mạch điện được cấp nguồn, và vi điều khiển PIC 16F877A hoạt động với chương trình đã được nạp Khi động cơ chưa quay, không có tín hiệu phản hồi từ Encoder gắn đồng trục với động cơ điện một chiều, do đó màn hình LCD không hiển thị tốc độ.

Khi cấp điện cho động cơ quay, Encoder sẽ quay theo và gửi xung đếm vào chân A4 của IC Chương trình sẽ thực hiện tính toán và cung cấp tín hiệu điều khiển để hiển thị tốc độ động cơ trên màn hình LCD.

3.2.3 Sơ đồ bố trí linh kiện

#fuses HS,NOWDT,PROTECT,BROWNOUT ,NOLVP,NOCPD,NOWRT,NOCPD

#define bt_down PIN_E0 unsigned int16 duty = 1023; //Gia tri PWM signed int32 pulse = 0; unsigned int16 temp_pulse = 0; int1 bit_start = 0;

#define encoder 100 unsigned int32 temp_speed = 0,speed = 0; int1 bit_speed = 0; unsigned int8 coun_speed = 0; unsigned int16 speed_set = 0;

//Cac bien dung cho PID int1 bit_pid = 0;

#define sample_time 5 //Thoi gian lay mau 5ms

The code snippet defines an inverse sample time of 200 and initializes several signed integer variables, including pulse_set and error values It sets the proportional, derivative, and integral gains for a control system, with kp at 200, kd at 2, and ki at 500, to manage error and previous error states effectively.

//kp: thanh phan ti le, kd: thanh phan vi phan, ki: tich phan signed int32 p_part = 0,i_part = 0,d_part = 0; signed int32 output = 1023;

//Cac bien ban phim void pid(); void cai_dat(); void catulate_pulse(); void main(){

SETUP_TIMER_2(T2_DIV_BY_4,255,1); //Tan so PWM 2.929Khz SETUP_CCP1(CCP_PWM); //Khoi tao CCP1 la PWM

SETUP_TIMER_1(T1_INTERNAL|T1_DIV_BY_1);

//Khoi tao Lcd lcd_init(); lcd_putcmd(0x01); lcd_putcmd(0x80); printf(lcd_putchar,"PV: %ld V/P ", speed); lcd_putcmd(0XC0); printf(lcd_putchar,"SV: %ld ",speed_set); catulate_pulse();

ENABLE_INTERRUPTS(GLOBAL); while(TRUE){

The code snippet initializes an LCD display to show the duty cycle value and checks the status of specific control bits When both the `bit_pid` and `bit_start` are set to 1, the PID function is executed If the start button is not pressed and the `bit_start` remains 0, a delay is introduced before checking the button state again If the button is still not pressed, `bit_start` is updated to 1, prompting the LCD to display "RUN " after a brief delay.

} if((input(bt_stop) == 0) && (bit_start == 1)){ delay_ms(10); if(input(bt_stop) == 0){ bit_start = 0;

SET_PWM1_DUTY(1023); output = 1023; lcd_putcmd(0XCA); printf(lcd_putchar," "); delay_ms(100);

} if((input(bt_set) == 0) && (bit_start == 0)){ delay_ms(10); if(input(bt_set) == 0){ while(input(bt_set) == 0); cai_dat();

//Hien thi toc do if(bit_speed == 1){ bit_speed = 0; speed = (speed * 60) / encoder; lcd_putcmd(0x80); printf(lcd_putchar,"PV: %ld V/P ", speed); }

} void catulate_pulse(){ pulse_set = speed_set; pulse_set = (pulse_set * encoder) / 12000;

} void cai_dat(){ int1 bit_set = 1; int1 bit_up = 0; int1 bit_down = 0; lcd_putcmd(0XCA); printf(lcd_putchar,"SET "); while(bit_set == 1){

The code snippet checks if the 'bt_up' input is inactive, introducing a delay of 10 milliseconds If 'bt_up' remains inactive and the 'speed_set' value is below 3700, it increments 'speed_set' by 10 The updated speed is then displayed on the LCD screen with the command to position the cursor at the beginning of the second line, showing "SV: " followed by the current speed value If the 'bit_up' variable is set to 1, an additional delay of 1 millisecond is executed.

} else{ delay_ms(100); if(input(bt_up) == 0) bit_up = 1;

The code snippet checks if the "bt_down" input is pressed; if so, it introduces a delay and decreases the "speed_set" variable by 10, provided that it is greater than 0 The updated speed value is then displayed on the LCD screen Additionally, if the "bit_down" condition is met, a brief delay is implemented.

} else{ delay_ms(100); if(input(bt_down) == 0) bit_down = 1;

} if(input(bt_set) == 0){ delay_ms(10); if(input(bt_set) == 0){ while(input(bt_set) == 0); lcd_putcmd(0XCA); printf(lcd_putchar," "); catulate_pulse(); bit_set = 0;

} void pid(){ bit_pid = 0; err = pulse_set - pulse; p_part = kp*err; d_part = kd*(err - pre_err); if(d_part > 0)d_part = 0; if(d_part < -10230)d_part = -10230; if(pulse >= pulse_set){ i_part = 0;

} else{ i_part += (ki*sample_time*err)/1000; if(i_part > 10230)i_part = 10230;

}; output += p_part + i_part + d_part; if(output >= 10230){output = 10230;}; if(output = 200){ coun_speed = 0; speed = temp_speed; temp_speed = 0; bit_speed = 1;

Ngày đăng: 24/10/2021, 20:44

TỪ KHÓA LIÊN QUAN

w