Search…

Project 2 - Auto Turn On/Off Led

25/07/20204 min read
Hướng dẫn điều khiển đèn led tự động bật - tắt với cảm biến ánh sáng và Arduino.

Các loại đèn trong nhà có chức năng tự bật khi trời tối và tự tắt khi có ánh sáng sử dụng quang trở để hiện thực. Với cấu tạo đơn giản của quang trở, bài viết này giúp bạn biết thêm những kiến thức về điện tử.

Kiến thức về quang trở

Quang trở là linh kiện điện tử rất hay gặp trong những mạch có sử dụng cảm biến ánh sáng. Quang trở như một loại điện trở, đơn vị là (Ohm), thay đổi theo cường độ ánh sáng.

Nếu môi trường thiếu sáng, ánh sáng mờ hoặc tối, điện trở của "quang trở" sẽ tăng cao, và ngược lại ánh sáng càng nhiều thì điện trở sẽ giảm. Với nguyên lý đó, ta có thể xây dựng ứng dụng đèn led, khi có ánh sáng, đèn led sẽ tắt; khi tối, đèn led sẽ sáng lên. Các bạn có thể trang bị thêm kiến thức về "điện trở" trong bài viết Điện Trở - Resisitor.

Quang trở
Quang trở

Xung PWM (Pulse Width Modulation)

Xung bao gồm các trạng thái (HIGH/LOW) của mức điện áp, bao gồm tần số (frequency) và chu kì xung (duty cycle) nhằm xác định trạng thái dao động. Chức năng của xung PWM có thể điều khiển động cơ, thay đổi độ sáng tối của đèn led, ... tham khảo chi tiết hơn về xung PWM tại Điều Chế Độ Rộng Xung PWM.

Chuẩn bị

  • Arduino Uno.
  • Breadboard.
  • Dây cắm breadboard.
  • Đèn led.
  • Quang trở.
  • Điện trở.

Sử dụng hàm

Serial: đối tượng chứa các hàm giao tiếp giữa các mạch Arduino, có thể hiểu Serial được dùng trong việc giao tiếp giữa các board mạch với nhau (hoặc board mạch với máy tính hoặc với các thiết bị khác.

Lưu ý, nếu bạn đang sử dụng các hàm của thư viện Serial, không thể sử dụng chân digital 0 và digital 1, và tất nhiên chân digital 0 và digital 1 lúc này sẽ có dòng điện. Để mở bảng COM3 giao tiếp với máy tính, bạn ấn tổ hợp phím CTRL + SHIFT + M.

  • Serial.begin(9600): cổng giao tiếp với máy tính, có các tốc độ truyền sau: 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, hoặc 115200
Serial port

Analog:

  • analogRead(): đọc giá trị điện áp từ một chân Analog (ADC). Trên mạch Arduino UNO có 6 chân Analog In, được kí hiệu từ A0 đến A5. Trên các Arduino có những chân tương tự, với ký tự "A" đầu tiên, sau đó là số hiệu của chân. Cú pháp : analogRead(chân đọc điện áp).
  • analogWrite(): lệnh xuất ra từ một chân trên mạch như một mức tín hiệu analog - xung PWM. Hàm thường sử dụng để điều khiển mức sáng tối của đèn led, hoặc động cơ bằng cách phát xung PWM. Giá trị mức xung PWM nằm trong khoảng từ 0 đến 255.

Sơ đồ lắp đặt

Sơ đồ mạch Arduino và quang trở
Sơ đồ lắp mạch

Cài đặt

Bước 1: Khai báo

  • Analog = 0: Định nghĩa chân quang trở chân A0.
  • Led = 11: Chân led chân 11.
  • value = 0: Giá trị ban đầu.
int Analog = 0; 
int Led = 11;
int value = 0;

Bước 2: Khai báo giá trị của biến trong hàm setup(), mở cổng 9600

  • pinMode: định nghĩa chân xuất tín hiệu
  • Serial.begin(9600);
void setup()
{
  pinMode(Led, OUTPUT);
  Serial.begin(9600);
}

Bước 3: Gồm các bước

  • Gán giá trị nhận được từ hàm analogRead vào value.
  • In ra giá trị tại cổng giao tiếp COM3 (ấn tổ hợp phím CTRL + SHIFT + M) giá trị của value.
  • Xuất giá trị xung PWM với 2 giá trị: chân đèn led và value nhận được.
  • Dừng chương trình trong 10ms.
void loop()
{
  value = analogRead(Analog);
  Serial.println(value);
  analogWrite(Led, value);
  delay(10); 
}

Code đầy đủ

void setup()
{
pinMode(Led, OUTPUT);
Serial.begin(9600);
}

void loop()
{
value = analogRead(Analog);
Serial.println(value);
analogWrite(Led, value);
delay(10);
}

Kết quả

Sau khi nối mạch và nạp code như trên, ta thực hiện bước cuối cùng, xem value vừa nhận được tại màn hình COM3 bằng cách ấn tổ hợp phím CTRL + SHIFT + M. Nhận thấy sự thay đổi value do ảnh hưởng của ánh sáng trong môi trường, ánh sáng càng nhiều value càng giảm, và ngược lại, ánh sáng càng ít thì value càng cao.

Kết quả
IO Stream

IO Stream Co., Ltd

30 Trinh Dinh Thao, Hoa Thanh ward, Tan Phu district, Ho Chi Minh city, Vietnam
+84 28 22 00 11 12
developer@iostream.co

383/1 Quang Trung, ward 10, Go Vap district, Ho Chi Minh city
Business license number: 0311563559 issued by the Department of Planning and Investment of Ho Chi Minh City on February 23, 2012

©IO Stream, 2013 - 2024