Выбрать главу

Команды Arduino

В библиотеке Arduino доступно большое число команд. В табл. 1.2 перечислены наиболее часто используемые из них вместе с примерами.

Таблица 1.2. Функции из библиотеки Arduino

Команда Пример Описание
Цифровой ввод/вывод
pinMode pinMode(8, OUTPUT); Переводит контакт 8 в режим работы цифрового выхода. Поддерживаются также режимы INPUT и INPUT_PULLUP
digitalWrite digitalWrite(8, HIGH); Устанавливает высокий уровень напряжения на контакте 8. Чтобы установить низкий уровень напряжения, используйте константу LOW вместо HIGH
digitalRead int i; i = digitalRead(8); Присваивает переменной i значение HIGH или LOW в зависимости от уровня напряжения на указанном контакте (в данном случае — на контакте 8)
pulseIn i = pulseIn(8, HIGH); Возвращает продолжительность в микросекундах следующего импульса с напряжением HIGH на контакте 8
tone tone(8, 440, 1000); Генерирует на контакте 8 серию импульсов с частотой 440 Гц продолжительностью 1000 мс
noTone noTone(); Прерывает любые серии импульсов, запущенные вызовом tone
Аналоговый ввод/вывод
analogRead int r; r = analogRead(0); Присваивает переменной r значение в диапазоне от 0 до 1023. Значение 0 соответствует напряжению 0 В на контакте 0, а значение 1023 — напряжению 5 В (или 3,3 В, если для питания платы используется напряжение 3,3 В)
analogWrite analogWrite(9, 127); Выводит широтно-импульсный сигнал. Протяженность положительного импульса может изменяться в диапазоне от 0 до 255, где число 255 соответствует 100%. Этой функции можно передавать номера контактов, обозначенных на плате как PWM (контакты 3, 5, 6, 9, 10 и 11)
Команды для работы со временем
millis unsigned long l; l = millis(); Переменные типа long в Arduino хранят 32-битные значения. Значение, возвращаемое функцией millis(), — это число миллисекунд, прошедших с момента последнего сброса платы. Примерно через 50 дней значение обнуляется и счет начинается заново
micros long l; l = micros(); Действует подобно millis, но возвращает число микросекунд, прошедших с момента последнего сброса платы. Значение обнуляется примерно через 70 минут
delay delay(1000); Приостанавливает работу скетча на 1000 мс, или на 1 с
delayMicroseconds delayMicroseconds(10000) Приостанавливает работу скетча на 10 000 мкс. Обратите внимание: минимальная задержка составляет 3 мкс, максимальная — около 16 мс
Прерывания (глава 3)
attachInterrupt attachInterrupt(1, myFunction, RISING); Устанавливает функцию myFunction, как обработчик положительного фронта прерывания 1 (контакт D3 в UNO)
detachInterrupt detachInterrupt(1); Запрещает обработку сигналов от прерывания 1