Если посмотреть на код из предыдущего урока, то можно увидеть, что две секции кода повторяют друг друга:
Если посмотреть на код из предыдущего урока, то можно увидеть, что две секции кода повторяют друг друга:
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 будет меняться автоматически.
Скомпилируйте и загрузите скетч в микроконтроллер, чтобы посмотреть результат работы.