Arduino:Содержание

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Справочник языка Arduino

Конструкции языка

Управляющие операторы

Синтаксис

Арифметические операторы

Операторы сравнения

Логические операторы

Указатели

Побитовые операторы

Унарные операторы

Данные

Константы

Типы данных

Преобразование типов данных

Область видимости переменных и квалификаторы

Utilities

Функции

Цифровой ввод/вывод

Аналоговый ввод/вывод

Due & Zero

Дополнительные функции ввода/вывода

Работа со временем

Математические функции

Тригонометрические функции

Функции для символьного анализа

Генераторы случайных значений

Работа с битами и байтами

Внешние прерывания

Прерывания

Функции передачи данных

Serial

Stream

USB (Leonardo based boards and Due only)

Примеры

Стандартные функции

Простые программы, которые демонстрируют основные команды Arduino.

Они включены в среду Arduino; чтобы открыть их, нажмите кнопку "Открыть" на панели инструментов и посмотрите в папке примеров.

Основы

Цифровой сигнал

Аналоговый сигнал

Связь

Эти примеры позволяют Arduino «общаться» со скетчами для Processing, запущенными на компьютере. Для более подробной информации о Processing пройдите сюда – processing.org (там же можно скачать программу).

Здесь также представлены патчи Max/MSP, связанные со скетчами Arduino. Более подробно о Max/MSP читайте на Cycling 74. О патчах для Pd, которые могут работать с этими примерами, читайте в примерах Скотта Фитцджеральда.

Управляющие структуры

Датчики

Дисплей

Примеры, объясняющие основы управления дисплеем:

Строки

USB (для Leonardo, Micro и Due плат)

В этой секции имеют место примеры, которые демонстрируют использование библиотек, уникальных для плат Leonardo, Micro и Due.

Клавиатура

Мышь

Разное

Использование сдвигового регистра 74HC595

Использование одного сдвигового регистра 74HC595

Использование двух сдвиговых регистров 74HC595

  • ShftOut21 - Два светодиодных счетчика от «0» до «255» (в двоичном формате)
  • ShftOut22 - Поочередное зажигание 16 светодиодов
  • ShftOut23 - Использование двух массивов

Использование сдвигового регистра CD4021B

Использование одного сдвигового регистра CD4021B

  • ShftIn11 - Простой ввод данных
  • ShftIn12 - Какая кнопка нажата?
  • ShftIn13 - Проверка разных комбинаций
  • ShftIn14 - Нажата ли кнопка?

Использование двух сдвиговых регистров CD4021B

  • ShftIn21 - Простой ввод данных от двух сдвиговых регистров
  • ShftIn22 - Проверка разных комбинаций на двух комплектах переключателей
  • ShftIn23 - Печать включенных настроек

DHT

BMP180

Датчики дождя

Датчики влажности

Датчики освещенности

Температурные датчики

Часы реального времени

Датчики газа/дыма

Ультразвуковые датчики

Датчики движения

Уклономеры

Датчики звука

Герконы

RFID

Реле

nRF24L01

Приемники/передатчики RF 433 MHz

OLED-дисплеи

LCD-дисплеи

Светодиодные матрицы

Cветодиодные ленты

Клавиатуры

Роботы

Датчик цвета

Управление DC-моторами

Управление серводвигателями

Управление RGB-светодиодом

Источники звука

Последовательный порт

Использование библиотеки Keyboard

Использование библиотеки Wire

Использование библиотеки SPI

Использование библиотеки SD

Использование библиотеки Ethernet

Использование прерываний

Аппаратные прерывания

Прерывания по таймеру

Библиотеки

Примеры к библиотекам, входящим в состав ПО для Arduino.

Библиотека Bridge (для Arduino Yún)

  • Bridge - Доступ к контактам платы через веб-браузер.
  • Console ASCII Table - Демонстрирует, как выводить на консоль символы в разных форматах.
  • Console Pixel - Управление светодиодом при помощи консоли.
  • Console Read - Анализ информации, пришедшей через консоль, а затем отправка ее обратно.
  • Datalogger - Сохранение информации от датчика на SD-карте.
  • File Write Script - Демонстрирует, как при помощи класса Process записывать shell-скрипт в файловую систему Yun, а затем исполнять его.
  • HTTP Client - Создает простой клиент, который загружает веб-страницу и выводит ее на Serial Monitor.
  • Process - Демонстрирует, как использовать класс Process для запуска Linux-команд.
  • Shell Commands - Использует класс Process для запуска shell-команд.
  • Temperature Web Panel - После запроса через браузер постит на веб-странице данные от датчика.
  • TimeCheck - Берет информацию о текущем времени от сетевого сервера времени, а затем выводит ее на Serial Monitor.
  • WiFiStatus - Запускает преднастроенный скрипт, который в ответ сообщает о мощности сигнала в текущей WiFi-сети.
  • Yun Serial Terminal - Доступ к Linux Terminal через Serial Monitor.
  • MailboxReadMessage - Отправляет процессору Arduino текстовые сообщения через браузер и при помощи REST API.

Примеры для Temboo На сайте Temboo есть отдельная секция о библиотеке Temboo и примерах с использованием IDE Arduino. Смотрите здесь.

Примеры для Spacebrew Для Yun и Spacebrew существует множество примеров. Подробнее смотрите на страницах с проектной документацией.

Советы и хитрости при работе с Linux

Библиотека EEPROM

Библиотека Esplora

Esplora для начинающих

Esplora для экспертов

Библиотека Ethernet

Библиотеки Firmata

Библиотека GSM

Примеры для GSM

Инструменты для GSM

Библиотека LiquidCrystal

Библиотека SD

Библиотека Robot

Библиотека SPI

Библиотека Servo

Библиотека Software Serial

Библиотека Stepper

Библиотека TFT

Esplora

Arduino

Библиотека Wire

Библиотека WiFi

Только для Arduino 101

Библиотека CurieBLE

Библиотека Curie IMU

Библиотека Curie Timer One

  • Curie Timer One Interrupt – Устанавливает таймер и запускает прерывание
  • Curie Timer One PWM – Генерация ШИМ-сигнала на цифровом контакте (полное управление всеми параметрами)

Только для Arduino Due

Библиотека Audio

Библиотека Scheduler

  • MultipleBlinks – Мигание несколькими светодиодами, выполняемое в их собственных loop-функциях.

Только для Arduino Due, Zero и MKR1000

Библиотека USBHost

  • MouseController – Скетч, демонстрирующий работу функций MouseController
  • KeyboardController – Скетч, демонстрирующий работу функций KeyboardController

Только для Arduino Zero и MKR1000

Библиотека Audio Frequency Meter Library

Библиотека AudioZero

Библиотеки RTC

  • Simple RTC - Простые часы реального времени (RTC)
  • Simple RTC Alarm - Простой будильник для часов реального времени (RTC)
  • Sleep RTC Alarm - RTC-будильник, выводящий плату из спящего режима

Только для WiFi 101 и MKR1000

Библиотека CmdMessenger

  • Receive – Настройка PC-переключателя для светодиода, встроенного в Arduino.
  • SendandReceive – Расширенная версия Receive. Теперь Arduino отсылает обратно статус.
  • SendandReceiveArguments – Расширенная версия SendandReceive. Теперь Arduino получает и отправляет множество float-значений.
  • SendandReceiveBinaryArguments – Расширенная версия SendandReceiveArguments. Теперь Arduino принимает и отсылает множество двоичных значений, тем самым демонстрируя более эффективный способ коммуникации
  • DataLogging – Расширенная версия SendandReceiveBinaryArguments. Теперь при перемещении ползунка PC будет отправлять команды на Arduino.
  • ArduinoController – Расширенная версия Receive. Теперь Arduino отправляет обратно статус.
  • SimpleWatchdog – Демонстрирует настройку автоматического подключения между PC и Arduino.
  • TemperatureControl – Расширенная версия ArduinoController. Демонстрирует, как создать адаптивный интерфейс (в данном случае для отображения температурных данных).
  • ConsoleShell – Демонстрирует, как использовать ConsoleShell в качестве оболочки и коммуницировать с нею при помощи консоли. Этот пример отличается от других тем, что для него нет PC-кода.

Библиотека OneWire

  • DS18x20 Temperature - Этот пример демонстрирует, как при помощи библиотеки OneWire считывать данные с температурных датчиков типа 1-Wire. Поддерживаются модели DS18S20, DS18B20 и DS1822.
  • DS2408 Switch - Этот пример показывает, как при помощи библиотеки OneWire работать с PIO-чипом DS2048.
  • DS250x PROM - Этот пример показывает, как считывать данные с PROM-чипа семейства DS250x.

Библиотека PS2Keyboard

Библиотека SimpleMessageSystem

Библиотека SSerial2Mobile

Библиотека Webduino

  • Web AjaxBuzzer - Управление зуммером через браузерный интерфейс (AJAX)
  • Web AjaxRGB - Управление RGB-светодиодом через браузерный интерфейс
  • Web AjaxRGB mobile - Управление RGB-светодиодом при помощи смартфона
  • Web Authentication - HTTP-аутентификация
  • Web Buzzer - Управление зуммером через браузерный интерфейс
  • Web Demo - Запрос значений на контактах через браузерный интерфейс
  • Web HelloWorld - Показ в браузере надписи «Hello, World!»
  • Web Image - Показ в браузере иконки со светодиодом
  • Web Net Setup - Браузерный интерфейс для настройки сети
  • Web Parms - Передача и анализ параметров

Библиотека X10

  • x10Blink - Мигание лампочкой
  • x10Fade - Управление яркостью лампочки
  • x10Multi - Включение/выключение нескольких лампочек

Библиотека XBee

  • AtCommand - Отправка AT-запросов к XBee-модулю
  • Echo Callbacks - Прослушка входящих пакетов и отправка идентичных ответов
  • RemoteAtCommand - Отправка AT-команд на удаленный XBee-модуль
  • Series1 IoSamples - Получение данных от удаленного XBee-модуля
  • Series1 Rx - Получение пакетов и преобразование в ШИМ-сигнал
  • Series1 Tx - Отправка пакетов
  • Series2 IoSamples - Получение данных от удаленного XBee-модуля (Series 2)
  • Series2 Rx - Получение пакетов и преобразование в ШИМ-сигнал (Series 2)
  • Series2 Rx Nss - Получение и отображение пакетов (Series 2)
  • Series2 Sleep - Введение и выведение XBee-модуля из режима ожидания
  • Series2 Tx - Отправка пакетов (Series 2)
  • ZdpScan - Поиск узлов в XBee-сети

Библиотека CapacitiveSensing

Библиотека Bounce

  • Bounce - Устранение дребезга при нажатии на кнопку (вариант с одной кнопкой)
  • Bounce2Buttons - Устранение дребезга при нажатии на кнопку (вариант с двумя кнопками)
  • Change - Определение перехода из HIGH в LOW
  • Duration - Определение продолжительности нажатия на кнопку
  • Retrigger - Перезапуск события

Библиотека GLCD

  • BigNums - Использование текстовых областей
  • clockFace - Аналоговые часы
  • GLCDdemo - Пример работы нескольких графических функций
  • GLCDdiags - Тест памяти и интерфейса GLCD-модуля
  • HelloWorld - «Привет, мир!»
  • ks0108example - Пример работы нескольких графических функций (версия для ks0108)
  • life - Игра «Жизнь»
  • Rocket - Игра «Ракета»
  • Serial2GLCD - Показ символов, введенных через монитор порта
  • GLCD BigDemo - Большое демо

Библиотека LedControl

Библиотека LedDisplay

Библиотека Matrix

Библиотека PCD8544

Библиотека ST7735

  • graphicstest - Графический тест
  • rotationtest - Тест функций вращения
  • shieldtest - Перемещение картинки на TFT-дисплее (при помощи джойстика)
  • soft spitftbitmap - Вывод изображения на 1,8-дюймовый TFT-дисплей
  • spitftbitmap - Вывод изображения на 1,8-дюймовый или 1,44-дюймовый TFT-дисплей

Библиотека FFT

  • fft adc - Применение БПФ на данных от АЦП и отправка результата посредством write()
  • fft adc serial - Применение БПФ на данных от АЦП и отправка результата посредством println()
  • fft codec - Применение БПФ на данных от модуля Codec Shield

Библиотека Tone

  • DTMFTest - Тональный сигнал
  • RTTTL - RTTTL
  • ToneTest - Одновременное проигрывание нот

Библиотека TLC5940

Библиотека Time

  • TimeArduinoDue - Синхронизация времени с помощью RTC (для Arduino Due)
  • TimeGPS - Синхронизация времени с помощью GPS
  • TimeNTP - Синхронизация времени с помощью NTP-сервера
  • TimeNTP ESP8266WiFi - Синхронизация времени с помощью NTP-сервера и WiFi
  • TimeRTC - Синхронизация времени с помощью RTC (для остальных Arduino)
  • TimeRTCLog - Учет изменений состояний на контактах с помощью RTC
  • TimeRTCSet - Установка RTC-времени
  • TimeSerial - Настройка библиотеки Time при помощи последовательного порта
  • TimeSerialDateStrings - Настройка библиотеки Time при помощи последовательного порта (со строковыми сообщениями)
  • TimeTeensy3 - Синхронизация времени с помощью RTC на Teensy

Библиотека Metro

  • blinking - Периодическое мигание светодиодом
  • blinking 2 instances - Периодическое мигание двумя светодиодами
  • blinking 2 intervals - Мигание светодиодом с использованием двух периодичностей
  • serialInterval - Периодическая отправка сообщений по последовательному порту

Библиотека MsTimer2

  • FlashLed - Периодическое включение и выключение светодиода

Библиотека FlexiTimer2

Библиотека PString

Библиотека Streaming

Библиотеки[1]

Как и большинство платформ для программирования, возможности IDE Arduino можно расширить за счет добавления новых библиотек. Благодаря этим библиотекам при написании скетчей можно будет использовать дополнительный функционал – например, для управления определенными устройствами или манипуляции данными. Чтобы задействовать в скетче нужную библиотеку, выберите ее в меню Скетч > Подключить библиотеку (Sketch > Include Library).

В IDE Arduino уже установлены некоторые библиотеки, но вы можете загрузить новые и даже создать свои собственные. Более подробно об установке библиотек читайте тут. А по этой ссылке – руководство по написанию собственных библиотек. О том, как создать для своей библиотеки API в Arduino-стиле, читайте тут.

Стандартные библиотеки

  • EEPROM – считывание и запись в «постоянную» память
  • Ethernet – для подключения к интернету при помощи Arduino Ethernet Shield
  • Firmata – для коммуникации с программами на компьютере при помощи стандартизированного протокола Firmata
  • GSM – для подключения к GSM/GPRS сети при помощи GSM-модуля
  • LiquidCrystal – для управления жидко-кристаллическими дисплеями (LCD)
  • SD – для считывания и записи на SD-карту
  • Servo – для управления сервомоторами
  • SPI – для коммуникации с устройствами при помощи шины SPI
  • SoftwareSerial – для последовательной коммуникации на любых цифровых контактах. В IDE Arduino версии 1.0 и выше для этих целей служит библиотека NewSoftSerial от Микала Харта (Mikal Hart)
  • Stepper – для управления шаговыми моторами
  • TFT – для рисования текста, изображений и фигур на TFT-дисплее Arduino
  • WiFi – для подключения к интернету при помощи Arduino WiFi Shield
  • Wire – для коммуникации (т.е. получения и отправки данных) с устройствами и датчиками при помощи шины TWI/I2C

Библиотеки Matrix и Sprite вместе с IDE Arduino больше не распространяются.

Только для Arduino 101

  • CurieBLE
  • CurieIMU – управление встроенными акселерометром и гироскопом
  • CurieTimerOne – позволяет использовать функции таймера

Только для Arduino Due

  • Audio – проигрывает аудиофайлы с SD-карты
  • Scheduler – позволяет одновременно запускать несколько разных функций

Только для Arduino Due, Zero и MKR1000

  • USBHost – коммуникация с периферийными USB-устройствами вроде мыши или клавиатуры

Только для Arduino Zero и MKR1000

  • Audio Frequency Meter Library – позволяет брать образец аудиосигнала и определять его частоту
  • AudioZero – проигрывает аудиофайлы с SD-карты
  • RTC – часы реального времени для установления графика событий

Только для WiFi 101 и MKR1000

  • WiFi101 – библиотека для использования только с WiFi Shield 101

Только для Esplora

  • Esplora – библиотека, обеспечивающая упрощенный доступ к датчикам и контроллерам на плате Esplora

Только для Arduino Robot

  • Robot – библиотека, обеспечивающая упрощенный доступ к функциям Arduino Robot

Только для Arduino Yun

  • Bridge – для коммуникации между процессорами Linux и Arduino

USB-библиотеки (Leonardo, Micro, Due, Zero и Esplora)

  • Keyboard – отсылает компьютеру, присоединенному к плате, информацию о нажатиях на клавиши
  • Mouse – отсылает компьютеру, присоединенному к плате, информацию о перемещении курсора

Дополнительные библиотеки

Чтобы использовать эти библиотеки, их сначала нужно установить. Подробнее об этом читайте тут. О написании собственных библиотек читайте тут.

Коммуникация (сети и протоколы)

  • CmdMessenger - для обработки текстовых сообщений от компьютера
  • NewSoftSerial – улучшенная версия библиотеки SoftwareSerial
  • OneWire – управление устройствами (от Dallas Semiconductor), использующими протокол One Wire
  • PS2Keyboard – считывание символов с клавиатуры PS2
  • SimpleMessageSystem – отправка сообщений между Arduino и компьютером
  • SSerial2Mobile – отправка текстовых сообщений или эмейлов при помощи мобильного телефона и AT-команд (через SoftwareSerial)
  • Webduino – расширенная веб-серверная библиотека (для использования с Arduino Ethernet Shield)
  • X10 – отправка сигналов X10 по линиям переменного тока
  • XBee – для коммуникации с XBee в API-режиме
  • SerialControl – дистанционное управление Arduino через последовательное соединение

Датчики

  • CapacitiveSensing – превращает два или более контакта Arduino в емкостные датчики
  • Bounce – для считывания шумных входящих сигналов с цифровых контактов (например, от кнопок)

Дисплеи и светодиоды

  • Adafruit GFX – базовый класс со стандартными функциями для работы с графикой (от Adafruit Industries)
  • GLCD – функции для работы с графикой для LCD на базе чипсета KS0108 (или эквивалентного ему)
  • Улучшенная LiquidCrystal – исправляет баги с инициализацией LCD в официальной LCD-библиотеке Arduino
  • LedControl – для управления светодиодными матрицами или 7-сегментными дисплеями с MAX7221 или MAX7219
  • LedControl – альтернатива библиотеке Matrix для управления несколькими светодиодами с чипами Maxim
  • LedDisplay – управление LED-дисплеем HCMS-29xx с функцией скроллинга
  • Matrix -
  • PCD8544 – для LCD-контроллера на дисплеях вроде Nokia 55100 (от [www.adafruit.com Adafruit Industries])
  • Sprite – библиотека для управления спрайтовыми изображениями (для анимации на LED-матрице)
  • ST7735 – для LCD-контроллера на 1,8 дюймовом 128х160 TFT-экране (от Adafruit Industries)

Аудио и звуковые волны

  • FFT – частотный анализ аудио и других аналоговых сигналов
  • Tone – генерация квадратных звуковых волн на любом контакте микроконтроллера

Моторы и ШИМ

  • TLC5940 – 16-канальный 12-битный ШИМ-контроллер

Синхронизация

  • Time – библиотека для слежения за текущей датой и временем в ПО
  • Metro – помогает распределять действия по регулярным интервалам
  • MsTimer2 – использует прерывания timer2 для запуска действий каждые N миллисекунд
  • FlexiTimer2 - Это библиотека, позволяющая использовать timer2 на Arduino.

Прочее

  • PString – легковесный класс для печати в буфер
  • Streaming – метод, упрощающий операторы вывода

См.также

Внешние ссылки