Loading...
Vietnam Geography App
Loading...
Vietnam Geography App
Khám phá thế giới điều khiển LED! Học cách tạo hiệu ứng ánh sáng đẹp mắt, điều khiển nhiều LED cùng lúc, và hiểu sâu về digital outputs. Từ LED đơn giản đến RGB và matrix LED.
Linh kiện phát sáng khi có dòng điện đi qua
Xuất tín hiệu số HIGH (5V) hoặc LOW (0V)
Ứng dụng: Điều khiển LED, relay, motor, buzzer
Hạn chế dòng điện để bảo vệ LED
Mạch LED đơn giản nhất
void setup() { pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000); }
Điều khiển nhiều LED độc lập
int ledPins[] = {2, 3, 4, 5, 6}; int numLeds = 5; void setup() { for(int i = 0; i < numLeds; i++) { pinMode(ledPins[i], OUTPUT); } } void loop() { // Chạy LED tuần tự for(int i = 0; i < numLeds; i++) { digitalWrite(ledPins[i], HIGH); delay(200); digitalWrite(ledPins[i], LOW); } }
Hiển thị patterns với nhiều LED
// 7-segment display với shift register int dataPin = 8; int clockPin = 12; int latchPin = 11; byte numbers[] = { 0b11111100, // 0 0b01100000, // 1 0b11011010, // 2 // ... thêm patterns }; void displayNumber(int num) { digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, MSBFIRST, numbers[num]); digitalWrite(latchPin, HIGH); }
LED nhấp nháy đơn giản
void loop() { digitalWrite(ledPin, HIGH); delay(500); digitalWrite(ledPin, LOW); delay(500); }
LED mờ dần sáng dần (PWM)
void loop() { for(int brightness = 0; brightness <= 255; brightness++) { analogWrite(ledPin, brightness); delay(10); } for(int brightness = 255; brightness >= 0; brightness--) { analogWrite(ledPin, brightness); delay(10); } }
LED chạy tuần tự (knight rider)
void loop() { // Chạy từ trái qua phải for(int i = 0; i < numLeds; i++) { digitalWrite(ledPins[i], HIGH); delay(100); digitalWrite(ledPins[i], LOW); } // Chạy từ phải qua trái for(int i = numLeds-1; i >= 0; i--) { digitalWrite(ledPins[i], HIGH); delay(100); digitalWrite(ledPins[i], LOW); } }
Đổi màu RGB LED
int redPin = 9, greenPin = 10, bluePin = 11; void setColor(int red, int green, int blue) { analogWrite(redPin, red); analogWrite(greenPin, green); analogWrite(bluePin, blue); } void loop() { // Red to Green for(int i = 0; i < 255; i++) { setColor(255-i, i, 0); delay(10); } // Green to Blue for(int i = 0; i < 255; i++) { setColor(0, 255-i, i); delay(10); } // Blue to Red for(int i = 0; i < 255; i++) { setColor(i, 0, 255-i); delay(10); } }
Tạo pattern LED tuần tự với 5 LED
int ledPins[] = {2, 3, 4, 5, 6}; int numLeds = 5; void setup() { for(int i = 0; i < numLeds; i++) { pinMode(ledPins[i], OUTPUT); } } void loop() { // Knight Rider effect for(int i = 0; i < numLeds; i++) { digitalWrite(ledPins[i], HIGH); delay(100); digitalWrite(ledPins[i], LOW); } for(int i = numLeds-2; i > 0; i--) { digitalWrite(ledPins[i], HIGH); delay(100); digitalWrite(ledPins[i], LOW); } }
LED chạy qua lại như trong Knight Rider
Tạo đèn tâm trạng đổi màu tự động
int redPin = 9, greenPin = 10, bluePin = 11; void setColor(int r, int g, int b) { analogWrite(redPin, r); analogWrite(greenPin, g); analogWrite(bluePin, b); } void fadeColor(int fromR, int fromG, int fromB, int toR, int toG, int toB, int steps) { for(int i = 0; i <= steps; i++) { int r = fromR + (toR - fromR) * i / steps; int g = fromG + (toG - fromG) * i / steps; int b = fromB + (toB - fromB) * i / steps; setColor(r, g, b); delay(50); } } void loop() { fadeColor(255, 0, 0, 0, 255, 0, 50); // Red to Green fadeColor(0, 255, 0, 0, 0, 255, 50); // Green to Blue fadeColor(0, 0, 255, 255, 0, 0, 50); // Blue to Red }
RGB LED chuyển màu mượt mà giữa các màu chính