Mục lục:

Theo dõi nguồn sáng tự động: 5 bước
Theo dõi nguồn sáng tự động: 5 bước

Video: Theo dõi nguồn sáng tự động: 5 bước

Video: Theo dõi nguồn sáng tự động: 5 bước
Video: Nên khởi động 1 phát ăn ngay hay kích hoạt hệ thống điện xong mới khởi động? | TIPCAR TV 2024, Tháng mười một
Anonim
Theo dõi nguồn sáng tự động
Theo dõi nguồn sáng tự động

Trong bài học này, chúng ta sẽ sử dụng một động cơ servo, một điện trở quang và một điện trở kéo xuống để lắp ráp một hệ thống nguồn sáng theo dõi tự động.

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

- Bo mạch Arduino Uno * 1

- Cáp USB * 1

- Động cơ servo * 1

- điện trở quang * 1

- Điện trở (10k) * 1

- Bảng mạch * 1

- Dây nhảy

Bước 2: Nguyên tắc

Động cơ servo và điện trở quang quét và tìm kiếm nguồn sáng ở 180 độ và ghi lại vị trí của nguồn sáng. Sau khi kết thúc quá trình quét, động cơ servo và điện trở quang dừng ở hướng của nguồn sáng.

Bước 3: Thủ tục:

Thủ tục
Thủ tục
Thủ tục
Thủ tục
Thủ tục
Thủ tục

Bước 1:

Xây dựng mạch.

Bước 2:

Tải xuống mã từ

Bước 3:

Tải bản phác thảo lên bảng Arduino Uno

Nhấp vào biểu tượng Tải lên để tải mã lên bảng điều khiển.

Nếu "Hoàn tất tải lên" xuất hiện ở cuối cửa sổ, điều đó có nghĩa là bản phác thảo đã được tải lên thành công.

Bây giờ, nếu bạn sử dụng đèn pin để chiếu vào điện trở quang, bạn sẽ thấy động cơ servo và điện trở quang quay, và cuối cùng dừng lại ở hướng của nguồn sáng.

Bước 4: Sơ đồ

Sơ đồ
Sơ đồ

Bước 5: Mã

Mã số
Mã số
Mã số
Mã số
Mã số
Mã số

/********************************************************************

* Tên:

Tự động theo dõi nguồn sáng

* hàm số

: nếu bạn sử dụng đèn pin để chiếu sáng điện trở quang, * Bạn sẽ thấy

động cơ servo và điện trở quang quay, * và cuối cùng

dừng theo hướng của nguồn sáng.

***********************************************************************

/ Email: [email protected]

// Trang web: www.primerobotics.in

#bao gồm

const int photocellPin = A0;

/************************************************/

Servo myservo; // tạo đối tượng servo để điều khiển servo

int outputValue = 0;

int angle = {0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160, 170, 180};

int maxVal = 0;

int maxPos = 0;

/*************************************************/

void setup ()

{

Serial.begin (9600);

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

}

/*************************************************/

void loop ()

{

for (int i = 0;

tôi <19; i ++)

{

myservo.write (angle ); // ghi góc vào servo

giá trị sản phẩm đầu ra

= analogRead (photocellPin); // đọc giá trị của A0

Serial.println (outputValue); // in ra

if (outputValue> maxVal) // nếu giá trị hiện tại của A0 lớn hơn trước đó

{

maxVal = outputValue; // ghi giá trị xuống

maxPos

= i; //

}

chậm trễ (200);

}

myservo.write (angle [maxPos]); // ghi góc tới servo mà A0 có giá trị lớn nhất

trong khi (1);

}

Đề xuất: