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

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 и узнать больше о ее возможностях, вы должны знать чуть больше о происходящем в ее глубинах.

Краткая история Arduino

Первая плата Arduino была создана в 2005 году в итальянском Институте проектирования взаимодействий (Interaction Design Institute) в городе Ивреа, близ Турина. Целью было создание недорогого и простого в использовании инструмента для обучения студентов искусству проектирования интерактивных систем. Программное обеспечение для Arduino, которое обеспечило этой плате значительную долю успеха, является доработкой открытого фреймворка с названием Wiring, созданного студентом этого же института.

Доработанная версия для Arduino получилась очень близкой к оригиналу Wiring, а среда разработки Arduino IDE написана с использованием фреймворка Processing, старшего брата Wiring, способного работать на PC, Mac и других персональных компьютерах. Вам стоит обратить внимание на Processing, если вы работаете над проектом, в котором плата Arduino должна обмениваться информацией с PC через USB или Bluetooth.

Аппаратура Arduino все эти годы продолжала развиваться, но современные платы Arduino Uno и Leonardo сохранили форму и набор контактов, доставшиеся от оригинала.

Устройство Arduino

На рис. 2.1 изображена структурная схема платы Arduino Uno. Модель Leonardo имеет схожее устройство, но интерфейс USB в ней интегрирован в чип микроконтроллера. Похожее устройство имеет и модель Due, но в ней используется процессор с напряжением питания 3,3 В вместо 5 В.

Рис. 2.1. Устройство платы Arduino Uno

Во многих отношениях Arduino — не более чем микроконтроллер с небольшим количеством поддерживающих компонентов. В действительности вполне можно создать Arduino на макетной плате, добавив микропроцессор и несколько дополнительных компонентов, или создать свою печатную плату, взяв за основу плату Arduino. Готовые платы Arduino избавляют от такой необходимости, но вообще можно повторить любую плату Arduino, используя микроконтроллер и несколько действительно необходимых компонентов. Например, если ваша разработка предназначена только для одной цели, есть смысл отказаться от интерфейса USB, так как программы можно выгружать в микросхемы памяти на плате Arduino, а затем переносить их на свои платы.