Mục lục:
Video: Điều khiển vị trí góc của động cơ bước 28BYJ-48 với cần điều khiển Arduino & tương tự: 3 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:32
Đây là sơ đồ điều khiển cho động cơ bước 28BYJ-48 mà tôi đã phát triển để sử dụng như một phần của dự án luận văn năm cuối của mình. Tôi chưa thấy điều này được thực hiện trước đây vì vậy tôi nghĩ rằng tôi sẽ tải lên những gì tôi phát hiện ra. Hy vọng rằng điều này sẽ giúp ai đó khác ngoài đó!
Về cơ bản, mã cho phép động cơ bước "sao chép" vị trí góc của cần điều khiển tương tự, nghĩa là nếu bạn đẩy cần điều khiển về phía trước, động cơ sẽ hướng về "phía bắc". đẩy cần điều khiển về phía tây, động cơ quay để chỉ theo cùng một hướng.
Đối với việc triển khai của tôi, tôi yêu cầu rằng nếu cần điều khiển được buông ra, tức là không có vị trí góc, động cơ sẽ trở về hướng "nhà". Hướng nhà quay về hướng đông và động cơ (hoặc cho thuê bất kỳ con trỏ / thiết bị nào bạn đã gắn vào trục đầu ra!) Cũng phải quay về hướng này khi được bật nguồn.
Quân nhu
Arduino Uno hoặc tương tự
breadboard & lựa chọn dây nhảy (nam sang nam, nam sang nữ)
Nguồn điện 5V
Mô-đun cần điều khiển tương tự (lý tưởng là với tính năng nút nhấn tạm thời, điều này giúp cho việc nghỉ ngơi ở vị trí "nhà" dễ dàng hơn
Động cơ bước 28BYJ-48 và trình điều khiển bước ULN2003
Bút, giấy và blu-tac (hoặc bất kỳ thiết bị con trỏ nào khác để gắn vào động cơ!)
Bước 1: Bước 1: Thiết lập
Kết nối động cơ bước với trình điều khiển bước và kết nối các chân như sau:
IN1 - chân 8 của Arduino
IN2 - chân 9 của Arduino
IN3 - Chân 10 của Arduino
IN4 - chân 11 của Arduino
Kết nối nguồn điện 5v của bạn với các đường cung cấp trên bảng mạch của bạn và kết nối các đầu vào 5v của ULN2003 với các đường cung cấp. kết nối đường ray nối đất với mặt đất trên Arduino của bạn.
đối với cần điều khiển, kết nối như sau:
Chốt chuyển đổi - chân 2 của Arduino
Trục X - Arduino A0 (Tương tự trong 0)
Trục Y - Arduino A1
+ 5V - Đầu ra Arduino 5V
GND - Arduino GND
Cuối cùng kết nối mặt đất của breadboard của bạn với chân Arduino GND khác
Bước 2: Bước 2: Giải thích mã
Tôi đã gửi kèm mã Arduino đầy đủ để bạn tải về và sử dụng. Nhưng tôi sẽ cố gắng hết sức để giải thích những phần thích hợp ở đây.
Lý thuyết đằng sau mã này là không gian bị chiếm bởi cần điều khiển được chia thành một đồ thị, với 0, 0 ở trung tâm. tuy nhiên, các đầu vào của phím điều khiển nằm ở (khoảng) 512 ở trung tâm, do đó, để khắc phục hai chức năng này được sử dụng để "không" giá trị đọc từ trục X và Y. tùy thuộc vào nguồn điện mà bạn sử dụng, bạn có thể cần phải thay đổi các giá trị trong các chức năng ZeroX và ZeroY để cần điều khiển của bạn cung cấp số đọc đáng tin cậy là 0 khi nghỉ ngơi.
Khi các giá trị X, Y được đọc, trước tiên chúng được chuyển đổi thành radian bằng cách sử dụng hàm atan2 () trong thư viện math.h. Việc giải thích chức năng này nằm ngoài phạm vi của hướng dẫn này, nhưng hãy đi tìm nó - nó là một thủ thuật hình học khá đơn giản!
Cuối cùng, để làm cho cuộc sống dễ dàng hơn cho những người trong chúng ta, những người từng làm việc theo độ hơn là rads, giá trị rad được tính bằng atan2 () được chuyển đổi thành độ.
Ở đầu vòng lặp là một đoạn mã nhỏ cho phép bạn nhấp vào nút tạm thời trên cần điều khiển để di chuyển vị trí "nhà". Điều này cực kỳ hữu ích trong khi kiểm tra mã, nhưng tôi đã để nó ở lại vì tôi có thể thấy nó có thể hữu ích như thế nào trong một số trường hợp.
Bây giờ vào phần lớn chính của mã! chúng tôi bắt đầu bằng cách đọc các tọa độ cần điều khiển X, Y hai lần cách nhau bằng độ trễ 10ms và sau đó kiểm tra xem chúng có giống nhau không - tôi nhận thấy rằng cần điều khiển đôi khi sẽ xuất ra các bài đọc lẻ tẻ và độ trễ nhỏ này đủ để dừng động cơ quay dựa trên các. Đó cũng là một độ trễ đủ ngắn để nó dường như không ảnh hưởng đến các đầu vào có chủ đích.
Phần còn lại của mã khá tự giải thích và tôi đã cố gắng hết sức để ghi lại nó; Một loạt các câu lệnh IF so sánh góc của cần điều khiển hiện tại với góc của động cơ và di chuyển động cơ đến góc đó. 28BYJ-48 có 5.689 bước mỗi độ, vì vậy đó là lý do tại sao chúng tôi nhân chuyển động cần thiết với số dường như kỳ lạ này!
Một phần của mã yêu cầu giải thích nhiều nhất là những gì tôi đã gọi là "trường hợp bao quanh". Ngay cả khi cần điều khiển và động cơ ở ví dụ: + 175 °, và sau đó cần điều khiển di chuyển đến -175 ° (một chuyển động chỉ 10 ° trên cần điều khiển, từ phía bắc của tây sang ngay phía nam của phía tây), động cơ sẽ di chuyển THEO HƯỚNG SAI 350 °! để giải thích cho điều này, trường hợp đặc biệt đã được viết.
Trường hợp quấn quanh bắt đầu bằng cách kiểm tra xem động cơ và cần điều khiển có các dấu hiệu trái ngược nhau, tức là động cơ là dương và cần điều khiển âm hoặc ngược lại. Nó cũng kiểm tra xem tổng giá trị tuyệt đối (nghĩa là, giá trị dương) của cần điều khiển và động cơ có trên 180 ° hay không.
Nếu cả hai câu này đều đúng, thì hàm sẽ kiểm tra xem động cơ cần chuyển động theo chiều kim đồng hồ (giá trị động cơ là âm) hay ngược chiều kim đồng hồ (nếu giá trị động cơ là dương).
Các giá trị tuyệt đối của góc động cơ và góc cần điều khiển được cộng lại và trừ đi 360 ° để xác định khoảng cách di chuyển. Cuối cùng, góc động cơ (hiện phản ánh góc cần điều khiển) được cập nhật như vậy.
Bước 3: KẾT THÚC
Vì vậy, tất cả những gì còn lại cần làm là tải mã lên Arduino của bạn và chạy nó! Xem video ở trên để biết rõ về cách thức hoạt động của dự án. Điều này sẽ hữu ích cho gimbal máy ảnh, cánh tay robot và nhiều ứng dụng khác!
Nếu bạn sử dụng mã, vui lòng cho tôi biết và nếu bạn thấy bất kỳ nơi nào mã có thể được cải thiện, tôi rất muốn nghe phản hồi của bạn.
Đề xuất:
Điều khiển Arduino LED với cần điều khiển tương tự: 6 bước
Điều khiển Arduino LED bằng Cần điều khiển tương tự: Trong hướng dẫn này, chúng ta sẽ học cách sử dụng Cần điều khiển tương tự để điều khiển đèn LED. Xem video trình diễn
Động cơ bước Điều khiển động cơ bước Không cần vi điều khiển !: 6 bước
Động cơ bước Điều khiển động cơ bước Không cần vi điều khiển !: Trong phần Hướng dẫn nhanh này, chúng tôi sẽ tạo một bộ điều khiển động cơ bước đơn giản bằng cách sử dụng động cơ bước. Dự án này không yêu cầu mạch phức tạp hoặc vi điều khiển. Vì vậy, không cần thêm ado, chúng ta hãy bắt đầu
ESP8266 RGB LED STRIP Điều khiển WIFI - NODEMCU làm điều khiển từ xa hồng ngoại cho dải đèn Led được điều khiển qua Wi-Fi - Điều khiển điện thoại thông minh RGB LED STRIP: 4 bước
ESP8266 RGB LED STRIP Điều khiển WIFI | NODEMCU làm điều khiển từ xa hồng ngoại cho dải đèn Led được điều khiển qua Wi-Fi | Điều khiển bằng điện thoại thông minh RGB LED STRIP: Xin chào các bạn trong hướng dẫn này, chúng ta sẽ học cách sử dụng gật đầu hoặc esp8266 làm điều khiển từ xa IR để điều khiển dải LED RGB và Nodemcu sẽ được điều khiển bằng điện thoại thông minh qua wifi. Vì vậy, về cơ bản bạn có thể điều khiển DÂY CHUYỀN LED RGB bằng điện thoại thông minh của mình
Các dự án thú vị với Bộ siêu khởi động Elegoo Uno R3 - Điều khiển cần điều khiển cho Động cơ DC: 4 bước
Những dự án thú vị với Elegoo Uno R3 Super Start Kit - Điều khiển cần điều khiển cho động cơ DC: Trong Tài liệu hướng dẫn này, tôi sẽ cố gắng điều khiển hướng và tốc độ của động cơ DC bằng cần điều khiển với sự trợ giúp của Arduino, sử dụng các thành phần từ Elegoo Uno R3 Super Start Kit hiện có trên Amazon.com
Điều khiển các thiết bị điện của bạn bằng Điều khiển từ xa Tv (Điều khiển từ xa) với Màn hình nhiệt độ và độ ẩm: 9 bước
Điều khiển thiết bị điện của bạn bằng Điều khiển từ xa Tv (Điều khiển từ xa) Có Hiển thị nhiệt độ và độ ẩm: xin chào, tôi là Abhay và đây là blog đầu tiên của tôi về Các thiết bị điện và hôm nay tôi sẽ hướng dẫn bạn cách điều khiển các thiết bị điện bằng điều khiển từ xa bằng cách xây dựng cái này dự án đơn giản. cảm ơn atl lab đã hỗ trợ và cung cấp tài liệu