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); }