Используется для представления кодов символов ASCII, например, A имеет код 65. Отрицательные значения обычно не используются
byte
1
0…255
Часто используется как элементарная единица данных при обмене через последовательные интерфейсы. Подробнее об этом рассказывается в главе 9
int
2
–32 768…+32 767
Целые 16-битные значения со знаком
unsigned int
2
0…65 535
Используется для увеличения точности в расчетах, где не используются отрицательные числа. Применяйте с осторожностью, так как при использовании в выражениях совместно со значениями типа int могут получаться неожиданные результаты
long
4
–2 147 483 648…+ 2 147 483 647
Требуется только для представления очень больших чисел
unsigned long
4
0…4 294 967 295
См. описание типа unsigned int
float
4
–3,4028235E+38…+3,4028235E+38
Используется для представления вещественных чисел
double
4
Как для типа float
Этот тип должен был бы занимать 8 байт и иметь более широкий диапазон и более высокую точность по сравнению с типом float. Но в Arduino тип double является полным аналогом типа float
Команды 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 мс
attachInterrupt
attachInterrupt(1, myFunction, RISING);
Устанавливает функцию myFunction, как обработчик положительного фронта прерывания 1 (контакт D3 в UNO)
detachInterrupt
detachInterrupt(1);
Запрещает обработку сигналов от прерывания 1
Полный перечень всех команд Arduino вы найдете в официальной документации на сайте Arduino: http://arduino.cc6.
В заключение
Из-за ограниченного объема книги в этой главе было дано очень краткое введение в мир Arduino. Более подробную информацию об основах вы найдете на многочисленных онлайн-ресурсах, включая бесплатные руководства по Arduino на сайте http://www.learn.adafruit.com.
В следующей главе мы заглянем под капот Arduino и посмотрим, как действует эта плата и что происходит у нее внутри, используя для этого удобную среду программирования Arduino.
2
3 Существует замечательный сайт об Arduino на русском языке: http://arduino.ru/. —
4 В новых версиях Arduino IDE этот пункт называется Arduino/Genuino Uno. —
5 В русифицированной версии формат сообщений не всегда совпадает с форматом англоязычных сообщений. —
6 Аналогичный справочник с описанием команд на русском языке можно найти по адресу http://arduino.ru/Reference. —
2. Под капотом