Robot theo dõi và tránh ánh sáng dựa trên Arduino: 5 bước
Robot theo dõi và tránh ánh sáng dựa trên Arduino: 5 bước
Anonim
Robot theo dõi và tránh ánh sáng dựa trên Arduino
Robot theo dõi và tránh ánh sáng dựa trên Arduino

Đây là một dự án đơn giản theo sau hoặc Tránh ánh sáng.

Tôi đã thực hiện mô phỏng này trong Proteus 8.6 pro. Yêu cầu thành phần: -1) Arduino una.

2) 3 LDR.

3) 2 Động cơ bánh răng Dc.4) Một Servo.5) Ba điện trở 1k.6) một cầu H l290D7) Một công tắc bật & tắt [để thay đổi điều kiện của chương trình]

8) Trận chiến 9v và 5v

Bước 1: Mã Ardunio

Mã Arduino được sửa đổi một chút-bit Ngày 23 tháng 2 năm 2016]

Mã này được bình luận nhiều, tôi không muốn giải thích nhưng nếu bạn cần trợ giúp, vui lòng liên hệ với tôi tại ([email protected])

Lưu ý: -Tôi sử dụng hai điều kiện trong chương trình này, thứ nhất cho ánh sáng theo sau và điều kiện thứ hai để tránh ánh sáng.

Miễn là các Điều kiện này được thỏa mãn, Robot sẽ Đi theo hoặc Tránh ánh sáng. [Đây là Giá trị LDR tối thiểu mà tôi chọn. Trong ánh sáng bình thường, Phạm vi của nó là 80 đến 95 nhưng khi Cường độ của nó tăng lên ngày càng nhiều điện áp gây ra tăng lên vì nó đang hoạt động trên Nguyên tắc của Bộ phân chia điện áp int a = 400; // Giá trị giải phóng mặt bằng]

Bước 2: Tập tin Proteus

Đối với Thư viện Arduino, hãy tải xuống từ liên kết đó

Bước 3: Cầu H của bạn hoạt động như thế nào

Cầu H của bạn hoạt động như thế nào
Cầu H của bạn hoạt động như thế nào
Cầu H của bạn hoạt động như thế nào
Cầu H của bạn hoạt động như thế nào

L293NE / SN754410 là một cầu H rất cơ bản. Nó có hai cầu, một ở bên trái chip và một ở bên phải, có thể điều khiển 2 động cơ. Nó có thể điều khiển dòng điện lên đến 1 amp và hoạt động trong khoảng từ 4,5V đến 36V. Động cơ DC nhỏ mà bạn đang sử dụng trong phòng thí nghiệm này có thể chạy an toàn ở điện áp thấp nên cầu H này sẽ hoạt động tốt. Cầu H có các chân và các tính năng sau: Chân 1 (1, 2EN) bật và tắt động cơ của chúng tôi cho dù nó được cấp cho HIGH hay LOWPin 2 (1A) là chân logic cho động cơ của chúng tôi (đầu vào là HIGH hoặc LOW) 3 (1Y) dành cho một trong các đầu cuối của động cơPin 4-5 dành cho đầu nối đấtPin 6 (2Y) dành cho đầu cuối của động cơ khácPin 7 (2A) là chân logic cho động cơ của chúng ta (đầu vào là CAO hoặc THẤP) Chân 8 (VCC2) là nguồn cung cấp năng lượng cho động cơ của chúng tôi, điều này phải được cung cấp điện áp định mức của động cơ của bạnPin 9-11 không được kết nối vì bạn chỉ sử dụng một động cơ trong phòng thí nghiệm này. được kết nối với 5V. Above là một sơ đồ của cầu H và chân nào thực hiện những gì trong ví dụ của chúng tôi. Đi kèm với sơ đồ là một bảng sự thật cho biết động cơ sẽ hoạt động như thế nào theo trạng thái của các chân logic (được thiết lập bởi Arduino của chúng tôi).

Trong Dự án này, chân bật kết nối với chân kỹ thuật số trên Arduino của bạn để bạn có thể gửi nó ở mức CAO hoặc THẤP và BẬT hoặc TẮT động cơ. Các chân logic của động cơ cũng được kết nối với các chân kỹ thuật số được chỉ định trên Arduino của bạn để bạn có thể gửi nó CAO và THẤP để động cơ quay theo một hướng hoặc THẤP và CAO để nó quay theo hướng khác. Điện áp cung cấp cho động cơ kết nối với nguồn điện áp cho động cơ thường là nguồn điện bên ngoài. Nếu động cơ của bạn có thể chạy trên 5V và dưới 500mA, bạn có thể sử dụng đầu ra 5V của Arduino. Hầu hết các động cơ yêu cầu điện áp cao hơn và dòng điện cao hơn mức này, vì vậy bạn sẽ cần một nguồn điện bên ngoài.

Kết nối động cơ với cầu H Kết nối động cơ với cầu H như minh họa trong hình 2.

Hoặc, nếu bạn đang sử dụng nguồn điện bên ngoài cho Arduino, bạn có thể sử dụng chân Vin.

Bước 4: Cách thức hoạt động của LDR

Bây giờ điều đầu tiên có thể cần giải thích thêm là việc sử dụng Điện trở Phụ thuộc Ánh sáng. Điện trở phụ thuộc ánh sáng (hoặc LDR’s) là điện trở có giá trị thay đổi tùy thuộc vào lượng ánh sáng xung quanh, nhưng làm thế nào chúng ta có thể phát hiện điện trở với Arduino? Thực sự thì bạn không thể, tuy nhiên, bạn có thể phát hiện các mức điện áp bằng cách sử dụng các chân tương tự, có thể đo (trong sử dụng cơ bản) trong khoảng từ 0-5V. Bây giờ bạn có thể hỏi "Làm thế nào để chúng tôi chuyển đổi các giá trị điện trở thành sự thay đổi điện áp?", Thật đơn giản, chúng tôi tạo ra một bộ chia điện áp. Một bộ chia điện áp nhận vào một điện áp và sau đó xuất ra một phần nhỏ của điện áp đó tỷ lệ với điện áp đầu vào và tỷ số của hai giá trị của điện trở được sử dụng. Phương trình cho đó là:

Điện áp đầu ra = Điện áp đầu vào * (R2 / (R1 + R2)) Trong đó R1 là giá trị của điện trở thứ nhất và R2 là giá trị của điện trở thứ hai.

Bây giờ điều này vẫn đặt ra câu hỏi “Nhưng LDR có những giá trị kháng cự nào?”, Một câu hỏi hay. Lượng ánh sáng xung quanh càng ít thì điện trở càng cao, nhiều ánh sáng xung quanh có nghĩa là điện trở càng thấp. Bây giờ đối với một LDR cụ thể, tôi đã sử dụng phạm vi kháng cự của chúng là từ 200 - 10 kilo ohms, nhưng điều này thay đổi đối với các loại khác nhau, vì vậy hãy đảm bảo tìm kiếm nơi bạn mua chúng và cố gắng tìm một biểu dữ liệu hoặc thứ gì đó tương tự. trường hợp R1 thực sự là LDR của chúng ta, vì vậy hãy quay lại phương trình đó và thực hiện một số phép toán-điện tử (phép thuật điện toán học). Bây giờ, trước tiên chúng ta cần chuyển đổi các giá trị kilo ohm đó thành ohms: 200 kilo-ohms = 200, 000 ohms 10 kilo-ohms = 10, 000 ohms Vì vậy, để tìm điện áp đầu ra là bao nhiêu khi chúng ta đang ở trong tình trạng tối đen như mực, chúng ta cắm các số sau: 5 * (10000 / (200000 + 10000)) Đầu vào là 5V vì đó là những gì chúng ta đang nhận được từ Arduino. Ở trên cho 0,24V (làm tròn). Bây giờ chúng ta tìm thấy điện áp đầu ra ở độ sáng tối đa bằng cách sử dụng các số sau: 5 * (10000 / (10000 + 10000)) Và điều này cho chúng ta 2,5V chính xác. Vì vậy, đây là các giá trị điện áp mà chúng ta sẽ đưa vào các chân analog của Arduino, nhưng đây không phải là các giá trị sẽ thấy trong chương trình, "Nhưng tại sao?" bạn có thể yêu cầu. Arduino sử dụng Chip tương tự thành kỹ thuật số chuyển đổi điện áp tương tự thành dữ liệu kỹ thuật số có thể sử dụng được. Không giống như các chân kỹ thuật số trên Arduino chỉ có thể đọc trạng thái CAO hoặc THẤP là 0 và 5V, các chân tương tự có thể đọc từ 0-5V và chuyển đổi điều này thành một dải số 0-1023.. chúng ta thực sự có thể tính toán những giá trị mà Arduino sẽ thực sự đọc.

Bởi vì đây sẽ là một hàm tuyến tính, chúng ta có thể sử dụng công thức sau: Y = mX + C Trong đó; Y = Giá trị kỹ thuật số ở đâu; m = độ dốc, (tăng / chạy), (giá trị số / giá trị tương tự) Ở đâu; Hệ số chặn C = Y Hệ số chặn Y bằng 0 nên cho ta: Y = mXm = 1023/5 = 204,6 Do đó: Giá trị số = 204,6 * Giá trị tương tự Vì vậy, trong màu đen tuyền, giá trị số sẽ là: 204,6 * 0,24 Cho ta xấp xỉ 49. Và ở độ sáng tối đa, nó sẽ là: 204,6 * 2,5 cho ra khoảng 511. Bây giờ với hai trong số này được thiết lập trên hai chân tương tự, chúng ta có thể tạo hai biến số nguyên để lưu trữ các giá trị của chúng và thực hiện các toán tử so sánh để xem biến nào có giá trị thấp nhất, quay robot theo hướng đó.