Mục lục:

Xoay giá đỡ điện thoại: 7 bước
Xoay giá đỡ điện thoại: 7 bước

Video: Xoay giá đỡ điện thoại: 7 bước

Video: Xoay giá đỡ điện thoại: 7 bước
Video: HƯỚNG DẪN SỬ DỤNG GIÁ ĐỠ ĐIỆN THOẠI TỰ ĐỘNG XOAY 360 ĐỘ 2024, Tháng bảy
Anonim
Xoay điện thoại gắn kết
Xoay điện thoại gắn kết

Tài liệu hướng dẫn này được tạo ra để đáp ứng yêu cầu dự án của Makecourse tại Đại học Nam Florida (www.makecourse.com).

Bạn muốn tạo một giá treo điện thoại xoay để bạn có thể xem nội dung của điện thoại theo hướng dọc hoặc ngang mà không cần phải giữ? Sau đó lựa chọn nào tốt.

Để tạo dự án này, bạn sẽ cần:

- Vi điều khiển Arduino và IDE

- Cáp USB để tải mã lên

- Bảng bánh mì

- Dây nhảy

- Màn hình LCD

- Servo

- Cột có thể gắn vào servo

- Điều khiển từ xa IR

- Bộ thu IR

- Điện trở 10k ohm

- Khung máy bay Kenu + Kẹp điện thoại (hoặc thứ gì đó để giữ điện thoại tại chỗ)

- Pin 9 V cho nguồn điện di động hoặc chỉ Arduino hỗ trợ USB

Bước 1: Xây dựng mạch thu IR

Xây dựng mạch thu IR
Xây dựng mạch thu IR
Xây dựng mạch thu IR
Xây dựng mạch thu IR

Đầu tiên, chuyển GND và + 5V từ Arduino đến đường ray nguồn trên bảng mạch của bạn. Sau đó, nhảy điện trở 10k ohm của bạn từ đường ray nguồn + 5V đến chân đầu ra của phototransistor bộ thu IR của bạn. Tiếp theo, sử dụng dây jumper để kết nối với chân 11 trên Arduino từ chân đầu ra của bộ thu IR. Sau đó, sử dụng hai dây jumper để gửi tiếp đất và + 5V đến các chân tương ứng trên bộ thu IR. Bộ lọc RC được hình trong sơ đồ trên là không cần thiết. Cuối cùng, tôi đã không tạo sơ đồ được hiển thị trong bước này và nguồn cho nó có trong hình.

Bước 2: Kết nối Servo, Cột và Giá đỡ Điện thoại

Kết nối Servo, Cột và Giá đỡ Điện thoại
Kết nối Servo, Cột và Giá đỡ Điện thoại
Kết nối Servo, Cột và Giá đỡ Điện thoại
Kết nối Servo, Cột và Giá đỡ Điện thoại
Kết nối Servo, Cột và Giá đỡ Điện thoại
Kết nối Servo, Cột và Giá đỡ Điện thoại

Bây giờ, sử dụng hai dây jumper để nhảy từ mặt đất và + 5V của đường ray nguồn của breadboard vào dây màu nâu và đỏ của servo, tương ứng. Sau đó, sử dụng một dây jumper để gắn chân số 9 trên Arduino vào dây màu cam của servo.

Sau đó, gắn một cột vào đầu của servo như trong hình thứ hai.

Cuối cùng, gắn một thứ gì đó để giữ điện thoại vào cột, như Kenu Airframe +, như trong hình thứ ba.

Bước 3: Kết nối Màn hình LCD cho Servo Readout

Kết nối màn hình LCD để đọc Servo
Kết nối màn hình LCD để đọc Servo

Nhảy tiếp đất và + 5V từ giá đỡ nguồn trên breadboard của bạn đến các chân tương ứng trên Màn hình LCD. Ngoài ra, nhảy các chân SDA và SCL từ màn hình LCD vào Ardiuno. Các chân SDA và SCL của Arduino có thể được xác định từ mặt sau của bảng Arduino và là hai chân phía trên AREF và Ground phía trên chân 13. Chân SCL là chân cao nhất. Điều này cho phép màn hình LCD đọc vị trí servo hiện tại.

Bước 4: Sử dụng mã và thư viện đính kèm để lập trình Arduino

Sử dụng mã và thư viện đính kèm để lập trình Arduino
Sử dụng mã và thư viện đính kèm để lập trình Arduino

Tải xuống tệp RotatingMountCode.zip. Cài đặt Arduino IDE và giải nén tệp đã tải xuống vào Documents / Arduino. Đảm bảo rằng bạn sao chép nội dung của thư mục bản phác thảo và thư viện của tôi vào thư mục bản phác thảo và thư viện của bạn. Mở bản phác thảo ServoIRandLCD và tải nó lên Arduino của bạn.

Xem các bước sau để giải thích mã.

Bước 5: Kết nối nguồn điện mong muốn với Arduino và sử dụng điều khiển từ xa để xoay giá đỡ

Kết nối nguồn điện mong muốn với Arduino và sử dụng điều khiển từ xa để xoay giá đỡ!
Kết nối nguồn điện mong muốn với Arduino và sử dụng điều khiển từ xa để xoay giá đỡ!
Kết nối nguồn điện mong muốn với Arduino và sử dụng điều khiển từ xa để xoay giá đỡ!
Kết nối nguồn điện mong muốn với Arduino và sử dụng điều khiển từ xa để xoay giá đỡ!

Để Arduino được cắm vào máy tính của bạn hoặc rút phích cắm khỏi máy tính của bạn và sử dụng pin 9V để cung cấp nguồn DC cho Arduino. Cuối cùng, hãy sử dụng một điều khiển từ xa IR giá rẻ để điều khiển servo và do đó là hướng của giá gắn điện thoại!

Số 1 trên điều khiển từ xa nên đặt vị trí servo thành 0 độ, số 2 thành 90 độ và số 3 thành 180 độ. Trong khi đó, các nút + và - trên điều khiển từ xa sẽ tăng hoặc giảm góc của servo tương ứng 1 độ.

Lưu ý: Nếu bạn sử dụng Điều khiển từ xa IR khác với điều khiển trong hình ở đây, có thể mã IR tương ứng với các nút khác nhau đã thay đổi. Nếu vậy, hãy sửa đổi phác thảo ServoIRandLCD để sử dụng các mã IR đó thay thế.

Bước 6: Đọc phần này để biết giải thích mã nguồn

Đọc phần này để biết giải thích mã nguồn
Đọc phần này để biết giải thích mã nguồn
Đọc phần này để biết giải thích mã nguồn
Đọc phần này để biết giải thích mã nguồn

Bạn có thể tìm thấy mã nguồn cho bản phác thảo Arduino bên dưới hoặc trong tệp.zip được đính kèm trước đó. Bạn chỉ có thể tìm thấy các thư viện bắt buộc trong tệp.zip đã đính kèm trước đó ở bước 4.

Điều đầu tiên mã làm là bao gồm các thư viện cần thiết cần thiết để chạy tất cả các chức năng trong bản phác thảo. Tiếp theo, nó khai báo chân 9 trên Arduino là chân tín hiệu hỗ trợ PWM cho servo. Nó cũng làm cho chân 11 trên Arduino trở thành chân được sử dụng cho bộ thu IR. Tiếp theo, nó khai báo một biến số nguyên được sử dụng để theo dõi vị trí của servo theo độ và đặt nó thành 0 độ, ban đầu. Sau đó, nó khởi tạo các đối tượng cần thiết cho một đối tượng IRrecv, một đối tượng servo và đối tượng myDisplay LCD (cũng được định cấu hình trong cùng một dòng) để những đối tượng này có thể được sử dụng sau này.

Tiếp theo, trong chức năng cài đặt, cổng nối tiếp được khởi động ở tốc độ 9600 bit / giây để màn hình nối tiếp có thể được sử dụng để theo dõi vị trí của servo nếu muốn. Nó cũng gắn đối tượng myservo vào chân 9, khởi động bộ thu IR và khởi chạy màn hình LCD.

Trong chức năng vòng lặp chính, phần thân của chức năng này chỉ được thực thi nếu nhận được truyền IR từ bộ thu IR, bộ thu IR giải mã tín hiệu được gửi đến nó từ điều khiển từ xa IR bằng cách sử dụng hàm giải mã (& kết quả) và sau đó nếu các câu lệnh xác định điều gì để đặt servo thành tùy thuộc vào giá trị IR nhận được. Chức năng ghi được sử dụng để đặt servo ở các độ thích hợp của nó và chức năng đọc được sử dụng để tìm góc hiện tại của servo và tăng hoặc giảm nó khi cần thiết.

Cuối cùng, góc hiện tại của servo được gửi đến cả màn hình nối tiếp và màn hình LCD bằng cách sử dụng hàm myservo.read () và các vòng lặp chính lặp lại vô thời hạn.

Mã nguồn:

#include // Thư viện chuẩn Arduino # include // Thư viện IR #include "Wire.h" //Wire.h cho LCD (đôi khi cần thiết) #include "LiquidCrystal_I2C.h" // Thư viện LCD

#define servopin 9 // điều này xác định chân 9 là chân được sử dụng cho dây dẫn điều khiển servo (màu cam)

int RECV_PIN = 11; // Bóng bán dẫn quang IR gửi đầu ra đến chân 11

int currentAngle = 0; // khai báo biến số nguyên currentAngle và đặt thành 0

IRrecv không thể thay đổi (RECV_PIN); // khởi tạo đối tượng nhận IR kết quả decode_results; // khởi tạo một đối tượng decode_results. Đối tượng này tách biệt với bộ thu IR.

Servo myservo; // khởi tạo đối tượng Servo có tên 'myservo' // có thể tạo tối đa tám đối tượng servo

LiquidCrystal_I2C myDisplay (0x27, 16, 2); // khởi tạo đối tượng LCD và thiết lập cấu hình

void setup () {

Serial.begin (9600); // bắt đầu cổng nối tiếp

myservo.attach (servopin); // gắn servo trên chân 9 vào đối tượng servo

không thể thay đổi.enableIRIn (); // khởi động bộ thu

myDisplay.init (); // khởi tạo LCD

myDisplay.backlight (); // bật đèn nền LCD

}

void loop () {

if (Uncv.decode (& results)) // nếu nhận được truyền…

{Serial.print ("Giá trị IR nhận được:");

Serial.println (results.value); // giá trị hiển thị đã nhận

// diễn giải các lệnh đã nhận… if (results.value == 16724175) // 1 {// left myservo.write (0); }

if (results.value == 16718055) // 2 {// middle myservo.write (90); }

if (results.value == 16743045) // 3 {// ngay myservo.write (180); }

if (results.value == 16754775) // + {// tăng currentAngle = myservo.read (); myservo.write (currentAngle + 1); } if (results.value == 16769055) // - {// giảm currentAngle = myservo.read (); myservo.write (currentAngle - 1); }}

Uncv.resume (); // Nhận giá trị tiếp theo

// Màn hình nối tiếp print Serial.print ("Vị trí servo hiện tại:");

Serial.println (myservo.read ()); // điều này truy xuất vị trí servo và gửi nó đến màn hình nối tiếp

// LCD in myDisplay.clear ();

myDisplay.print ("Servo deg:");

myDisplay.print (myservo.read ());

chậm trễ (200); // trì hoãn để làm cho hoạt động của servo ổn định

}

Bước 7: Xem video Youtube của tôi để được trợ giúp

Xem video YouTube không công khai của tôi thảo luận đầy đủ và trình bày về dự án nếu bạn có bất kỳ câu hỏi nào!

Đề xuất: