Menu
CoddyTech

Chu trình màu cầu vồng

Thuộc phần Đầu ra trong hành trình Arduino của Coddy. Bài học 8 trên 24.

Mỗi màu cần ba dòng digitalWrite(). Một chuỗi gồm sáu màu sẽ cần 18 dòng như vậy, và bạn rất dễ nhầm lẫn dòng nào ứng với màu nào.

Hàm (function) giúp đoạn code ngắn gọn hơn. setColor() nhận một giá trị cho mỗi màu và ghi giá trị vào cả ba chân:

void setColor(int red, int green, int blue) {
  digitalWrite(redPin, red);
  digitalWrite(greenPin, green);
  digitalWrite(bluePin, blue);
}

Giờ đây, mỗi màu chỉ cần một dòng, và ba giá trị được viết theo thứ tự như một công thức:

setColor(HIGH, HIGH, LOW);  // màu vàng
delay(500);

HIGH và LOW lần lượt là các số 1 và 0, nên chúng phù hợp với tham số int. Giữ nguyên thứ tự các tham số khi truyền vào: đỏ, xanh lá, xanh dương.

challenge icon

Thử thách

Dễ

Viết setColor() và dùng hàm này để hiển thị cầu vồng, mỗi màu trong nửa giây, lặp đi lặp lại:

  1. đỏ
  2. vàng
  3. xanh lá
  4. xanh lơ
  5. xanh dương
  6. đỏ tía

Nhấn Chạy, rồi nhấn Kiểm tra.

Tự làm thử

const int redPin = 11;
const int greenPin = 10;
const int bluePin = 9;

void setup() {
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);
}

void setColor(int red, int green, int blue) {
  // Ghi từng giá trị vào chân tương ứng
}

void loop() {
  setColor(HIGH, LOW, LOW);  // đỏ
  delay(500);
  // sau đó là vàng, xanh lá, xanh lơ, xanh dương và đỏ tía
}
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Đầu ra

Tự luyện tập: Playground Arduino