Menu
CoddyTech

Цикл цветов радуги

Часть раздела Выходные сигналы путешествия по Arduino на Coddy. Урок 8 из 24.

Для каждого цвета нужны три строки digitalWrite(). Для последовательности из шести цветов понадобилось бы 18 таких строк, и легко перепутать, какая строка за что отвечает.

Функция делает код короче. setColor() принимает по одному значению для каждого цвета и задаёт значения на всех трёх выводах:

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

Теперь для каждого цвета нужна одна строка, а три значения в ней читаются как рецепт:

setColor(HIGH, HIGH, LOW);  // жёлтый
delay(500);

HIGH и LOW — это числа 1 и 0, поэтому они подходят для параметра int. Передавай параметры в том же порядке, в каком они указаны: red, green, blue.

challenge icon

Задание

Легко

Напиши setColor() и используй её, чтобы показывать радугу, задерживаясь на каждом цвете на полсекунды, снова и снова:

  1. красный
  2. жёлтый
  3. зелёный
  4. голубой
  5. синий
  6. пурпурный

Нажми Запустить, затем Проверить.

Попробуйте сами

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) {
  // запишите каждое значение на соответствующий вывод
}

void loop() {
  setColor(HIGH, LOW, LOW);  // красный
  delay(500);
  // затем жёлтый, зелёный, голубой, синий и пурпурный
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Выходные сигналы

Потренируйтесь самостоятельно: Песочница Arduino