Wednesday, February 11, 2015

Thiết kế đèn ngủ tự động tắt mở với cảm biến ánh sang- quang trở (Photoresistor)

Hôm nay tôi sẽ hướng dẫn các bạn điều khiển đèn ngủ với cảm biến ánh sáng sử dụng Arduino!

Chắc hẳn nhà các bạn đều sử dụng cái đèn ngủ tự động bật - tắt, buổi tối thì tự động sáng lên và buổi sáng thì tự động tắt đi.

Có nhiều cách để làm các mạch điều khiển bóng đèn tự động tắt mở như này, trong chuyên mục Cùng chơi-Sáng tạo cùng Arduino, Tôi xin giới thiệu đến các bạn cách sử dụng Cảm biến ánh sang để thiết kể đèn tự động tắt mở.

Trước khi đi vào bài học chúng ta hãy tìm hiểu sơ lược về cảm biến ánh sáng hay quang trở (các bạn có thể theo link sau để lấy tài liệu về quang trở (:

Quang trở (Light Dependent Resistors) Điện trở phụ thuộc vào ánh sáng: là một loại cảm biến ánh sáng đơn giản, nguyên tắc hoạt động dựa vào hiện tượng quang điện trong.
Nguyên lý làm việc của quang điện trở là khi ánh sáng chiếu vào chất bán dẫn (có thể là Cadmium sulfide – CdS, Cadmium selenide – CdSe) làm phát sinh các điện tử tự do, tức sự dẫn điện tăng lên và làm giảm điện trở của chất bán dẫn. Các đặc tính điện và độ nhạy của quang điện trở tùy thuộc vào vật liệu chế tạo.
Khi ánh sáng kích thích chiếu vào LDR thì nội trở của LDR sẽ giảm xuống , tiến về 0 ôm( mạch kín).
Nhưng khi ánh sáng kích thích ngừng thì nội trở tăng đến vô cùng(hở mạch).
Ứng dụng trong mạch điện : Chuyển mạch (switch sytems).
Trên đây là hình ảnh mô phỏng hoạt động của LDR khi chiếu ánh sáng vào quang trở.

Bây giờ các bạn đã hiểu cơ bản về cảm biến ánh sáng (quang trở)
Chúng ta hãy cùng đi vào lập trình Arduino với cảm biến ánh sáng để điều khiển tắt mở đèn, sau này khi hiểu về cảm biến ánh sáng các bạn ứng dụng để làm đèn ngủ tự động tắt mở với một bộ điều khiển đơn giản như: sử đụng transistor, hay ic để điều khiển.

Để thực hiện bài học này chúng ta cần:
1. Arduino board
2. Quang trở
3. Bảng cắm
4. Dây cắm
5. Điện trở

Sơ đồ ráp mạch

Code
int potpin=0; //Định nghĩa chân quang trở chân 0
int ledpin=11;//Chân Led chân 11
int val=0;// giá trị ban đầu
void setup()
{
pinMode(ledpin,OUTPUT);//Định nghĩa chân xuất tín hiệu
Serial.begin(9600);
}
void loop()
{
val=analogRead(potpin);
Serial.println(val);
analogWrite(ledpin,val);
delay(10); 
}

Chúc các bạn thành công

1 comments:

  1. A ơi cho em hỏi phần mêm a đang sử dụng mô phỏng là Fritzing đúng không ak?
    Phần mềm này có nạp được file .HEX vào như phần mềm mô phỏng Proteus không ak?
    Nếu có thì a hướng dẫn em nhé
    Em cảm ơn ak

    ReplyDelete