Mục lục:

THEO DÕI NGUỒN ÁNH SÁNG TỰ ĐỘNG VỚI ARDUINO UNO R3: 5 bước
THEO DÕI NGUỒN ÁNH SÁNG TỰ ĐỘNG VỚI ARDUINO UNO R3: 5 bước

Video: THEO DÕI NGUỒN ÁNH SÁNG TỰ ĐỘNG VỚI ARDUINO UNO R3: 5 bước

Video: THEO DÕI NGUỒN ÁNH SÁNG TỰ ĐỘNG VỚI ARDUINO UNO R3: 5 bước
Video: Arduino | Cảm biến ánh sáng dùng quang trở 2024, Tháng bảy
Anonim
THEO DÕI NGUỒN ÁNH SÁNG TỰ ĐỘNG VỚI ARDUINO UNO R3
THEO DÕI NGUỒN ÁNH SÁNG TỰ ĐỘNG VỚI ARDUINO UNO R3

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: Sơ đồ

Sơ đồ
Sơ đồ

Bước 4: 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 5: Mã

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

* 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: