Trong project LED, ta sẽ thay đổi độ sáng đèn LED bằng điện trở có giá trị khác nhau và sử dụng xung PWM
(1) x Arduino Uno R3
(1) x 5mm red LED
(1) x 220 ohm
(1) x 1k ohm
(1) x 10k ohm
(3) x dây cắm đực - đực
(1) x breadboard MB-102
Breadboard là 1 dụng cụ giúp kết nối các linh kiện điện tử lại với nhau thông qua các lỗ cắm.
LED là loại đèn dùng ít điện năng và độ bền cao. Ở đây, ta sẽ sử dụng đèn LED 5mm (cũng có thể dùng LED đường kính 3mm hoặc 10mm).
Bạn không thể kết nối trực tiếp đèn LED với pin hoặc nguồn điện áp vì :
1) Đèn LED có cực dương và cực âm và sẽ không sáng nếu nối sai cực.
2) Đèn LED phải được sử dụng với điện trở để hạn chế dòng điện chạy qua nó; nếu không, nó sẽ cháy gần như ngay lập tức.
Có hai cách để biết đâu là cực dương, cực âm của đèn LED:
1) Phân biệt theo chiều dài của chân LED: Chân ngắn- cực âm, chân dài- cực dương
2) Nhìn vào phần bóng LED, đầu nhỏ là Dương , đầu to là Âm .
Điện trở có tác dụng cản trở dòng điện. Trong bài này, ta dự định dùng điện trở để giảm dòng điện qua LED từ đó làm giảm độ sáng của đèn LED
Đơn vị điện trở là Ohm, kí hiệu Ω ( 1kΩ = 1000Ω, 1MΩ = 1.000.000Ω).
Không giống như LED, điện trở không phân biệt cực âm hay dương.
Giá trị điện trở có thể được xác định:
1) Dựa vào các vòng tròn màu trên thân điện trở
2) Đo bằng đồng hồ vạn năng
PWM (Pulse Width Modulation - điều chế độ rộng xung) là một công nghệ giúp các tín hiệu số cho ra kết quả gần giống như tín hiệu tương tự. Tín hiệu điều khiển số tạo ra bởi các xung (pulse), đó là sự lặp lại của việc thay đổi điện áp giữa mức LOW(0V) và mức HIGH(5V). Yếu tố đặc trưng của PWM là chu kì và độ rộng xung.
Ví dụ, với 1 bóng LED, trong 1 chu kì sáng, nếu thời gian ở mức HIGH dài hơn thời gian mức LOW thì đèn LED sẽ sáng mạnh, thời gian mức HIGH thấp hơn thời gian mức LOW thì đèn sẽ sáng thấp hơn. Lợi dụng tính tăng này ta có thể thay đổi thời gian mức HIGH và mức LOW để điều chỉnh cường độ sáng của bóng LED. Tỉ số giữa thời gian của mức HIGH và mức LOW được gọi là Duty cycle.
Trong code Arduino, ta sử dụng hàm analogWrite() để tạo xung PWM có Duty cycle khác nhau.
Arduino UNO có nguồn 5V để cấp cho LED và điện trở, ta chỉ cần cấp nguồn cho Arduino qua cáp USB. Độ sáng của LED sẽ thay đổi khi ta thay điện trở khác nhau:
1) Điện trở 220Ω: đèn LED rất sáng
2) Điện trở 1kΩ (hoặc 5x220Ω nối tiếp): đèn LED khá sáng
3) Điện trở 2,2kΩ (hoặc 10x220Ω nối tiếp): đèn LED sáng mờ hơn
Ta có thể thay đổi thứ tự của đèn LED, điện trở kết nối vào nguồn điện mà không làm thay đổi kết quả trên.
LED(-) nối với GND, LED(+) nối qua điện trở 220Ω đến pin 3 của Arduino (hoặc pin có ~)
Sử dụng hàm analogWrite() để thay đổi Duty cycle của xung PWM
Duty cycle tăng từ 0 đến 255, đèn LED sáng dần
Duty cycle giảm từ 255 về 0, đèn LED tắt dần
Lặp lại bước 2, 3
Trong hàm setup(), khai báo ledPin = 3 là pin output để tạo xung PWM
Sử dụng hàm analogWrite() nhằm set giá trị cường độ sáng cho ledPin.
Vòng lặp for thứ nhất, LED sẽ sáng dần đến giá trị 255. Giá trị từ 0 đến 255 tương ứng với Duty cycle từ 0% đến 100%.
Vòng lặp for thứ hai, LED tắt dần khi đến giá trị 0
Trong hàm loop(), quá trình sáng, tắt dần được lặp đi lặp lại