Mục lục:

Điều khiển Servo không dây: 6 bước
Điều khiển Servo không dây: 6 bước

Video: Điều khiển Servo không dây: 6 bước

Video: Điều khiển Servo không dây: 6 bước
Video: Điều khiển động cơ không chổi than dùng test servo và vi điều khiển _ kênh chế tác 2024, Tháng mười một
Anonim
Điều khiển Servo không dây
Điều khiển Servo không dây
Điều khiển Servo không dây
Điều khiển Servo không dây

Dự án này điều khiển vòng quay của một servo không dây bằng một chiết áp (núm). Xoay được giới hạn ở 180 độ.

Bước 1: Các thành phần

Các thành phần
Các thành phần
Các thành phần
Các thành phần
Các thành phần
Các thành phần

Dự án này bao gồm

  • 2 bo mạch điều khiển Arduino UNO với cáp kết nối USB
  • 2 mô-đun thu phát RF nRF24L01 - 2.4GHz (để được trợ giúp về các mô-đun này, hãy tham khảo
  • 2 bảng mạch bộ điều hợp ổ cắm (chip ba lô) cho nRF24L01
  • 1 tùy chọn Bảng mở rộng nguyên mẫu 328 ProtoShield tương thích với Arduino
  • 1 servo
  • 1 chiết áp analog
  • mỏ hàn và thuốc hàn
  • dây điện
  • kìm mũi kim
  • bọc cách điện, tôi đã sử dụng băng dính điện

Bước 2: Bảng máy chủ

Bảng máy chủ
Bảng máy chủ

Bo mạch máy chủ bao gồm mô-đun thu phát, bo mạch chắn (chỉ kết nối trực tiếp với bo mạch Arduino theo một chiều) và servo. Tôi quyết định bao gồm tấm chắn để tránh breadboard vụng về và mang lại cho dự án và tổng thể kết thúc gọn gàng hơn.

Mã và tài nguyên web có trong danh sách thành phần nêu chi tiết các kết nối mô-đun bộ thu phát. Tôi quyết định hàn các kết nối thay vì sử dụng các kết nối tạm thời như trong các dự án trước đây. Vì tôi là người mới bắt đầu, tôi đã cách điện từng mối hàn bằng băng dính điện (chúng không đẹp).

Các chân của bảng lá chắn tương ứng trực tiếp với các chân của Arduino. Trước khi gắn bảng bảo vệ, tôi đã kết nối đất và chân 5volt vào đường ray của bảng bằng dây và hàn. Tôi cũng hàn các dây nối đất và 5volt của linh kiện vào thanh ray của bảng chắn, sau đó cuối cùng gắn Arduino vào bảng chắn.

Servo được gắn vào chân 3volt để cấp nguồn và chân kỹ thuật số 2 để giao tiếp.

** Lưu ý: chỉ sau khi hoàn thành bản dựng này, tôi mới nhận thấy rằng các bảng Arduino của tôi không giống nhau. Bộ thu phát máy chủ của tôi được cấp nguồn bằng đường sắt 5volt trên bảng chắn, trong khi bộ thu phát khách được cấp nguồn bằng chân 3volt, mặc dù tôi đã được dẫn dắt tin rằng một chức năng của chip bộ điều hợp trên bộ thu phát là cung cấp điện áp thích hợp. Tất cả những gì tôi có thể nói chắc chắn là mã được cung cấp khớp với cấu hình hiển thị trong hình ảnh sẽ tạo ra hiệu ứng được mô tả.

Bước 3: Bộ mã hóa máy chủ: Sao chép và dán

// MÃ MÁY CHỦ / * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> Không sử dụng GND> GND VCC> 5V * / // đấu dây bộ thu phát

#bao gồm

// thư viện servo

#bao gồm

// thư viện bộ thu phát

#define Servopin 2

// khai báo chân đầu ra của servo

ServoTimer2 dịch vụ;

// khai báo tên servo

RH_NRF24 nrf24;

// khai báo tên bộ thu phát

int timeOUT = 0;

// biến cho servo

int xung = 90;

// biến để lưu trữ các xung

void setup ()

{serv.attach (Servopin); // nội dung servo

Serial.begin (9600); // công cụ thu phát

if (! nrf24.init ())

Serial.println ("init bị lỗi"); // nội dung theo dõi nối tiếp if (! nrf24.setChannel (12)) // đặt kênh thành 125 Serial.println ("setChannel fail"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF thất bại"); // nội dung màn hình nối tiếp}

void loop ()

{if (nrf24.available ()) {uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; uint8_t len = sizeof (buf); if (nrf24.recv (buf, & len)) // nội dung theo dõi nối tiếp {Serial.print ("got request:"); xung = strtol ((const char *) buf, NULL, 10); // kiểu dữ liệu thay đổi thứ

int Prince = map (xung, 750, 2250, 0, 180); // kiểu dữ liệu thay đổi thứ

Serial.println (hoàng tử); serv.write (xung); // làm cho servo di chuyển}}

}

Bước 4: Ban khách hàng

Ban khách hàng
Ban khách hàng

Bo mạch khách bao gồm một mô-đun thu phát và chiết áp. Mô-đun thu phát được nối dây theo cùng một cách ** với bo mạch máy chủ, ngoại trừ việc không có bo mạch che chắn, nó được nối trực tiếp vào các chân bo mạch Arduino.

Chiết áp có 5v, nối đất, và được kết nối với chân 2 tương tự.

** Lưu ý: như đã đề cập trong bước bảng máy chủ, bảng Arduino của tôi không giống nhau. Trong trường hợp này, bộ thu phát được nối với chân có nhãn 3.3V, trực tiếp liền kề với chân 5V, nhưng một lần nữa, mọi thứ dường như hoạt động tốt.

Bước 5: Mã khách hàng: Sao chép và dán

// MÃ KHÁCH HÀNG / * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> Không sử dụng GND> GND VCC> 5V * / // đấu dây bộ thu phát

#bao gồm

// thư viện bộ thu phát

int potpin = A2; // phân tách chiết áp

int val;

char tempChar [5];

Chuỗi valString = ""; // kiểu dữ liệu thay đổi thứ

RH_NRF24 nrf24; // công cụ thu phát

void setup ()

{Serial.begin (9600); if (! nrf24.init ()) Serial.println ("init thất bại"); // Giá trị mặc định sau init là 2,402 GHz (kênh 2), 2Mbps, 0dBm if (! Nrf24.setChannel (12)) Serial.println ("setChannel fail"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF thất bại"); } // công cụ thu phát

void loop () {

val = analogRead (potpin); // công cụ chiết áp

val = bản đồ (val, 0, 1023, 750, 2250);

valString = val; Chuỗi str = (valString); str.toCharArray (tempChar, 5); // kiểu dữ liệu thay đổi thứ nrf24.send (tempChar, sizeof (tempChar));

}

Bước 6: Lưu ý về mã:

Mã chứa một số chức năng khắc phục sự cố hạn chế dưới dạng phản hồi từ màn hình nối tiếp trong giao diện phần mềm Arduino. Khi xem màn hình nối tiếp từ mã SERVER (ctrl + shift + M), bạn sẽ có thể thấy trạng thái của chiết áp dưới dạng một số từ 1 đến 180.

Ngoài ra, đây là thư viện cho không dây và servo:

www.airspayce.com/mikem/arduino/RadioHead/

github.com/nabontra/ServoTimer2

Đề xuất: