Trong bài này ta sử dụng hàm điều khiển chân IC để bật tắt LED. Đồng thời thời gian sáng tắt được điều chỉnh bằng độ rộng xung cấp ra.


- Dùng 1 LED và 1 điện trở:
- Nhận biết LED: có 1 chân dài là dương (+) và 1 chân ngắn là âm (-); dòng điện chạy từ (+) sang (-)
- Trở có giá trị khoảng 220 Ohm, có thể tính theo công thức R = U/I với U là điện áp nguồn trừ điện áp LED ( U = 5V – 2V = 3V). Và dòng I qua LED khoảng 15mA.
- Phân tích chương trình:
Hàm analogWrite() được dùng để điều khiển cấp tín hiệu ra chân IC. Sử dụng 8 bit nên xung PWM có giá trị từ 0 đến 255 tương ứng với mức điện áp cấp ra chân IC. Như vậy, đèn LED sẽ sáng tối dựa vào giá trị PWM nhận được.
- Ngoài ra, biểu thức điều kiện if…else đã được sử dụng.
if ( điều kiện) { hành động}
nếu điều kiện được thỏa mãn thì thực hiện hành động (đặt trong { }).
/*
Fade
Chỉnh sáng tối đèn LED nối vào chân số 9 sử dụng hàm
analogWrite().
Hàm analogWrite() dùng tham số PWM, nếu ta muốn gắn LED
lên chân khác thì phải chú ý nó có hỗ trợ PWM. Trên các bo
Arduino, chân PWM được đánh dấu với ký hiệu "~"
ví dụ như ~3, ~5, ~6, ~9, ~10 and ~11.
This example code is in the public domain.
*/
int led = 9; // khai báo chân sử dụng
int brightness = 0; // khai báo độ sáng
int fadeAmount = 5; // khai báo mức thay đổi độ sáng
// sau khi cấp nguồn thì hàm setup() chạy 1 lần duy nhất:
void setup() {
// khai báo chân 9 là lối ra
pinMode(led, OUTPUT);
}
// vòng lặp thực hiện các đoạn mã tuần tự là lặp lại:
void loop() {
// đặt độ sáng ban đầu:
analogWrite(led, brightness);
// thay đổi độ sáng sau từng vòng lặp:
brightness = brightness + fadeAmount;
// đảo chiều độ sáng khi hết vòng tối --> sáng và sáng --> tối
if (brightness <= 0 || brightness >= 255) {
fadeAmount = -fadeAmount;
}
//chờ 30 milliseconds để quan sát
delay(30);
}
