Làm việc với LED 3 màu
Mục đích
Bài viết này giúp các bạn có thể hiểu cấu tạo của LED ba màu và ứng dụng nó với Arduino
Mục đích
Bài viết này giúp các bạn có thể hiểu cấu tạo của LED ba màu và ứng dụng nó với Arduino
Yêu cầu phần cứng
- Mạch Arduino Uno hoặc loại khác
- Một LED ba màu đỏ, xanh lá cây và xanh da trời hay còn gọi là GRB
- 2 điện trở 50 ohm 1/4 W. Chúng làm nhiệm vụ giảm cường độ dòng điện để bảo vệ LED
- 1 điện trở 150 ohm 1/4 W. Giảm cường độ dòng điện để bảo vệ LED
- Bảng cắm mạch, dây nối
Trước khi vào làm mạch này chúng ta hãy tìm hiểu về loại LED này
Hình dưới đây là các chân của LED
Chân 1 màu đỏ
Chân 2 chung
Chân 3 màu xanh lá
Chân 4 màu xanh da trời
Hình dưới đây là các chân của LED
Chân 1 màu đỏ
Chân 2 chung
Chân 3 màu xanh lá
Chân 4 màu xanh da trời
Điện trở được lắp ở giữa chân xuất tín hiệu PWM và chân anode của LED (chân 2)
Code
Dưới đây là code làm việc với LED 3 màu, cùng khám phá nhé. Chúc các bạn thành công
Dưới đây là code làm việc với LED 3 màu, cùng khám phá nhé. Chúc các bạn thành công
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
/*
//Làm việc với LED 3 màu
int red = 11; // Định nghĩa các chân của LED
int green = 9;
int blue = 10;
int i = 0; // vòng lặp
int j = 0;
void setup()
{
pinMode(red, OUTPUT); // Cho Arduino biết những chân này là chân xuất dữ liệu
pinMode(green, OUTPUT);
pinMode(blue, OUTPUT);
}
void loop()
{
//
for (j = 1; j < 6; j++)
{ // 5 lần lặp lại
for (i = 0; i < 255; i++)
{ // vòng lặp từ 0 đến 254 LED mờ dần
analogWrite(red, i); // Ghi độ sáng của LED đỏ
delay(20); // Chờ 20ms
}
analogWrite(red,0);
delay (20);
for (i = 0; i < 255; i++)
{ // vòng lặp từ 0 đến 254 LED mờ dần
analogWrite(green, i); // Ghi độ sáng LED xanh
delay(20); // Chờ 20ms
}
delay (20);
analogWrite(green,0);
for (i = 0; i < 255; i++)
{ // vòng lặp từ 0 đến 254 LED mờ dần
analogWrite(blue, i); // Ghi độ sáng LED xanh da trời
delay(20); // Chờ 20ms
}
delay (20);
analogWrite(blue,0);
}
// psychadelic time
for (j = 1; j < 10000; j++)
{
analogWrite(red,random(255)); // Đọc giá trị LED đỏ ngẫu nhiên từ 0 đến 254
delay (random(10,31)); // Thời gian chờ ngẫu nhiên từ 10-30ms
analogWrite(green,random(255));
delay (random(10,31));
analogWrite(blue,random(255));
delay (random(10,31));
}
}
|
0 comments:
Post a Comment