2.4. Программирование цифровых выводов
По умолчанию все внешние контакты Arduino сконфигурированы как входы. Если необходимо использовать контакт Arduino как выход, нужно его переконфигурировать, подав соответствующую команду микроконтроллеру.
Каждая программа для Arduino должна включать две обязательные функции:
setup() И loop().
В главе 1 уже упоминалось, что функция setup() запускается один раз в начале программы, а loop() работает как цикл. Поскольку каждый контакт обычно конфигурируется в программе один раз, логично делать это в теле функции setup().
Для начала напишем простую программу, которая при запуске сконфигурирует контакт 9 как выход. В программе будут еще две функции: pinMode() - для конфигурации контакта и digitalWrite() - для установки значения HIGH (5 В) на этом контакте (листинг 2.1 ).
Листинг 2.1. Пример конфигурации
const int LED=9; // Константа - номер контакта светодиода
void setup()
{
pinMode (LED, OUTPUT); // Конфигурируем контакт светодиода как выход
digitalWrite(LED, HIGH); // Устанавливаем значение HIGH на выходе
}
void loop()
{
// В цикле ничего не выполняем
}
Соберите схему, как показано на рис. 2.2, и загрузите код листинга 2.1 в плату Arduino. Обратите внимание, что в этой программе я использовал оператор ини
- 48 -
циализации константы перед определением значения контакта Arduino. Обычно для хранения значений, которые могут изменяться во время выполнения программы, предназначены переменные. Поставив оператор const до объявления переменной, вы говорите компилятору, что это переменная "только для чтения" и она не будет изменяться во время выполнения программы. Всем экземплярам переменной LED в программе будет присвоено значение 9. В виде констант рекомендуется определять значения, которые не будут меняться при выполнении программы. Далее в некоторых примерах этой главы встретится иная ситуация: значения, которые могут изменяться при выполнении программы.
При объявлении любой переменной необходимо указать ее тип. В нашем случае это целое число (номера контактов всегда будут целыми числами).
Теперь попробуйте изменить программу из главы 1, добавив функцию digitalWrite() и введя задержку в цикле loop(). Экспериментируя со значениями задержки, можно создавать различные эффекты мигания.