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

Используется для представления кодов символов 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. Под капотом

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

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

C++: базовый курс
C++: базовый курс

В этой книге описаны все основные средства языка С++ - от элементарных понятий до супервозможностей. После рассмотрения основ программирования на C++ (переменных, операторов, инструкций управления, функций, классов и объектов) читатель освоит такие более сложные средства языка, как механизм обработки исключительных ситуаций (исключений), шаблоны, пространства имен, динамическая идентификация типов, стандартная библиотека шаблонов (STL), а также познакомится с расширенным набором ключевых слов, используемым в .NET-программировании. Автор справочника - общепризнанный авторитет в области программирования на языках C и C++, Java и C# - включил в текст своей книги и советы программистам, которые позволят повысить эффективность их работы. Книга рассчитана на широкий круг читателей, желающих изучить язык программирования С++.

Герберт Шилдт

Программирование, программы, базы данных
Programming with POSIX® Threads
Programming with POSIX® Threads

With this practical book, you will attain a solid understanding of threads and will discover how to put this powerful mode of programming to work in real-world applications. The primary advantage of threaded programming is that it enables your applications to accomplish more than one task at the same time by using the number-crunching power of multiprocessor parallelism and by automatically exploiting I/O concurrency in your code, even on a single processor machine. The result: applications that are faster, more responsive to users, and often easier to maintain. Threaded programming is particularly well suited to network programming where it helps alleviate the bottleneck of slow network I/O. This book offers an in-depth description of the IEEE operating system interface standard, POSIX (Portable Operating System Interface) threads, commonly called Pthreads. Written for experienced C programmers, but assuming no previous knowledge of threads, the book explains basic concepts such as asynchronous programming, the lifecycle of a thread, and synchronization. You then move to more advanced topics such as attributes objects, thread-specific data, and realtime scheduling. An entire chapter is devoted to "real code," with a look at barriers, read/write locks, the work queue manager, and how to utilize existing libraries. In addition, the book tackles one of the thorniest problems faced by thread programmers-debugging-with valuable suggestions on how to avoid code errors and performance problems from the outset. Numerous annotated examples are used to illustrate real-world concepts. A Pthreads mini-reference and a look at future standardization are also included.

David Butenhof

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