Программируем Arduino. Профессиональная работа со скетчами. - страница 13
• Xbee — для реализации беспроводных взаимодействий;
• GFX — графическая библиотека для работы с разными дисплеями, выпускаемыми компанией Adafruit;
• Capacitive Sensing — для работы с емкостными датчиками;
• FFT — библиотека частотного анализа.
Новые библиотеки появляются постоянно, и их можно найти на официальном сайте Arduino (http://arduino.cc/en/Reference/Libraries) или с помощью поисковых систем.
Если вам понадобится использовать одну из сторонних библиотек, ее нужно установить, загрузив и сохранив в папку Libraries, находящуюся в папке Arduino (в папке Documents (Документы)). Обратите внимание на то, что в случае отсутствия папки Libraries ее сначала нужно создать и только потом добавлять в нее библиотеки.
Чтобы среда разработки Arduino IDE обнаружила вновь установленную библиотеку, ее нужно перезапустить.
Типы данных в Arduino
Для переменных типа int в Arduino C отводится 2 байта памяти. Если только скетч не предъявляет особых требований к экономии памяти, значения int используются практически для любых видов информации, даже для логических значений и маленьких целых чисел, которые можно было бы хранить в однобайтовом значении.
Полный список доступных типов данных приводится в табл. 1.1.
Таблица 1.1. Типы данных в Arduino C
Тип | Занимаемая память, байт | Диапазон значений | Примечания |
---|---|---|---|
boolean | 1 | true или false (1 или 0) | Используется для представления логических значений |
char | 1 | –128…+128 | Используется для представления кодов символов 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 |