Friday, April 1, 2016

BÀI 3 : CHASER LED (P1)

Project 3 : Led sáng dần từ led 1 đến led 10 và ngược lại.
1.  Sơ đồ mạch.
chaser led arduino
- Code chương trình.
byte ledPin[] = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13};
int direction = 1;
int currentLED = 0;
void setup()
{
for (int x=0; x<10; x++)
{
pinMode(ledPin[x], OUTPUT);
}
 }
void loop() {
for (int x=0; x<10; x++)
{
digitalWrite(ledPin[x], LOW);
}
digitalWrite(ledPin[currentLED], HIGH);
currentLED += direction;
if (currentLED == 9)
{
direction = -1;
}
if (currentLED == 0)
{
direction = 1;
}
delay(500);
}
- Giải thích chương trình.
Trong Project này chúng  ta sử  dụng  10 chân digital để  điều  khiển 10 led,  để  cho
chương  trình ngắn gọn  thì  ở đây tôi sử dụng  mảng  1 chiều gồm  10 phần tử  trong đó chứa
10 vị trí chân led mà ta sử dụng trong project
byte ledPin[] = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13};
Tiếp tục khai báo 2 biến integer là :
int direction = 1;
int currentLED = 0;
Trong hàm setup() tôi sử dụng một vòng lặp  để định nghĩa mode cho các chân led.
Tôi nghĩ là không khó để hiểu được các câu lệnh này.
Tiếp theo là hàm loop(), đầu tiên tôi tắt tất cả các led bằng các câu lệnh:
for (int x=0; x<10; x++)
 {
digitalWrite(ledPin[x], LOW);
}
Sau đó cho sáng led đầu tiên bằng câu lệnh :
digitalWrite(ledPin[currentLED], HIGH);
Vì  ta  đã  khai báo  currentLED  = 0    nên mãng  sẽ  truy xuất  phần tử  đầu tiên  trong
mãng có giá trị là 4 vì thế led ở vị trí chân digital số 4 sẽ sáng.
currentLED += direction;
Tăng currentLED  lên 1 đơn vị ( direction =1 ). Vòng lặp tiếp theo sẽ là led ở chân
digital 5 sáng và cứ như thế cho đến led ở chân số 13 sáng, thì  lúc này currentLED == 9,
câu lệnh  “ if (currentLED == 9) {direction =  -1;}” sẽ thực  hiện  và led sẽ  sáng ngược lại
từ led 10 xuống led thứ 1.
Hai câu lệnh :
if (currentLED == 9)
 {
direction = -1;
}
if (currentLED == 0)
{
direction = 1;
}
dùng để quy định chiều sáng của led là tăng dần hay giảm dần. Nếu là Led thứ 10 sang thì
tiếp theo sẽ giảm xuống led thứ 9 và ngược lại nếu led thứ 0 sang thì chu kỳ tiếp theo led
1 sẽ sáng.

No comments:

Post a Comment