Программируем Arduino. Основы работы со скетчами - Монк Саймон Страница 8

Тут можно читать бесплатно Программируем Arduino. Основы работы со скетчами - Монк Саймон. Жанр: Компьютеры и Интернет / Программирование. Так же Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте Knigogid (Книгогид) или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.

Программируем Arduino. Основы работы со скетчами - Монк Саймон читать онлайн бесплатно

Программируем Arduino. Основы работы со скетчами - Монк Саймон - читать книгу онлайн бесплатно, автор Монк Саймон

• Audio — утилиты для проигрывания звука (только Due);

• Scheduler — для управления выполнением нескольких потоков (только Due);

• USBHost — для подключения USB-периферии (только Due).

Наконец, существует огромное число библиотек, написанных другими пользователями Arduino, которые можно загрузить из Интернета. Далее перечислены некоторые из них, пользующиеся особой популярностью:

• OneWire — для чтения данных из цифровых устройств с интерфейсом 1-wire, выпускаемых компанией Dallas Semiconductor;

• 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

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

Полный перечень всех команд Arduino вы найдете в официальной документации на сайте Arduino: http://arduino.cc6.

В заключение

Из-за ограниченного объема книги в этой главе было дано очень краткое введение в мир Arduino. Более подробную информацию об основах вы найдете на многочисленных онлайн-ресурсах, включая бесплатные руководства по Arduino на сайте http://www.learn.adafruit.com.

В следующей главе мы заглянем под капот Arduino и посмотрим, как действует эта плата и что происходит у нее внутри, используя для этого удобную среду программирования Arduino.

2 Монк С. Программируем Arduino. Основы работы со скетчами. — СПб.: Питер, 2015. — Примеч. пер.

3 Существует замечательный сайт об Arduino на русском языке: http://arduino.ru/. — Примеч. пер.

4 В новых версиях Arduino IDE этот пункт называется Arduino/Genuino Uno. — Примеч. пер.

5 В русифицированной версии формат сообщений не всегда совпадает с форматом англоязычных сообщений. — Примеч. пер.

6 Аналогичный справочник с описанием команд на русском языке можно найти по адресу http://arduino.ru/Reference. — Примеч. пер.

2. Под капотом

Самое замечательное в Arduino — в большинстве случаев нет необходимости знать, что происходит за кулисами после того, как вы выгрузите скетч. Но так как вы собираетесь вникнуть в особенности работы Arduino и узнать больше о ее возможностях, вы должны знать чуть больше о происходящем в ее глубинах.

Перейти на страницу:
Вы автор?
Жалоба
Все книги на сайте размещаются его пользователями. Приносим свои глубочайшие извинения, если Ваша книга была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.
Комментарии / Отзывы
    Ничего не найдено.