Цикл цветов радуги
Часть раздела Выходные сигналы путешествия по 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.
Задание
ЛегкоНапиши setColor() и используй её, чтобы показывать радугу, задерживаясь на каждом цвете на полсекунды, снова и снова:
- красный
- жёлтый
- зелёный
- голубой
- синий
- пурпурный
Нажми Запустить, затем Проверить.
Попробуйте сами
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);
// затем жёлтый, зелёный, голубой, синий и пурпурный
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Выходные сигналы
Потренируйтесь самостоятельно: Песочница Arduino