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

Если посмотреть на код из предыдущего урока, то можно увидеть, что две секции кода повторяют друг друга:
digitalWrite(led1Pin, HIGH); // включть светодиод 1 digitalWrite(led2Pin, LOW); // выключить светодиод 2 delay(1000); // подождать 1 секунду digitalWrite(led1Pin, LOW); // выключить светодиод 1 digitalWrite(led2Pin, HIGH); // включить саетодиод 2 delay(1000); // подождать 1 секунду
Теперь мы будем использовать одну функцию для их замены, чтобы упростить код.
int led1Pin = 4;
int led2Pin = 5;
void setup() {
// Переводим пины в режим выходов
pinMode(led1Pin, OUTPUT);
pinMode(led2Pin, OUTPUT);
}
void loop() {
setLed(HIGH, LOW); // включить LED1, выключить LED2
setLed(LOW, HIGH); // выключить LED1, включить LED2
}
void setLed(int led1, int led2) {
digitalWrite(led1Pin, led1);
digitalWrite(led2Pin, led2);
delay(1000);
}
Для управления двумя светодиодами мы написали одну функцию setLed(int led1, int led2), с параметрами led1 и led2.
void setLed(int led1, int led2) {
digitalWrite(led1Pin, led1);
digitalWrite(led2Pin, led2);
delay(1000);
}
Когда мы вызываем функцию для управления светодиодами, то передаём параметры их состояния, как это показано ниже:
setLed(HIGH, LOW); // включить LED1, выключить LED2 setLed(LOW, HIGH); // выключить LED1, включить LED2
Осталось скомпилировать и загрузить скетч в контроллер. После этого вы сможете наблюдать результат работы кода.
В прошлом примере мы использовали одну функцию с двумя параметрами для управления светодиодами. Так как светодиоды мигают попеременно, то попробуем написать функцию с одним параметром.
int led1Pin = 4;
int led2Pin = 5;
void setup() {
// Переводим пины в режим выходов
pinMode(led1Pin, OUTPUT);
pinMode(led2Pin, OUTPUT);
}
void loop() {
setLed1(HIGH);
setLed1(LOW);
}
void setLed1(int led1) {
digitalWrite(led1Pin, led1);
if (led1 == HIGH) {
digitalWrite(led2Pin, LOW);
} else {
digitalWrite(led2Pin, HIGH);
}
delay(1000);
}
Здесь мы переписали функцию так, чтобы нам нужно было устанавливать только состояние первого светодиода LED1, а состояние второго светодиода LED2 будет меняться автоматически.
Скомпилируйте и загрузите скетч в микроконтроллер, чтобы посмотреть результат работы.