Читаем Программируем Arduino. Профессиональная работа со скетчами полностью

Все остальное на рис. 2.2 так или иначе связано с аналого-цифровым преобразователем, портами ввода/вывода и последовательными интерфейсами трех типов, поддерживаемыми микроконтроллером: УСАПП, ППИ и ДПИ.

ATmega32u4

Микроконтроллер ATmega32u4В используется в моделях Arduino Leonardo и LilyPad USB, а также Micro и Nano. Он похож на ATmega328, но имеет более современный чип с несколькими дополнениями, отсутствующими в ATmega328:

• со встроенным интерфейсом USB, благодаря чему отпала необходимость в дополнительных аппаратных компонентах поддержки USB;

• с большим числом контактов с возможностью ШИМ;

• с двумя последовательными портами;

• с отдельными контактами интерфейса I2C (в Arduino эти контакты также играют роль аналоговых входов/выходов);

• с объемом статического ОЗУ больше на 0,5 Кбайт.

В модели Leonardo используется микроконтроллер в корпусе для поверхностного монтажа, то есть он припаивается непосредственно к плате, тогда как ATmega328 выпускается в корпусе с двумя рядами контактов, вставляемом в панель для интегральных микросхем, как на плате Arduino Uno.

ATmega2560

Микроконтроллер ATmega2560 используется в моделях Arduino Mega 2560 и Arduino Mega ADK. Он не быстрее других микроконтроллеров ATmega, но имеет больше памяти каждого типа (256 Кбайт флеш-памяти, 8 Кбайт статического ОЗУ и 4 Кбайт ЭСППЗУ), а также намного больше контактов ввода/вывода.

AT91SAM3X8E

Этот микроконтроллер является сердцем Arduino Due. Он существенно быстрее других микроконтроллеров ATmega, упоминавшихся ранее, и работает на тактовой частоте 84 МГц против обычных для ATmega 16 МГц. Имеет 512 Кбайт флеш-памяти и 96 Кбайт статического ОЗУ. Данный микроконтроллер не имеет ЭСППЗУ. Поэтому для долговременно хранения данных требуется использовать дополнительные устройства, такие как держатели карт памяти или устройства с флеш-памятью или ЭСППЗУ. Сам микроконтроллер обладает множеством дополнительных особенностей, включая два аналоговых выхода, делающих его идеальным инструментом для генерации звуков.

Arduino и Wiring

Фреймворк Wiring включает простые в использовании функции управления контактами на плате Arduino, однако основная его часть написана на языке C.

До недавнего времени в каталоге установки Arduino IDE можно было найти файл WProgram.h (программа Wiring). Теперь его замещает похожий файл с именем Arduino.h, что свидетельствует о постепенном отдалении Arduino от первоначального проекта Wiring.

Заглянув в каталог установки Arduino IDE, можно увидеть папку hardware, внутри нее — папку arduino, а внутри этой папки — папку cores. Обратите внимание на то, что в Mac в эту папку можно попасть, только если щелк­нуть правой кнопкой на ярлыке приложения Arduino, выбрать в контекстном меню пункт View Package Contents (Показать содержимое пакета) и затем перейти в папку Resources/Java/.

Внутри папки cores находится еще одна папка с именем arduino, в которой вы найдете множество заголовочных файлов на языке C с расширением .h и файлов реализации на языке C++ с расширением .cpp (рис. 2.3).

Рис. 2.3. Внутри папки cores

Открыв Arduino.h в текстовом редакторе, вы увидите, что он состоит из множества инструкций #include. Они подключают определения из других заголовочных файлов в папке cores/arduino в процессе компиляции (преобразования скетча в форму, пригодную для записи во флеш-память микроконтроллера).

Там же можно увидеть определения констант, например:

#define HIGH 0x1

#define LOW  0x0

#define INPUT 0x0

#define OUTPUT 0x1

#define INPUT_PULLUP 0x2

Они немного похожи на переменные в том смысле, что, обратившись к имени HIGH, например, программа получит значение 1. Значение определено как 0x1, а не как 1, потому что в этом файле все значения определяются в шестнадцатеричном формате (в системе счисления с основанием 16). Эти определения в действительности не являются переменными — их называют директивами препроцессора C, то есть когда ваш скетч будет преобразован в формат, пригодный для записи во флеш-память микроконтроллера, все слова HIGH, LOW и другие автоматически будут преобразованы в соответствующие числа. Это дает определенные преимущества перед использованием переменных, так как не требуется выделять память для их хранения.

Так как эти константы являются числовыми, вы можете, например, перевести контакт 5 в режим OUTPUT, как показано далее, но все же лучше пользоваться символическими именами на тот случай, если разработчики Arduino решат изменить значения констант. Кроме того, использование имен упрощает чтение программного кода.

setMode(5, 1);

setMode(5, OUTPUT);

Также в файле arduino.h присутствует множество сигнатур функций, например таких:

void pinMode(uint8_t, uint8_t);

void digitalWrite(uint8_t, uint8_t);

int digitalRead(uint8_t);

int analogRead(uint8_t);

void analogReference(uint8_t mode);

void analogWrite(uint8_t, int);

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных