1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án học phần kỹ thuật Điện tử số và vi xử lý tên Đề tài thiết kế, chế tạo bộ Điều khiển Động cơ bước sử dụng vi Điều khiển stm32

31 2 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 Bộ Điều Khiển Động Cơ Bước Sử Dụng Vi Điều Khiển STM32
Tác giả Nguyễn Văn Lợi, Phan Bá Sáng, Nguyễn Phúc Huy Hoàng, Vi Quốc Cường, Trần Anh Tú
Người hướng dẫn ThS. Lê Văn Chương
Trường học Trường Đại Học Vinh
Chuyên ngành Công Nghệ Kỹ Thuật Điện, Điện Tử
Thể loại Đồ Án
Năm xuất bản 2024
Thành phố Nghệ An
Định dạng
Số trang 31
Dung lượng 4,15 MB

Cấu trúc

  • 1.1. GIỚI THIỆU CHUNG VỀ ĐỘNG CƠ BƯỚC (7)
  • 1.2. CẤU TẠO CHUNG (7)
  • 1.3. MỘT SỐ ỨNG DỤNG SẢN PHẨM ĐỘNG CƠ BƯỚC TRONG THỰC TẾ (8)
  • CHƯƠNG 2:THIẾT KẾ, CHẾ TẠO ĐỘNG CƠ BƯỚC......................................... 2.1. PHÂN TÍCH YÊU CẦU THIẾT KẾ (10)
    • 2.2. SƠ ĐỒ KHỐI (11)
    • 2.3. LỰA CHỌN CÁC LINH KIỆN SỬ DỤNG (12)
    • 2.4. SƠ ĐỒ NGUYÊN LÝ (20)
    • 2.5. LẬP TRÌNH PHẦN MỀM ĐIỀU KHIỂN (21)
    • 2.6. CHẾ TẠO VÀ THỬ NGHIỆM (23)

Nội dung

Để góp một phần nhỏ vào việc này chúng em đã thực hiện đề tài “Thiết kế, chế tạo bộ điều khiển động cơ bước sử dụng vi điều khiểnSTM32” thông qua đề tài này chúng em sẽ có những điều kiệ

GIỚI THIỆU CHUNG VỀ ĐỘNG CƠ BƯỚC

Động cơ bước là loại động cơ cho phép điều chỉnh tần số góc quay, với góc bước nhỏ giúp tăng số bước trên mỗi vòng quay và nâng cao độ chính xác Đây là động cơ đồng bộ, chuyển đổi tín hiệu điều khiển thành các chuyển động góc quay hoặc di chuyển roto, đồng thời giữ cố định roto ở các vị trí cần thiết.

Động cơ bước có góc bước tối đa đạt 90 độ và tối thiểu 0,72 độ, nhưng thường sử dụng các góc phổ biến như 1,8 độ, 2,5 độ, 7,5 độ và 15 độ Được biết đến với vai trò quan trọng trong điều khiển chuyển động kỹ thuật số và tự động hóa, động cơ bước thực hiện chính xác các lệnh số, cho phép quay một góc bất kỳ và dừng lại ở vị trí mong muốn Vì vậy, nó được ứng dụng rộng rãi trong lĩnh vực tự động hóa và điều khiển số.

CẤU TẠO CHUNG

Động cơ bước là một loại động cơ điện độc đáo, khác biệt với các động cơ điện thông thường Nó hoạt động theo nguyên lý di chuyển từng bước nhỏ, mang lại độ chính xác cao và được điều khiển thông qua các xung điện.

Động cơ bước là sự kết hợp giữa động cơ một chiều không tiếp xúc và động cơ đồng bộ giảm tốc công suất nhỏ Đây là một loại động cơ điện không dung chuyển mạch, trong đó rôto và stato được cấu tạo từ nam châm vĩnh cửu hoặc các khối răng bằng vật liệu nhẹ có từ tính Động cơ bước có khả năng quay nhanh và dễ dàng khởi động, dừng lại ở bất kỳ vị trí nào nhờ vào điều khiển thích hợp Nguyên lý hoạt động của động cơ bước dựa trên sự tương tác giữa từ trường quay của stato và các cực từ nam châm trên rotor, khi dòng điện được cấp vào cuộn dây trên stato, tạo ra từ trường quay tác động lên rotor, khiến nó quay theo hướng từ trường.

MỘT SỐ ỨNG DỤNG SẢN PHẨM ĐỘNG CƠ BƯỚC TRONG THỰC TẾ

Trong lĩnh vực điều khiển chuyển động kỹ thuật số, motor bước là một chấp hành viên đặc biệt hiệu quả, vì nó thực hiện chính xác các lệnh số Hiện nay, loại động cơ này được ứng dụng rộng rãi trong ngành tự động hóa, đặc biệt là trong các thiết bị yêu cầu độ chính xác cao.

Hình 1.1: Ứng dụng của động cơ bước trong thiết bị điều khiển robot

Động cơ bước có nhiều ứng dụng quan trọng trong ngành tự động hóa, bao gồm điều khiển robot, định vị trong các quan hệ trắc, điều chỉnh tiêu cự trong hệ quang học, bám mục tiêu trong thiết bị quan sát, điều khiển lái phương và chiều trong máy bay, cũng như lập trình trong các thiết bị gia công cắt gọt.

Hình 1.2: Ứng dụng của động cơ bước trong gia công cắt gọt

Động cơ bước là một thành phần quan trọng trong ngành công nghệ máy tính, được ứng dụng rộng rãi trong ổ đĩa cứng, ổ đĩa mềm và máy in, cũng như trong các hệ thống điều khiển và đo lường Trong lĩnh vực an ninh bảo mật, động cơ bước góp phần nâng cao hiệu quả giám sát, mang lại những tiến bộ đáng kể cho ngành này Bên cạnh đó, trong y tế, động cơ bước được sử dụng trong sản xuất máy quét y tế, máy lấy mẫu, máy chụp ảnh nha khoa kỹ thuật số, máy bơm chất lỏng, mặt nạ phòng độc và các thiết bị phân tích mẫu máu.

Trong lĩnh vực điện tử, động cơ bước đóng vai trò quan trọng trong việc chế tạo máy ảnh, cung cấp khả năng lấy nét chính xác và sắc nét Ngoài ra, nó còn được ứng dụng trong việc thu phóng cho các loại camera kỹ thuật số tự động và máy in 3D.

KẾ, CHẾ TẠO ĐỘNG CƠ BƯỚC 2.1 PHÂN TÍCH YÊU CẦU THIẾT KẾ

SƠ ĐỒ KHỐI

- Chức năng của từng khối thiết bị:

Khối nguồn là thành phần quan trọng cung cấp năng lượng cho vi điều khiển STM32F411RE, driver ULN2003 và động cơ bước 28BYJ-48 Để đảm bảo hoạt động hiệu quả, cần lựa chọn nguồn điện có điện áp và dòng điện phù hợp với yêu cầu của từng thiết bị.

+) Vi điều khiển STM32F411RE gửi tín hiệu đến driver ULN2003:

• STM32F411RE sẽ tính toán và tạo ra các chuỗi xung theo thứ tự để kích hoạt các cuộn dây của động cơ bước.

• Mỗi chuỗi xung sẽ kích hoạt 2 cuộn dây tại một thời điểm, tạo ra từ trường để quay trục động cơ một bước nhỏ

+) Driver ULN2003 khuếch đại tín hiệu điều khiển:

• ULN2003 nhận tín hiệu xung từ STM32F411RE và khuếch đại dòng điện lên mức đủ để kích hoạt các cuộn dây động cơ.

• ULN2003 có 4 kênh điều khiển độc lập, cho phép điều khiển 4 cuộn dây động cơ bước 28BYJ-48.

+) Stepper Motor 28BYJ-48 quay theo các bước:

• Khi các cuộn dây được kích hoạt theo thứ tự, các cực từ của động cơ sẽ thay đổi, tạo ra lực điện từ để quay trục động cơ.

• Thứ tự kích hoạt cuộn dây sẽ quyết định chiều quay của động cơ (theo chiều kim đồng hồ hoặc ngược chiều kim đồng hồ).

• Số lượng xung được gửi đến động cơ sẽ quyết định số bước quay của động cơ.

• Nhận dữ liệu hiển thị từ vi điều khiển STM32F411RE.

• Hiển thị thông tin lên màn hình.

+) Đèn Led: Báo hiệu động cơ chương trình đang chạy hay không+) Nút nhấn: Cho phép người dùng điều khiển động cơ bước bằng tay.

LỰA CHỌN CÁC LINH KIỆN SỬ DỤNG

2.3.1 Vi xử lý STM32 Nucleo-64 development Board with STM32F411RE

The STM32 Nucleo-64 Development Board, featuring the STM32F411RE microcontroller, is an embedded development platform designed for developing and testing embedded applications based on the STM32F411RE processor.

Bo mạch này cung cấp một loạt các tính năng và cổng kết nối để tương tác với vi xử lý và các thiết bị ngoại vi khác.

Vi điều khiển STM32, do STMicroelectronics phát triển, là dòng sản phẩm vi điều khiển (MCU) nổi bật, sử dụng lõi xử lý ARM Cortex-M STM32 tích hợp nhiều tính năng phong phú, bao gồm các giao diện kết nối, bộ nhớ và tính năng bảo mật, đáp ứng nhu cầu đa dạng trong thiết kế và sản xuất linh kiện điện tử.

Mạch STM3 là vi điều khiển (MCU) thuộc dòng STM32F1 của STMicroelectronics, sử dụng kiến trúc ARM Cortex-M3 32-bit với tốc độ xử lý lên đến 72MHz Đây là một trong những MCU phổ biến, được ứng dụng rộng rãi trong các lĩnh vực nhúng và IoT.

Hình 2.3: Vi điều khiển STM32F411RE

Vi xử lý STM32 Nucleo-64 với STM32F411RE MCU là một công cụ phát triển ứng dụng nhúng mạnh mẽ, linh hoạt và hiệu suất cao Nó phù hợp cho nhiều lĩnh vực như IoT, điều khiển thiết bị tự động, robotics, cũng như đào tạo và nghiên cứu Sự ổn định và khả năng mở rộng của STM32 Nucleo-64 mang lại giải pháp sáng tạo và hiệu quả cho các nhà phát triển và kỹ sư nhúng.

Hình 2.4: Cấu tạo của STM32

VCC: là chân cấp nguồn, được kết nối đến nguồn cung cấp điện áp dương.

GND (Ground): là chân đất, cực âm của nguồn điện cấp cho STM32.

Khi bạn dùng các thiết bị sử dụng những nguồn điện riêng biệt thì những chân này phải được nối với nhau.

5V: cấp điện áp 5V đầu ra Dòng tối đa cho phép ở chân này là

3.3V: cấp điện áp 3.3V đầu ra Dòng tối đa cho phép ở chân này là

IOREF trên vi điều khiển STM32 cho phép đo điện áp hoạt động, thường là 5V Tuy nhiên, không nên sử dụng chân này để cấp nguồn 5V, vì chức năng chính của nó không phải là cung cấp điện.

RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương đương với việc chân RESET được nối với GND qua 1 điện trở 10KΩ.

Vin (Voltage Input): để cấp nguồn ngoài cho STM32, bạn nối cực

13 dương của nguồn với chân này và cực âm của nguồn với chân GND.

Trên vi điều khiển STM32, các chân GPIO được ký hiệu bằng mã chân như PA0, PA1, PB0, PB1, trong đó "PA" đại diện cho GPIOA, "PB" cho GPIOB, và tương tự cho các nhóm GPIO khác Cách đặt tên này không chỉ phổ biến trong mã hóa mà còn được sử dụng rộng rãi để tham chiếu đến các chân GPIO trong lập trình.

Chân I2C bao gồm chân SDA (Serial Data Line) và chân SCL (Serial Clock Line) Chân SDA được sử dụng để truyền dữ liệu giữa vi điều khiển STM32 và các thiết bị ngoại vi, thường gắn với các chân GPIO như PA10, PB7, PB9 Trong khi đó, chân SCL có nhiệm vụ đồng bộ hóa quá trình truyền dữ liệu trên chân SDA, cũng được kết nối với các chân GPIO cụ thể như PA9, PB6, PB8.

Chân PWM được sử dụng để tạo tín hiệu PWM, thường áp dụng trong việc điều khiển độ sáng của đèn LED, tốc độ động cơ và các ứng dụng điều khiển động cơ servo Tín hiệu PWM được điều chỉnh thông qua việc thay đổi độ rộng xung trong chu kỳ, giúp kiểm soát hiệu quả tốc độ động cơ và độ sáng đèn LED, đồng thời có khả năng điều chỉnh độ rộng xung để quản lý mức điện áp đầu ra.

2.3.2 MODULE điều khiển động cơ bước ULN2003

Module ULN2003 là giải pháp hiệu quả để điều khiển động cơ bước, mang lại sự dễ dàng và thuận tiện trong việc điều chỉnh Nó được ứng dụng rộng rãi trong các lĩnh vực như máy in 3D, máy CNC, robot và các thiết bị tự động hóa khác.

Mô-đun điều khiển động cơ bước ULN2003 tích hợp mạch ULN2003, một bộ khuếch đại dòng điện, giúp nâng cao khả năng phát xung điều khiển cho các động cơ bước.

Hình 2.5: Module điều khiển động cơ bước ULN2003

Module này được thiết kế với các chân kết nối đơn giản, bao gồm hai dãy chân điều khiển IN1 đến IN4 và OUT1 đến OUT4, giúp dễ dàng kết nối với STM32F411RE hoặc các bo mạch điều khiển khác Ngoài ra, module còn cung cấp chân nguồn VCC và GND để cấp điện cho động cơ bước.

Mỗi chân đầu ra của module ULN2003 có khả năng điều khiển một dây cuộn của động cơ bước Bằng cách gửi tín hiệu xung đến các chân đầu vào, module này sẽ tạo ra các xung điện áp, cho phép điều khiển chính xác các bước chuyển động của động cơ bước.

Module điều khiển động cơ bước ULN2003 có khả năng hoạt động với nguồn điện DC từ 5V đến 12V, tùy thuộc vào yêu cầu của từng loại động cơ bước Điện áp hoạt động tối ưu là 5V.

Hình 2.6: Thông số kỹ thuật Module ULN2003

2.3.3 Động cơ bước 28BYJ-48 Động cơ bước sử dụng trong bài toán là động cơ bước 4 pha (thực ra là

Động cơ bước 28BYJ-48 được cấu tạo với 5 dây, trong đó 4 dây kết nối với 2 cuộn dây và 1 dây là nguồn chung Mỗi bước của động cơ quay 5.625 độ, cần 64 bước để hoàn thành 1 vòng Động cơ này có thể được điều khiển bằng hai phương pháp chính: phương pháp xung, sử dụng xung điện để điều khiển tốc độ và hướng quay, và phương pháp nửa bước, cải tiến từ phương pháp xung, giúp động cơ quay mượt mà hơn và giảm tiếng ồn bằng cách áp dụng xung điện cho các cặp cuộn dây khác nhau.

Hình 2.7: Động cơ bước 28BYJ-48

Hình 2.8: Thông số kỹ thuật động cơ bước 28BYJ-48

- Kích thước lỗ bắt ốc: 3x M3

- Kích thước của mạch: 80mm x 36mm x 12.5m

Module LCD1602 có 4 chân, và mỗi chân có chức năng như sau:

SƠ ĐỒ NGUYÊN LÝ

Hình 2.10: Sơ đồ điều khiển động cơ bước

- Nhấn lần đầu để mở động cơ (LED 13 sáng) Chương trình hoạt động.

- Nhấn lần nữa để khóa động cơ (LED 13 tắt) Chương trình dừng, động cơ không quay. Điều khiển động cơ bước:

+ Nút nhấn B (buttonPin3): Xoay động cơ bước ngược chiều kim đồng hồ. + Nút nhấn C (buttonPin4): Xoay động cơ bước theo chiều kim đồng hồ.

LẬP TRÌNH PHẦN MỀM ĐIỀU KHIỂN

2.5.1 Chức năng của các phần mềm

Chương trình này điều khiển động cơ bước bằng STM32 và nút nhấn Dưới đây là các chức năng của chương trình:

- Cài đặt các chân điều khiển động cơ (in1Pin, in2Pin, in3Pin, in4Pin) là OUTPUT.

- Cài đặt các chân nút nhấn (buttonPin3, buttonPin4, buttonPin5) là INPUT_PULLUP.

- Cài đặt chân LED 13 (ledPin) là OUTPUT.

- Cài đặt chân SDA, SCL màn LCD vào chân STM32

- Kiểm tra trạng thái khóa/mở:

Nếu động cơ đang được mở khóa (dung == false):

- Đọc trạng thái các nút nhấn 3 và 4 để điều khiển hướng quay.

- Đọc trạng thái nút nhấn 5 Nếu được nhấn, chuyển sang trạng thái khóa. Nếu động cơ đang bị khóa (dung == true):

- Đọc trạng thái nút nhấn 5 Nếu được nhấn, chuyển sang trạng thái mở khóa.

Hàm step_mo_to(direction) được gọi để thực hiện các bước điều khiển động cơ theo hướng quy định.

Hàm này sử dụng mảng nguyen_ly để xác định trạng thái HIGH/LOW của các chân điều khiển trong mỗi bước.

- Khóa/Mở khóa chương trình:

Hàm dung_chuong_trinh() đặt biến dung thành true và ngắt xung 4 chân điều khiển để dừng động cơ.

Hàm bat_dau_chuong_trinh() đặt biến dung thành false để tiếp tục chương trình.

Hình 2.11: Lưu đồ thuật toán động cơ bước

CHẾ TẠO VÀ THỬ NGHIỆM

- Driver động cơ bước ULN2003

- Các linh kiện phụ: nút nhấn ,điện trở, dây cắm, breadboard.

+ Thiết kế các phần cứng với nhau:

- Nguồn điện: Cấp nguồn phù hợp cho vi điều khiển STM32, cấp nguồn 5V cho driver lấy từ vi điều khiển STM32.

- Kết nối vi điều khiển STM32 với driver động cơ bước: Chân D8,D9,D10,D11 của STM32 được nối vào chân IN1,IN2,IN3,IN4 của driver động cơ bước ULN2003

- Các nút nhấn được kết nối với chân D3,D4,D5 và chân GND.

- Động cơ bước được nối theo trình tự với driver ULN2003.

- Đèn led được nối vào chân D13 và chân GND.

+ Lập trình vi điều khiển:

- Sử dụng phần mềm lập trình như STM32CubeIDE để viết và nạp chương trình điều khiển vào vi điều khiển.

- Cấu hình các chân GPIO: Xác định các chân sẽ được sử dụng để điều khiển động cơ bước.

- Cấu hình Timer: Sử dụng timer để tạo ra các xung clock điều khiển bước của động cơ.

- Viết hàm điều khiển: Các hàm để điều khiển bước và hướng của động cơ. + Viết các thuật toán cơ bản:

- Full Step: Đưa tín hiệu step vào driver để điều khiển động cơ di chuyển từng bước đầy đủ.

- Half Step: Điều khiển động cơ di chuyển từng nửa bước để tăng độ chính xác.

- Microstepping: Sử dụng các chế độ microstepping của driver để điều khiển động cơ di chuyển mượt mà hơn.2.6.2 Một số hình ảnh của mô hình.

Hình 2.13: Một số hình ảnh của mô hình

2.6.3 Nhận xét các kết quả hoạt động của hệ thống, thiết bị

+ Đánh giá chức năng hoạt động:

Hệ thống điều khiển động cơ bước có khả năng hoạt động chính xác theo từng bước, đảm bảo cả chế độ full step và half step đều được thực hiện một cách mượt mà và đúng thời điểm.

Động cơ bước nổi bật với độ chính xác vị trí cao, cho phép di chuyển đến các điểm mong muốn với sai số đo được rất nhỏ, chỉ dưới 0.1 độ.

Hệ thống cung cấp hiệu suất thời gian thực với khả năng phản hồi nhanh chóng đối với các lệnh điều khiển, cùng với thời gian trễ thấp, đảm bảo đáp ứng tốt cho các ứng dụng có yêu cầu cao.

+ Đánh giá tính ổn định và độ tin cậy:

Hệ thống hoạt động liên tục và ổn định trong thời gian dài mà không gặp sự cố Các thử nghiệm kéo dài 48 giờ cho thấy không có hiện tượng quá nhiệt hay lỗi xảy ra.

Hệ thống có khả năng chịu tải ấn tượng, hoạt động hiệu quả dưới nhiều mức tải khác nhau, từ nhẹ đến nặng, mà không gặp phải tình trạng mất bước hay suy giảm hiệu suất Đánh giá về hiệu suất điện cho thấy sự ổn định và độ tin cậy cao trong quá trình vận hành.

Mức tiêu thụ năng lượng của hệ thống được kiểm tra và nằm trong giới hạn cho phép, với mức tiêu thụ trung bình chỉ 12W, thấp hơn so với mức dự kiến là 15W.

- Tản nhiệt: Hệ thống tản nhiệt hiệu quả, nhiệt độ của vi điều khiển STM32 và driver động cơ luôn dưới 60°C trong điều kiện làm việc bình thường.

Hệ thống điều khiển động cơ bước dựa trên vi điều khiển STM32 đã hoàn thành tốt các yêu cầu đề ra, hoạt động với độ chính xác, ổn định và hiệu quả cao Hệ thống cũng cho thấy khả năng tích hợp và mở rộng tốt, đồng thời mức tiêu thụ năng lượng và hiệu suất tản nhiệt đều nằm trong giới hạn cho phép.

Quá trình thực hiện đồ án giúp các thành viên nâng cao nhận thức về tầm quan trọng của kỹ năng làm việc nhóm và quản lý thời gian, từ đó đảm bảo tính công bằng trong việc thực hiện kế hoạch và nâng cao độ chính xác, hiệu quả của đồ án Đồ án môn học “kỹ thuật điện tử số và vi xử lý” với đề tài “Thiết kế, chế tạo bộ điều khiển động cơ bước sử dụng vi điều khiển STM32” là một trong những đề tài thú vị mà nhóm em đã khai thác dưới sự hướng dẫn của thầy.

Nhờ sự hướng dẫn của Lê Văn Chương, các thành viên trong nhóm đã nâng cao kiến thức về kỹ thuật điện tử số và vi xử lý, đồng thời hiểu rõ hơn về động cơ bước.

Việc phát triển nhiều kỹ năng đa dạng cho nhóm không chỉ bao gồm kỹ năng tư duy logic và làm việc nhóm, mà còn cả khả năng giải quyết vấn đề khó khăn, tìm kiếm thông tin hiệu quả, từ đó giúp nâng cao kinh nghiệm cho sự nghiệp tương lai.

Mặc dù gặp nhiều khó khăn trong quá trình thực hiện, nhóm 05 đã nỗ lực hết mình và hoàn thành đồ án đúng theo kế hoạch đã đề ra.

Chúng tôi xin chân thành cảm ơn sự hỗ trợ và hướng dẫn tận tình từ giảng viên trong quá trình thực hiện đồ án Sự kiên nhẫn và nhiệt huyết của giảng viên không chỉ giúp sinh viên hoàn thành nhiệm vụ mà còn phát triển kỹ năng tự học Quan trọng hơn, giảng viên đã trang bị cho sinh viên những kiến thức và kỹ năng thiết yếu để thành công trong đồ án cũng như trong cuộc sống và sự nghiệp sau này.

1 Động cơ điện - Tác giả: TS Nguyễn Văn Toán, TS Nguyễn Thị Thanh Hằng, NXB Đại học Bách khoa Hà Nội, 2018.

2 Điều khiển tự động hóa - Tác giả: TS Nguyễn Trọng Hoàn, NXB Đại học Bách khoa Hà Nội, 2017.

3 Kỹ thuật điện tử - Tác giả: TS Nguyễn Văn Toán, NXB Đại học Bách khoa Hà Nội, 2015.

4 Sách giáo khoa Điện tử số và Vi xử lý -tác giả: PGS.TS Nguyễn Thành Nam, PGS.TS Nguyễn Ngọc Diệp, NXB Đại học Bách khoa Hà Nội.

5 Lập trình vi điều khiển -tác giả: TS Nguyễn Văn Toán, NXB Đại học Bách khoa Hà Nội.

6 Hệ thống nhúng -tác giả: TS Nguyễn Văn Toán, NXB Đại học Bách khoa Hà Nội.

7 Nguyễn Thị Phương Hà, Huỳnh Thái Hoàng (2005), Lý Thuyết Điều Khiển Tự Động, Nhà xuất bản Đại học quốc gia thành phố Hồ Chí Minh.

8 Dương Đình Tú, Đặng Thái Sơn (2022), Điện tử công suất, Nhà xuất bản Đại Học Vinh.

9 Trần Đình Long (2004), Tự động hóa hệ thống điện, Nhà xuất bản đại học bách khoa Hà Nội.

10.Arduino Việt Nam: http://arduino.vn/bai-viet/685-huong-dan-dieu- khien-dong-co-buoc

PHỤ LỤC Code chương trình điều khiển:

This article discusses the setup of a microcontroller project using the Wire library, featuring control pins for a ULN driver and buttons Specifically, it defines input pins for ULN IN1 to IN4, assigns button pins for user interaction, and initializes an LED on pin 13 The code snippet indicates the beginning of an array named "nguyen_ly," which is likely intended to store configuration or control data.

The code snippet initializes several boolean variables to manage the state of buttons and a directional flag It sets `clockwise` to true, while `dung` and button states for buttons 3, 4, and 5 indicate whether they have been activated or not Specifically, buttons 3 and 4 are marked as activated, while button 5 is currently not open Additionally, it tracks the last display time with an unsigned long variable.

In the setup function, the LCD is initialized and backlight activated, while multiple pins are configured for output and input Specifically, the pins for controlling motors (in1Pin, in2Pin, in3Pin, in4Pin) are set as outputs, and the buttons (buttonPin3, buttonPin4, buttonPin5) are configured with pull-up resistors for input Additionally, an LED pin (ledPin) is designated as an output The constant display interval is set to 200 milliseconds for timing purposes.

} void loop() { if (!dung) { digitalWrite(ledPin, HIGH); check_and_move();

} else { digitalWrite(ledPin, LOW); check_and_start();

} unsigned long currentMillis = millis(); if (currentMillis - lastDisplayTime >= displayInterval) { lastDisplayTime = currentMillis; if (!dung) { display_unlock();

} void display_unlock() { lcd.setCursor(0, 0); lcd.print("Step: Unlock");

} void display_lock() { lcd.clear(); lcd.setCursor(0, 0); lcd.print("Step: Lock"); lcd.setCursor(0, 1); lcd.print(" ");

} void check_and_move() { if (digitalRead(buttonPin3) == HIGH && button3_duoc_nhan) { button3_duoc_nha = !button3_duoc_nha; button3_duoc_nhan = false;

} else if (digitalRead(buttonPin3) == LOW) { button3_duoc_nhan = true;

} if (button3_duoc_nha) { step_mo_to(-1); lcd.setCursor(0, 1); lcd.print("Status: < - ");

} if (digitalRead(buttonPin4) == HIGH && button4_duoc_nhan) { button4_duoc_nha = !button4_duoc_nha; button4_duoc_nhan = false;

} else if (digitalRead(buttonPin4) == LOW) { button4_duoc_nhan = true;

} if (button4_duoc_nha) { step_mo_to(1); lcd.setCursor(0, 1); lcd.print("Status: -> ");

} if (digitalRead(buttonPin5) == HIGH && button5_duoc_nhan) { button5_duoc_nha = !button5_duoc_nha; button5_duoc_nhan = false; button5_dang_duoc_mo = true;

Ngày đăng: 19/12/2024, 14:26

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w