Разное

Include arduino: #include — Arduino Reference

Содержание

Установка и подключение ардуино библиотек в Ardino IDE

Установка и подключение библиотеки к arduino – достаточно распространенная операция, любой разработчик рано или поздно обязательно сталкивается с нею. Внешний подключаемый код во всех языках программирования используется для экономии времени. Ардуино не исключение: многие датчики, модули, экраны и двигатели требуют достаточно сложные схемы взаимодействия, которые трудно реализовывать в своем коде. Гораздо проще и быстрее скачать нужную библиотеку, быстро подключить ее вручную или с помощью Arduino IDE, а потом использовать во всех своих скетчах. В этой статье вы найдете короткую инструкцию по подключению и использованию библиотек.

Библиотеки в Arduino IDE

Библиотека в Ардуино – это программный код во внешних файлах, которые можно  установить и подключить к вашему скетчу. В библиотеке хранятся различные методы и структуры данных, которые нужны для упрощения работы с датчиками, индикаторами, модулями и другими компонентами. Использование библиотек существенно упрощает работу над проектами, потому что можно сосредоточиться на основной логике программы, не тратя время на множество мелочей. Сегодня огромное количество библиотек выложено в интернете, где их можно легко скачать, причем совершенно бесплатно. Наиболее популярные библиотеки можно найти на нашем сайте.

С точки зрения файловой системы библиотека представляет собой каталог, содержащий определенные папки. Во время компиляции и сборки проекта Arduino IDE автоматически включает в код те классы, структуры данных и методы из библиотек, которые включены и используются в скетче. Таким образом, единственное, что нам нужно сделать – это выставить в свой код соответствующие инструкции, предварительно убедившись, что нужная библиотека установлена.

Как узнать список подключенных библиотек к Arduino IDE

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

Другим способом является использование меню Скетч и подменю – Подключить библиотеку. Там вы тоже сможете увидеть список библиотек:

Список библиотек ардуино

Подключение оператором #include заголовочного h файла

Чтобы начать пользоваться библиотекой, нужно в начале программы включить заголовочный h файл директивой include. Например, подключение библиотеки LiquidCrystal.h будет выглядеть так: #include <LiquidCrystal.h>

Вы можете посмотреть полный пример, воспользовавшись самой библиотекой.

Обязательные файлы в библиотеке

Каждая библиотека должна содержать как минимум 2 файла – это заголовочный файл с расширением .h и файл с исходным кодом с расширением .cpp. В заголовочном файле находятся описание класса, константы и переменные. Во втором файле содержатся коды методов. Помимо двух основных файлов может содержаться текстовый документы keywords.txt и папка examples  с кодами примеров использования библиотеки. Файлы h и cpp не обязательно лежат в корне

Редактирование файлов невозможно в Arduino IDE, все изменения можно проводить в любом текстовом редакторе, либо среде разработки C++. Это связано с тем, что в Arduino IDE мы не работаем с файлами cpp, редактор кода не предназначен для “чистого” C, он работает только с языком Arduino.

Где найти нужную библиотеку

Необходимую библиотеку можно загрузить через интернет. Большинство библиотек имеется на сайте Github. После загрузки библиотеки важно ее добавить в правильную папку, чтобы компилятор смог ее найти и загрузить скетч. Папка, в которой сохранены все коды, создается на компьютере после установки Arduino IDE. Для операционной системы Linux папка имеет название “Scetchbook” и располагается в /home/, на Windows папку «Arduino» можно найти в разделе «Мои документы».

Все библиотеки, которые установлены дополнительно, расположены в папке “Libraries”. Для ранних версий Ардуино папку нужно создать самостоятельно, а начиная с версии 1.0.2, она добавляется при установке Arduino IDE автоматически.

Как установить библиотеку. Пошаговая инструкция

Как только библиотека будет загружена на ПК, нужно начать ее установку. Установить библиотеку можно двумя способами – при помощи средств Arduino IDE и вручную.

Подключение при помощи Arduino IDE

Библиотека скачивается в виде zip-архива. Для ее включения этим способом архив не нужно распаковывать. Чтобы установить ее, нужно зайти в меню Скетч – Подключить библиотеку – Добавить .Zip библиотеку.

Когда откроется окно, нужно выбрать папку «загрузки» в разделе «Этот компьютер». Если же после загрузки библиотеки она была сохранена в другое место, нужно указать его.

Затем нужно выбрать скачанный файл и нажать «открыть».

Библиотека будет установлена, и ей можно пользоваться. Для того, чтобы начать пользоваться примерами Файл – примеры, нужно перезагрузить среду разработки Ардуино.

Установка библиотеки вручную из zip-файла

Перед началом установки нужно выйти из Arduino IDE. Скачанный zip-файл с библиотекой нужно распаковать. В результате мы получим папку, в которой будут располагаться файлы библиотеки с расширением .cpp и .h и каталоги. Полученную папку нужно будет поместить в libraries.

В ОС Windows папку libraries можно найти по маршруту Мои документы – ардуино – libraries. В  Linux это будет папка libraries со скетчами.

В конце нужно перезапустить Arduino IDE, загруженная библиотека будет доступна для включения через Скетч – Подключить библиотеку.

Ошибки при подключении библиотеки Arduino

Ниже перечислен перечень возможных ошибок при установке библиотеки и способы борьбы с ними:

  • ‘xxxx’ does not name a type – подобная ошибка появляется, если библиотеку еще не установили, папка или библиотека названа неверно, указан неправильный адрес расположения папки или не перезапущена среда разработки Arduino IDE.
  • Неправильное расположение папки – если высветилась эта ошибка, нужно проверить, находится ли библиотека в папке, доступной для поиска средой.
  • Неправильное наименование библиотеки – ошибка появляется, если имя после #include не соответствует названию библиотеки.
  • Неполная библиотека – может появиться, если были скачаны не все нужные файлы и папки.
  • Зависимости библиотеки – так как этот тип библиотек работает только с дополнительными, нужно изначально подключить именно их.

Можно ли включить библиотеку из другой библиотеки, используя Arduino IDE?

Я пытаюсь написать библиотеку Arduino (фактически класс C++), которая сама ссылается на другую библиотеку, установленную мной в каталоге ~/Documents/Arduino/libraries моего Mac.

В верхней части .cpp библиотеки, которую я пишу, я попытался

#include <ReferencedLibrary.h>

и

#include "ReferencedLibrary. h"

… ни то, ни другое не работает. Я могу успешно #include <ReferencedLibrary.h> из эскизов в моем каталоге ~/Documents/Arduino. Я что-то упускаю или это ограничение Arduino IDE/makefile? есть ли обходной путь?

c++

ide

include

arduino

Поделиться

Источник


Robert Atkins    

28 июня 2011 в 09:16

5 ответов


  • Включить файл в папку в библиотеке Arduino

    В настоящее время я пишу библиотеку Arduino и хочу включить файлы в подкаталог в папке библиотеки. Более конкретно, я хочу, чтобы файлы были доступны из эскиза Arduino. Это моя структура каталогов: MyLib/MyLib.cpp MyLib/MyLib.h MyLib/Extra/SomeNiceFunctions.cpp MyLib/Extra/SomeNiceFunctions.h Вот…

  • Как построить и загрузить код в Arduino, если я использую общую библиотеку?

    У меня есть код C, который я хочу встроить в Arduino . ino , этот код использует некоторую общую библиотеку ( .so ), присутствующую в текущем рабочем каталоге. Как я могу построить и загрузить этот код на свой Arduino Yun , используя Arduino IDE (или любой другой метод). Если я делаю это трудным…



12

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

#include "../AbstractSwitch/AbstractSwitch.h"

Другими словами, ваше заявление include должно гласить:

#include "../LibraryFolder/LibraryHeaderFile.h"

Поделиться


julioterra    

22 ноября 2011 в 19:12



11

В документации здесь https://github. com/arduino/Arduino/wiki/Build-Process говорится:

Путь включения включает в себя каталог эскиза
, целевой каталог
(/hardware/core//) и
каталог AVR include
(/hardware/tools/avr/avr/include/),
а также любые библиотечные каталоги (в
/hardware/libraries/), которые
содержат заголовочный файл,
включенный в основной файл эскиза.

Это означает, что если вы #include "ReferencedLibrary.h" из вашего основного файла эскиза, это приведет к тому, что каталог libraries этого файла будет добавлен в путь включения для включения других библиотек. Немного взлом, но он действительно работает на моем Mac.

Поделиться


nicolaskruchten    

28 июня 2011 в 12:45



7

Эта проблема была решена в выпуске Arduino 1.6.6. В примечаниях к выпуску 1.6.6 упоминается, что зависимости между библиотеками были исправлены.

Зависимости от библиотеки к библиотеке: когда ваш эскиз импортирует библиотеку, а эта библиотека использует другую, IDE узнает об этом без необходимости добавлять бесполезный #include в ваш эскиз

Обновление вашей версии до 1.6.6 или новее решит вашу проблему.

Поделиться


agakshat    

16 августа 2016 в 14:59


  • Добавление пользовательской библиотеки C в Arduino 1.5.7 IDE

    Контекст: я хотел бы добавить пользовательскую библиотеку к фрагменту кода Arduino в Arduino 1.5.7 IDE, чтобы обеспечить децентрализацию и читаемость кода Попытка решения проблемы: Я делаю папку под названием mathsfunctions. В него я поместил два текстовых файла, один с расширением .c, а другой с…

  • Arduino IDE расположение библиотеки

    У меня есть Arduino project WiFiManager, который использует ArduinoJson 5. ArduinoJson установлен в моей системе, и проект компилируется нормально: Я решил перейти на код VisualStudio IDE. По этой причине мне нужно скопировать библиотеку ArduinoJson 5 из Arduino IDE. Я нашел…



3

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

Конечно, вы всегда можете вырезать и вставлять код в каждую новую библиотеку, но это чрезвычайно неоптимально. Вы также можете написать одну огромную библиотеку со всем вашим кодом в одной паре файлов .h и .cpp. Это тоже не очень удовлетворительно, но я делал это время от времени.

Однако существует обходной путь для использования стандартных библиотек Arduino в вашей собственной библиотеке,которую вы помещаете в каталог sketchbook/libraries. Поскольку эскизы содержат пути к расположениям стандартной библиотеки и связывают код стандартной библиотеки, вы можете включить в свой эскиз файл заголовка для интересующей вас стандартной библиотеки. Ниже, также в вашем эскизе, включите свой собственный файл заголовка библиотеки. После этого стандартная библиотека станет доступной как для вашей библиотеки, так и для вашего эскиза.

Поделиться


Tim Egbert    

05 ноября 2011 в 04:34



1

Не рекомендуемый метод: можно добавить практически любой внешний библиотечный код в сборку Arduino IDE, разрезав файл boards.txt. Заголовки в флагах c/cpp и библиотеки в флагах ld. Это может быть полезно для разработчиков библиотек, использующих внешние инструменты (cmake/QT creator for me today).

Я изменил /home/pekka/arduino-1.8.5/hardware/teensy/avr/boards.txt, добавив «/ coderoot» к gcc include path и e_os_arduino define, изменив строки ниже:

teensy36.build.flags.cpp=-ФНО-исключения -felide-конструкторов -с std=с GNU++14 -Кто-ошибке=сужение -ФНО-библиотеку RTTI -I/coderoot -DE_OS_arduino

teensy36.build.flags.c= — I / coderoot-DE_OS_arduino

Поделиться


Pekka Lehtikoski    

13 сентября 2018 в 10:49


Похожие вопросы:

Как включить один порт Arduino с помощью C#?

У меня есть Arduino Duemilanove USB. У меня есть только один LED, подключенный к одному порту на нем. Я хочу использовать C#, чтобы включить этот LED. Есть ли простой пример того, как это сделать?…

Альтернатива IDE для Arduino

Есть ли какая-то альтернатива IDE для разработки для Adruino Я пытался использовать Eclipe и Arduino IDE, но я фанат Sublime Text . Итак, могу ли я использовать его для программирования для Arduino…

Библиотеки в Arduino IDE 1.0

У меня есть простая программа для тестирования этих библиотек после обновления до версии 1. Программа связана ниже, как и библиотеки. Они предназначены для датчиков влажности SHT21 . Я получаю…

Включить файл в папку в библиотеке Arduino

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

Как построить и загрузить код в Arduino, если я использую общую библиотеку?

У меня есть код C, который я хочу встроить в Arduino .ino , этот код использует некоторую общую библиотеку ( .so ), присутствующую в текущем рабочем каталоге. Как я могу построить и загрузить этот…

Добавление пользовательской библиотеки C в Arduino 1.5.7 IDE

Контекст: я хотел бы добавить пользовательскую библиотеку к фрагменту кода Arduino в Arduino 1. 5.7 IDE, чтобы обеспечить децентрализацию и читаемость кода Попытка решения проблемы: Я делаю папку под…

Arduino IDE расположение библиотеки

У меня есть Arduino project WiFiManager, который использует ArduinoJson 5. ArduinoJson установлен в моей системе, и проект компилируется нормально: Я решил перейти на код VisualStudio IDE. По этой…

как сделать переменные экземпляра другой библиотеки классов в arduino

Я начинаю с создания библиотек arduino. У меня есть ошибки при включении библиотек, которые уже созданы. Это должно включать библиотеку датчиков DHT22 в другую библиотеку, использующую Arduino Ide….

Включить местную библиотеку

Я пытаюсь скопировать пару библиотек, которые я создал, в свою локальную папку sketch, как указано в руководстве по библиотеке Arduino Моя структура папок выглядит следующим образом…

Код переноса от Arduino на stm32f100, используя STM32Cube IDE

У меня есть эскиз Arduino, который идеально работает на моем Arduino Mega 2560, но я должен перенести этот код с Arduino IDE на STM32Cube IDE (на основе eclipse), потому что я должен использовать. ..

Arduino oscilloscope nokia lcd

Aug 26, 2012 · Digital Clock on Arduino (Uno) with Nokia LCD Display When I heard about Arduino a couple years ago (yes, I was a bit late to the party) I immediately fell in love with it. The main reason was that it allowed me to try things that otherwise would require a lot of time and effort from a total electronics noob like me. simple basic oscilloscope by Rolf Meurer to get both half-waves on screen we must shift the DC ground to half the Arduino operation voltage. this can be done by using 2 resistors in series (e.g. 2 x 1k) where one resistor goes to VSS and the other resistor goes to VCC.

Best semi auto hunting rifle 2020

Oct 04, 2015 · Holdding New 1602 LCD Keypad Shield Module Display for Arduino (4$) At 4$ this module provides the best value for money. The LCD is 1 602 character, with a volume of 2 line X16 characters, Optimal operating voltage: 5. 0V, 1602LCD uses 14pin (No backlight) or 16pin (with backlight) port. You can get one here. Evil Mad Science Googly Eye Arduino Shield Kit Yes the Googly Eye Shield by Evil Mad Science is a bit silly but every roboticist needs to have a li… $6.75 $5.75

G loomis rod eye repair

Idag, ska jag visa dig hur du använder Nokia 5110 display med Arduino styrelser med dessa enkla steg. Behovet av lista: 1. Arduino UNO (med USB-kabel). 2. Nokia 5110 LCD (med små kablar) Mar 20, 2015 · We will be using the Arduino analog A0 input to sample and capture time varying signals by Writing a program that will also display those signals in a 3.8″ TFT LCD touch display, and we will input data to modify the oscilloscope behavior, using the touch capabilities of the screen display.

Bob carver sunfire amplifier

LCD Screen Joystick Expansion Board Shield for Arduino Projects LCD Joystick expansion Board shield for your Arduino LCD4884 LCD Joystick Shield v2. 0 LCD4884 LCD expansion board with Nokia 5110 LCD screen for display is suitable for a variety of development boards and controllers, for example: Arduino controller, Respberry Pi, STC microcontroller, AVR microcontroller and so on. LCD Display Module Adapter PCB for arduino Nokia 5110 quantity Add to cart SKU: (A193) Categories: Arduino , Display , Displays , Embedded Solution (Arduino / Raspberry Pi / ESP / Other) , Modules , Modules , Optoelectronics Tags: Display Module , LCD , Nokia , Nokia 5110

Tesol test pdf

This is «Arduino & Nokia 1100 LCD test» by MyInventions on Vimeo, the home for high quality videos and the people who love them. Follow the instructions below. Connect the RST pin of Nokia 5110 LCD to the pin 6 of Arduino through the 10k resistor. Connect the SCE pin of Nokia 5110 LCD to the pin 7 of Arduino through the 1k resistor. Connect the D/C pin of Nokia 5110 LCD to the pin 5 of Arduino through the 10k resistor.

Ryzen boot loop

Oct 27, 2017 — In this project we will use a 2.4” Arduino TFT LCD screen to build our own Arduino Touch Screen calculator that could perform all basic calculations like Addition, Subtraction, Division and Multiplication. Sep 14, 2016 · I to am having this problem using the same LCD Module that you had pictured. After reading this link: How to use a Nokia 5110 84X48 LCD display with your Arduino (It’s easy and cheap!) (in the comments section) someone mentioned this displays might be rather picky with their VCC voltage so i tried limiting it with a voltage divider but that didn’t work and then i tried limiting the voltage …

Wwf no mercy play online

Giấy chứng nhận Arduino Cơ bản đã xuất hiện, nhấn vào để xem nhé Đóng Để tôi xem. OSCILLOSCOPE MINI. Ở phiên bản này, máy hiện sóng AVR-OSCILLOSCOPE của mình có thể được hiển thị lên 2 lcd thông dụng là NOKIA5110 hoặc lcd ST7565 Homephone .HOW TO MAKE ARDUINO OSCILLOSCOPE hi friends in this video i have made an Arduino based oscilloscope plus function generator i have took this project LCD Nokia 5110 goo.gl/u1rE8t Arduino Pro Mini goo.gl/eBQ0Nb На страничке проекта есть архив с самой последней версией прошивки…

Browning a5 turkey choke

It adds an nRF24L01 RF interface and Nokia 5110 LCD interface, easy for secondary game development. Because this RF module has stable performance, and supports 6 in 1 game play, which allows developers to play freely. Nokia 5110 LCD is widely used in various development platforms, with highly cost-effective and has a strong library support.

Sep 09, 2010 · *This application is tested only with Samsung Galaxy GT-i5700 Spica (rooted Android 2. 1 OS, i570EXXJD1 Baseband version). The transmitter circuit uses Microchip’s dsPIC33FJ16GS504 for the analog-to-digital conversion of the input signals on two channels.

Re7r01a shift kit

Jul 12, 2015 · Used Mobile Phone’s Display For Arduino : Understanding a Typical Non-Nokia Mobile’s TFT Display’s Operation Basically the mobile phones are closed source in nature. Usually they have 40 pin ribbon cable at the end, with 1-41 mentioned.

Jul 22, 2015 · Here is the code for a more basic oscilloscope. /***** 2.8 SPI PIND TFT Oscope Simple Reads the D0-D7 pins using PIND, and shows the value on the screen. Created 27 july 2015 by Bob Davis *****/ //#include // Arduino LCD library #include #include «Adafruit_ILI9341.h» #include «Adafruit_GFX.h» // pin definition for the Uno LCD #define TFT_DC 9 # …

Allwinner a33 firmware lollipop

What is playbook in cyber security

Pagans mc enemies

Perfdiag logger maximum size

Yildiz pump shotgun recall

Military mod minecraft 1.12 2 curseforge

Cotton yarn walmart canada

Arduino High Speed Oscilloscope With PC Interface: Use your Arduino and PC as a fast Storage Oscilloscope.The Arduino can reliably gather voltage readings at a frequency of between 141 and 153 KiloHertz.1000 data readings can be taken in around 6.8ms .Transfered to a PC, these points can be accurate…

Adafruit PCD8544 Nokia 5110 LCD library. Display. Arduino driver for PC8544, most commonly found in small Nokia 5110’s Author: Adafruit. Maintainer: Adafruit. Read the documentation. Compatibility. This library is compatible with all architectures so you should be able to use it on all the Arduino boards. Releases

Arduino + Nokia 5110 Screen 01 March 2017 on Arduino, Nokia 5110. Today my goal is to get up and running with a Nokia 5110 LCD module and as little Arduino code as possible. The Nokia 5110 LCD module is a great little screen and offers a resolution of 84 x 48 pixels (that’s 84 pixels across and 48 down). It’s great for easily displaying data …

Jul 22, 2015 · Here is the code for a more basic oscilloscope. /***** 2.8 SPI PIND TFT Oscope Simple Reads the D0-D7 pins using PIND, and shows the value on the screen. Created 27 july 2015 by Bob Davis *****/ //#include // Arduino LCD library #include #include «Adafruit_ILI9341.h» #include «Adafruit_GFX.h» // pin definition for the Uno LCD #define TFT_DC 9 # …

1.JYE Tech 068 Digital LCD Oscilloscope DIY KIT NEWEST version 06804K not just a kit for training but also a practical tool for everyday use. 2.Operations are even easier thanks to silicone pushbuttons and rotary encoder. Parameter setting is simply, straightforward, and quick. 3.This kit is particularly suitable for educational use.

Fix the sentence worksheets 4th grade

Model 12 assembly

Washer and dryer frugal reddit

Result kamboja

Palantir deployment strategist reddit

1969 cobra fairlane hardtop 4 speed 428 cobra jet for sale

Kukje engines

Brownmagician

Skeet cracked 2020

Linksys 4g lte modem

Muthead madden 16 team builder

Raspberry pi gps disciplined oscillator

Shatter wizard101 pet

Osprey flight locker

Rate my professor fiu

Steel angle weight calculator

Avital remote programming

Cbfinaid id

4×4 deck post lights

Inferences worksheet 6

Leaf vacuum trailer canada

Is dishwasher detergent toxic

Exec_command timeout paramiko

Forums like hackforums

Simple direct proportion questions tes

I ready diagnostic scores 2020 5th grade

Biesse error 304

Vddk error 4

Linux br0 bridge

Danelectro 59 dc

Gas grill side burner yellow flame

Firefox printing problems

Jdm 240sx parts

Telegram auto 2.17.3 cracked

Arduino — Библиотеки

Установка дополнительных библиотек Arduino

Как только вы освоитесь с программным обеспечением Arduino и начнете использовать
встроенные функции, вы можете расширить возможности вашего Arduino
с дополнительными библиотеками.

Что такое библиотеки?

Библиотеки

— это набор кода, который упрощает подключение
к сенсору, дисплею, модулю и т. д. Например, встроенный
Библиотека LiquidCrystal упрощает взаимодействие с символьными ЖК-дисплеями.В Интернете доступны сотни дополнительных библиотек для
скачать. Встроенные библиотеки и некоторые из этих дополнительных библиотек
перечислены в ссылке. Чтобы использовать
дополнительные библиотеки, вам нужно будет их установить.

Как установить библиотеку

Использование диспетчера библиотек

Чтобы установить новую библиотеку в вашу среду разработки Arduino, вы можете использовать диспетчер библиотек (доступен в среде IDE версии 1.6.2).
Откройте IDE и щелкните меню «Эскиз», а затем Включить библиотеку> Управление библиотеками .

Затем откроется Диспетчер библиотек, и вы найдете список библиотек, которые уже установлены или готовы к установке. В этом примере мы установим библиотеку Bridge. Прокрутите список, чтобы найти его, щелкните по нему, затем выберите версию библиотеки, которую вы хотите установить. Иногда доступна только одна версия библиотеки. Если меню выбора версии не появляется, не волнуйтесь: это нормально.

Наконец, нажмите «Установить» и подождите, пока среда IDE установит новую библиотеку.Загрузка может занять некоторое время в зависимости от скорости вашего подключения.
По завершении рядом с библиотекой Bridge должен появиться тег Installed . Вы можете закрыть менеджер библиотеки.

Теперь вы можете найти новую библиотеку, доступную в меню Sketch> Включить библиотеку .
Если вы хотите добавить свою собственную библиотеку в Диспетчер библиотек, следуйте этим инструкциям.

Импорт библиотеки .zip

Библиотеки

часто распространяются в виде ZIP-файла или папки. Имя папки — это имя библиотеки.Внутри папки будет файл .cpp, файл .h и часто файл keywords.txt, папка примеров и другие файлы, необходимые для библиотеки. Начиная с версии 1.0.5, вы можете устанавливать сторонние библиотеки в IDE. Не разархивируйте загруженную библиотеку, оставьте как есть.

В среде Arduino IDE перейдите к Sketch> Включить библиотеку> Добавить .ZIP-библиотеку . В верхней части раскрывающегося списка выберите параметр «Добавить библиотеку .ZIP».

Вам будет предложено выбрать библиотеку, которую вы хотите добавить.Перейдите в папку с файлом .zip и откройте его.

Вернитесь в меню Sketch> Включить библиотеку. меню. Теперь вы должны увидеть библиотеку внизу раскрывающегося меню. Он готов к использованию в вашем эскизе.
ZIP-файл будет расширен в папке библиотеки в вашем каталоге эскизов Arduino.

NB: библиотека будет доступна для использования в эскизах, но в более старых версиях IDE примеры для библиотеки не будут отображаться в Файл> Примеры до тех пор, пока среда IDE не будет перезапущена.

Ручная установка

Если вы хотите добавить библиотеку вручную, вам необходимо загрузить ее в виде ZIP-файла, развернуть и поместить в соответствующий каталог. ZIP-файл содержит все, что вам нужно, включая примеры использования, если их предоставил автор. Диспетчер библиотек предназначен для автоматической установки этого ZIP-файла, как объяснялось в предыдущей главе, но есть случаи, когда вам может потребоваться выполнить процесс установки вручную и самостоятельно поместить библиотеку в папку библиотеки вашего альбома для рисования.
Вы можете найти или изменить местоположение папки вашего альбома для рисования в File> Preferences> Sketchbook location.

Перейдите в каталог, в который вы скачали ZIP-файл библиотеки.

Извлеките ZIP-файл со всей его структурой папок во временную папку, затем выберите основную папку, которая должна иметь имя библиотеки.

Скопируйте его в папку «библиотеки» в альбоме для рисования.

Запустите программное обеспечение Arduino (IDE), перейдите в Sketch> Включить библиотеку .Убедитесь, что только что добавленная библиотека доступна в списке.

Обратите внимание: : библиотеки Arduino управляются в трех разных местах: внутри установочной папки IDE, внутри основной папки и в папке библиотек внутри вашего альбом для рисования. Выбор библиотек во время компиляции позволяет обновлять библиотеки, присутствующие в дистрибутиве. Это означает, что размещение библиотеки в папке «библиотеки» в вашем альбоме отменяет другие версии библиотек.
То же самое происходит с библиотеками, присутствующими в установках дополнительных ядер. Также важно отметить, что версия библиотеки, которую вы добавляете в свой альбом для рисования, может быть ниже, чем версия библиотеки в дистрибутиве или основной папке, тем не менее, она будет той, которая будет использоваться во время компиляции. Когда вы выбираете конкретное ядро ​​для своей платы, библиотеки, имеющиеся в папке ядра, используются вместо тех же библиотек, имеющихся в папке распространения IDE.
И последнее, но не менее важное, это способ обновления программного обеспечения Arduino (IDE): все файлы в программах / Arduino (или папке, в которой вы установили IDE) удаляются, и создается новая папка со свежим содержимым.
Вот почему мы рекомендуем вам устанавливать библиотеки только в папку альбомов, чтобы они не удалялись в процессе обновления Arduino IDE.

Это руководство основано на тексте Лимора Фрида.

Последняя редакция 2017/02/07, автор: SM

Текст руководства по началу работы с Arduino находится под лицензией
Лицензия Creative Commons Attribution-ShareAlike 3.0. Примеры кода в руководстве опубликованы в открытом доступе.

«.h: нет такого файла или каталога» — 2 простых исправления ошибки Arduino

Вы пытаетесь запустить скетч Arduino, но постоянно сталкиваетесь с ошибкой «Нет такого файла или каталога»? Это довольно частая ошибка! Продолжайте смотреть, чтобы узнать больше о двух простых способах устранения этой ошибки.

Нет такой файловой ошибки!

Сообщения об ошибках

могут быть такой проблемой, но они должны рассказывать нам что-то о допущенной нами ошибке. Давайте посмотрим на то, что ниже. Если вы посмотрите на нижнюю часть Arduino IDE, где появляется сообщение об ошибке, вы увидите эту удобную маленькую кнопку с надписью «копировать сообщения об ошибках».

Если вы щелкнете по нему, оно скопирует сообщение об ошибке из маленького окошка в буфер обмена на компьютере.

Теперь вы можете вставить его, например, в Google и выполнить поиск, который поможет вам узнать больше об ошибке. Или вы можете вставить его в форум и сказать: «Привет, я получил это сообщение об ошибке, пожалуйста, помогите мне».

Однако для этой ситуации мы скопировали его и собираемся вставить в текстовый редактор, чтобы мы могли более внимательно изучить, что на самом деле говорится в сообщении об ошибке.

Расшифровка ошибки отсутствия такого файла

Первое предложение просто говорит, какая версия Arduino используется, какая операционная система работает и какая плата выбрана.

Второе предложение фактически начинает немного углубляться в ошибку. Первое, что он дает нам, — это название программы. Итак, в данном случае программа называлась «Knob».

Если вы посмотрите на Arduino IDE, числа слева называются номерами строк программы и служат для справки, помогающей нам найти, где находятся разные строки кода. «10» после «Knob» — это номер строки (в Arduino IDE), на которой была обнаружена ошибка.

«19» — это ссылка на длину этой строки кода, то есть сколько в ней пробелов или символов.

Затем он сообщает нам настоящую ошибку. Там написано «servo.h: нет такого файла или каталога». Почему мы получаем эту ошибку?

Ошибка наших путей

Что ж, давайте взглянем на строку 10 и посмотрим, что в ней написано. Там написано «#include »

.

Когда мы проверяем этот код, эта строка сообщает компилятору Arduino IDE: «Эй, чтобы эта программа работала, вам нужно получить этот файл servo.h».

Допустим, у вас была машина для изготовления этикеток, и вы пытались запустить этикетировочную машину и напечатать несколько этикеток.Чтобы он заработал, вам нужно положить в рулон этикеток. Если у вас нет этого рулона этикеток, значит, производитель этикеток не пойдет. Итак, наша программа подобна изготовителю этикеток, а файл (сервопривод) — это рулон этикеток.

Итак, сообщение об ошибке похоже на «Эй, программист, вы сказали, что мне нужен этот другой файл… но я поискал его, но его там нет. Что дает? Давайте перейдем к сути этого сообщения об ошибке и рассмотрим два разных сценария.

Сценарий 1 — толстые пальцы

Это набросок, который вы написали.На самом деле это вы написали строку «#include». Первое, что вам следует проверить, это написание и использование заглавных букв. Возможно, вы неправильно написали название библиотеки или в этом примере, возможно, вы использовали неправильные буквы с заглавной буквы.

Таким образом, «servo.h» на самом деле должно быть заглавной «S» или записанным «Servo.h». Теперь в этом примере вы заметите, что слово «серво» меняет цвет, если оно написано правильно с заглавной буквы, и это потому, что имя библиотеки «Сервопривод» распознается как «ключевое слово» в Arduino IDE.Имейте в виду, что это может относиться не ко всем библиотекам, которые вы используете.

Следовательно, вы не можете использовать изменение цвета в качестве абсолютного индикатора, но это может быть полезно. Удивительно, как долго вы можете смотреть на строку кода и пропустить что-то вроде орфографической или заглавной ошибки.

Сценарий 2 — отсутствующие файлы

В этом сценарии вы либо скачали, либо скопировали и вставили некоторый код из Интернета и пытаетесь запустить его в первый раз.Теперь вы начинаете получать это сообщение об ошибке. Предположим, что первоначальный автор программы правильно написал название библиотеки.

Мы продолжим и пропустим устранение неполадок, связанных со сценарием 1. Следующим шагом будет проверка того, что у нас действительно есть файл, который запрашивает эта программа. Мы также должны убедиться, что файл находится в правильном месте.

Самый простой способ проверить, есть ли у вас этот файл, — это войти в Arduino IDE и перейти в Sketch> Include Library, а затем найти имя этой библиотеки.

Какую бы библиотеку ни вызывал оператор #include, вы должны просмотреть этот большой длинный список для этой библиотеки. Если вы не видите ее точное название в этом списке, это означает, что у вас не установлена ​​соответствующая библиотека (все они расположены в алфавитном порядке, что помогает). Если вы не видите его здесь, вам нужно добавить библиотеку.

Самый простой способ добавить библиотеку — перейти в «Скетч»> «Включить библиотеку»> «Управление библиотеками». Откроется диалоговое окно, в котором вы сможете найти библиотеку.Библиотек так много, что вам определенно понадобится фильтрация.

Убедитесь, что вы вводите точное слово, которое соответствует строке #include. Как только вы найдете недостающую библиотеку, нажмите «Установить». Он сообщит вам, что он устанавливает библиотеку и обновляет список библиотек.

Затем мы можем дважды проверить, успешно ли он установлен. Перейдите в Sketch> Include Library, и установленная библиотека должна появиться в раскрывающемся списке. Теперь, когда он соответствует требованиям, вы больше не должны получать ошибку.

Другие отделения библиотеки

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

Обычно библиотека включена в.zip-архив. После того, как вы загрузили файл .zip, вы можете перейти в IDE Arduino и выбрать Sketch> Включить библиотеку> Добавить библиотеку .ZIP… Вам просто нужно перейти туда, где файл был загружен. Он сообщит вам «Библиотека добавлена ​​в ваши библиотеки» чуть выше темной области, где появилась исходная ошибка.

Теперь, когда мы переходим в Sketch> Include Library, новая библиотека появится в раскрывающемся списке. Альт! Теперь вы знаете 2 способа добавить новую библиотеку.

Обзор

Итак, мы обсудили два возможных сценария, которые могут вызвать появление ошибки «Нет такого файла или каталога» после компиляции скетча.

Во-первых, если вы написали набросок, просто дважды проверьте правильность написания и заглавные буквы.

Во-вторых, если вы скопировали код от кого-то другого, убедитесь, что у вас установлены правильные библиотеки.

Надеемся, что у вас получился отличный, и увидимся в следующий раз! До свидания!

Зависимости между библиотеками Arduino — Embedded Artistry

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

Поддержка плановой зависимости

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

Суть в том, что вы можете добавить в файл library.properties запись зависимых , которая ссылается на зарегистрированное имя другой библиотеки. Несколько библиотек можно разделять запятыми. Вот пример из проекта Arduino_OAuth:

  имя = Arduino_OAuth
версия = 0.1.0
author = Arduino
сопровождающий = Arduino 
предложение = [BETA] Клиентская библиотека OAuth 1.0 для Arduino.
paragraph = Эта библиотека зависит от ArduinoHttpClient и ArduinoBearSSL.
category = Общение
url = http: //github.com/arduino-libraries/Arduino_OAuth
архитектуры = *
включает = Arduino_OAuth.h
зависит = ArduinoHttpClient, ArduinoBearSSL
  

Дополнительную информацию о файле library.properties можно найти на вики-странице Arduino GitHub, хотя на момент написания этой статьи зависимости не задокументированы.

Управление установкой вручную

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

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

Это означает, что вы можете управлять включением заголовка в свою библиотеку.Пользователю больше не нужно вручную включать зависимую библиотеку в свой эскиз.

Если у меня есть библиотека под названием arduino-logger , и я хочу, чтобы в этой библиотеке использовался ArduinoPrintf , мне просто нужно включить заголовок ArduinoPrintf.h где-нибудь в моей библиотеке:

  #ifndef ARDUINO_LOGGER_H_
#define ARDUINO_LOGGER_H_

#include "ArduinoPrintf.h" // Заголовок зависимой библиотеки

// Код здесь

#endif // ARDUINO_LOGGER_H_
  

Пока в моей системе установлена ​​библиотека arduino-printf , Arduino IDE автоматически скомпилирует другую библиотеку, когда ArduinoLogger.h входит в мой эскиз:

  Использование библиотеки arduino-logger в папке: / Users / pjohnston / Documents / Arduino / libraries / arduino-logger
Использование библиотеки arduino-printf в папке: / Users / pjohnston / Documents / Arduino / libraries / arduino-printf
  

Дополнительная литература

Руководство по директивам препроцессора Arduino

— ifdef & endif

В облегченной библиотеке Arduino для оценочного комплекта датчиков ROHM я представил RohmMultiSensor — библиотеку Arduino, которая позволяет легко взаимодействовать с несколькими датчиками в оценочном комплекте датчиков ROHM.Одна из основных особенностей этой библиотеки заключается в том, что размер программы заметно минимизируется за счет компиляции только тех частей библиотеки, которые содержат код, специфичный для датчика, который вы хотите использовать. Это означает, что при использовании меньшего количества датчиков общий размер программы и использование памяти будут меньше. Но как именно это происходит? И что на самом деле происходит за кулисами, когда вы #include библиотеки, а затем нажимаете кнопку «Загрузить»?

Оборудование

Программное обеспечение

Практически каждый, кто когда-либо использовал Arduino, использовал библиотеку.Это одна из причин, почему программирование Arduino так легко для новичков — вам не нужно иметь глубокое понимание того, как работает датчик; библиотеки сделают за вас большую часть работы. Разделение кода на отдельные файлы также является хорошей практикой программирования. Гораздо проще организовать, отладить и поддерживать несколько разделенных файлов, чем огромный кусок кода.

Новички в Arduino уже должны быть знакомы с #include , который «добавляет» библиотеку к основному скетчу.Чтобы понять, как именно это происходит, мы сначала должны быстро взглянуть на то, как исходный код C / C ++ компилируется в программу. Не волнуйтесь, это звучит намного сложнее, чем есть на самом деле. Давайте посмотрим, как работает компиляция.

После нажатия «Загрузить»

Давайте сначала проведем быстрый эксперимент: запустите Arduino IDE, откройте один из примеров кодов (например, «Blink») и нажмите кнопку «Проверить». Предполагая, что в программе нет синтаксических ошибок, консоль внизу должна распечатать некоторую информацию о размере программы и памяти.Что ж, вы только что успешно скомпилировали исходный код C ++ в двоичный файл. Во время компиляции произошло несколько вещей:

  1. Arduino IDE выполнила так называемую «синтаксическую проверку», чтобы убедиться, что написанное вами действительно является исходным кодом C / C ++. Это момент, когда компиляция остановится, если вы неправильно написали функцию или забыли точку с запятой.
  2. После проверки синтаксиса Arduino IDE запускает другую программу, называемую препроцессором . Это очень простая программа, которой все равно, является ли файл исходным кодом C / C ++.Поскольку мы поговорим об этом шаге позже, мы просто предположим, что результатом является файл с именем «расширенный исходный код», который по-прежнему является просто текстовым файлом.
  3. Затем расширенный исходный код был передан другой программе под названием compiler . Компилятор (в случае Arduino IDE это avr-gcc ) принимает текстовый источник и создает файл сборки. Это более низкий язык программирования, который по-прежнему удобочитаем, но гораздо ближе к машинному коду — в основном это просто инструкции для процессора.Эта часть является причиной того, почему вам необходимо выбрать правильную плату Arduino, прежде чем вы начнете компилировать скетч — разные платы имеют разные процессоры, которые, в свою очередь, имеют разные наборы инструкций.
  4. Следующая программа, обрабатывающая ваш скетч, называется ассемблер . Он генерирует «объектный файл». В основном это машинный код, но он также может содержать «ссылки» на объекты в других объектных файлах. Это позволяет Arduino IDE «предварительно компилировать» некоторые библиотеки, которые всегда будут использоваться при написании скетча Arduino, что значительно ускоряет весь процесс.
  5. Заключительный этап называется компоновкой и выполняется другой программой, которая, что неудивительно, называется linker . Компоновщик берет объектный файл и добавляет все, чего не хватает, чтобы превратить его в исполняемый файл — в основном символы из других объектных файлов. После этого программа полностью преобразуется в машинный код и может быть запрограммирована на плату.

Теперь у нас есть базовое представление о том, что действительно нужно для компиляции скетча Arduino, но из всех этапов компиляции, описанных выше, мы собираемся сосредоточиться только на втором: препроцессоре.

Основы препроцессора

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

Препроцессор работает, ища строки, которые начинаются со знака решетки (#) и содержат текст после него.Это называется директивой препроцессора и является своего рода «командой» для препроцессора. Полный список всех поддерживаемых директив с подробной документацией можно найти здесь:

https://gcc.gnu.org/onlinedocs/cpp/Index-of-Directives.html#Index-of-Directives.

В следующем тексте я сосредоточусь в основном на #include , #define и условных директивах, так как они наиболее полезны в Arduino, но если вы хотите узнать больше о некоторых более «экзотических» директивах, например, #assert или #pragma , здесь можно получить официальную информацию.

Добавление дополнительного кода: #include директива

Это, вероятно, самая известная директива препроцессора не только среди энтузиастов Arduino, но и в программировании на C / C ++ в целом. Причина проста: он используется для включения библиотек. Но как именно это происходит? Точный синтаксис следующий:

 #include <файл> 

или

 #include "файл" 

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

Когда препроцессор находит файл, он просто копирует и вставляет его содержимое в исходный код вместо директивы #include.Однако, если такой файл не может быть найден ни в одном из каталогов, это вызовет фатальную ошибку и остановит компиляцию.

Важно помнить, что препроцессор работает только с текстом — он на самом деле не понимает, что означают все эти причудливые буквы и цифры. И, что наиболее важно, он не выполняет никаких высокоуровневых проверок того, что было включено и сколько раз. Давайте посмотрим, что может произойти, если вы используете неправильно написанную библиотеку.

 #include 

void setup () {

}

#include 

void loop () {

} 

В скетче Arduino действительно мало чего происходит. Обратите внимание, что мы включаем файл с именем « ExampleLibrary.h », и что мы включаем его дважды.

 // Это пример библиотеки

int a = 0;

// Конец примера библиотеки 

И это то, что находится внутри ExampleLibrary.h. Опять же, ничего особенного, за исключением одной целочисленной переменной. Так что же происходит, когда мы пытаемся скомпилировать этот скетч Arduino?

Ошибка показывает, что переменная a объявляется дважды, что приводит к сбою компиляции.Так выглядит исходный код после завершения препроцессора.

 // Это пример библиотеки

int a = 0;

// Конец примера библиотеки

void setup () {

}

// Это пример библиотеки

int a = 0;

// Конец примера библиотеки

void loop () {

} 

Теперь очевидно, что ни одна библиотека не должна включаться более одного раза, но как этого добиться, не полагаясь на пользователя? Стандартное решение — обернуть всю библиотеку следующей конструкцией:

 #ifndef _EXAMPLE_LIBRARY_H
#define _EXAMPLE_LIBRARY_H

// Это пример библиотеки

int a = 0;

// Конец примера библиотеки

#endif 

Теперь, когда библиотека включается впервые, препроцессор проверяет, есть ли что-то определенное с именем « _EXAMPLE_LIBRARY_H ».Поскольку ничего подобного еще не существует, он переходит к следующей строке и определяет константу с именем « _EXAMPLE_LIBRARY_H ». Затем код библиотеки копируется в эскиз.

При включении библиотеки во второй раз препроцессор снова проверяет наличие константы с именем « _EXAMPLE_LIBRARY_H ». Однако на этот раз константа уже определена из предыдущего #include , поэтому в эскиз ничего не добавляется. Теперь компиляция успешно завершена.Директивы #ifdef и #endif являются условными директивами, которые будут рассмотрены позже.

Определение вещей: #define directive

В предыдущем примере мы использовали директиву #define для создания константы, которая определяла, включать ли библиотеку или нет. В официальной документации все, что определяется директивой #define , называется макросом , поэтому в этой статье я буду придерживаться этой терминологии.Синтаксис этой директивы следующий:

 #define macro_name macro_body 

Большинство новичков в Arduino несколько сбиты с толку макросами. Если я определю макрос вроде следующего:

 #define X 10 

в чем точное отличие от объявления некоторой переменной, как показано ниже?

 int Y = 10; 

Опять же, все сводится к тому, что препроцессор работает только с текстом. Когда он найдет директиву #define , он выполнит поиск в остальной части исходного кода и заменит все вхождения «X» на «10».Это означает, что, в отличие от переменных, значение макроса никогда не изменится. Кроме того, вы должны иметь в виду, что препроцессор ищет только rest исходного кода после строку с #define на ней . Давайте посмотрим, что произойдет, если мы попытаемся использовать макрос до того, как он будет определен.

 int Y = X;
#define X 10
int Z = X;

void setup () {

}

void loop () {

} 

Компиляция приведенного выше кода даст нам следующую ошибку:

Код после предварительной обработки будет выглядеть так:

 int Y = X;
int Z = 10;

void setup () {

}

void loop () {

} 

Первая строка содержит X , что интерпретируется как переменная, однако эта переменная никогда не объявлялась, поэтому компиляция останавливается.

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

 int min (int a, int b) {
if (a 

Или проще с тернарным оператором:

 int min (int a, int b) {
return ((a 

Однако обе эти функции будут скомпилированы и займут драгоценное место для хранения программ.Мы можем добиться того же эффекта с помощью следующего функционального макроса, который займет гораздо меньше места в программе.

 #ifndef MIN
#define MIN (A, B) (((A) <(B))? (A): (B))
#endif 

Теперь каждое вхождение «MIN (A, B)» будет заменено на «(((A) <(B))? (A): (B))», где «A» и «B» могут быть либо число, либо переменная. Обратите внимание, что #define заключен в ту же защитную конструкцию, которая не позволяет пользователю определять макрос дважды.

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

 #ifndef НЕСКОЛЬКО
# определить НЕСКОЛЬКО (A, B) A * B
#endif

// какой-то код ...

int результат = НЕСКОЛЬКО (2-0, 3); 

Значение result должно быть 6, так как 2-0 равно 2, а 2 * 3 равно 6, верно? Что, если я скажу вам, что результат будет 2? Фактически компилируется следующее:

 int result = 2-0 * 3; 

Поскольку умножение имеет приоритет над вычитанием, теперь очевидно, что результат должен быть 2, потому что 3 * 0 равно 0, а 2-0 все еще равно 2.Правильная версия будет выглядеть так:

 #ifndef НЕСКОЛЬКО
#define НЕСКОЛЬКО (A, B) ((A) * (B))
#endif 

Условная компиляция: #if директивы

В предыдущих примерах я использовал директиву #ifndef a, которая позволяла мне проверять, была ли уже включена библиотека. Эту директиву можно использовать только для достижения того, что было бы невозможно с точки зрения языка C / C ++: условного синтаксиса.Эти директивы имеют следующий синтаксис:

 #if выражение

 // компилируем этот код

#elif different_expression

// компилируем этот другой код

#еще

// компилируем этот совершенно другой код

#endif 

Самый распространенный способ использования условного синтаксиса - проверить, определен ли макрос. Для этого вы можете использовать несколько специализированных директив:

 #ifndef имя_макроса

 // компилируем этот код, если macro_name не существует

#endif 

Мы уже знакомы с вышеизложенным, поскольку мы использовали эту директиву, чтобы проверить, была ли уже включена библиотека.Вы также можете использовать это условие:

 #ifdef имя_макроса

 // компилируем этот код, если macro_name существует

#endif 

Вышеупомянутое является сокращением для #if defined , которое можно использовать для проверки нескольких макросов в одном условии. Обратите внимание, что каждое условие должно заканчиваться директивой #endif , чтобы указать, какие части кода затронуты условием, а какие нет.

Давайте посмотрим на практический пример.Предположим, вы написали библиотеку и хотите, чтобы она корректно работала как на Arduino UNO, так и на Arduino Mega. Это кажется хорошей идеей, правда? Переносимый код всегда проще использовать, чем адаптировать уже работающую библиотеку для другой платы. Но что, если, например, ваша библиотека использует шину SPI? Эта шина расположена на контактах 11-13 на Arduino UNO, но на Mega она перемещена на контакты 50-52.

Как вы можете сказать компилятору, что он должен использовать правильные контакты, независимо от того, на какую плату вы сейчас загружаете? Как вы уже догадались - условный синтаксис! В зависимости от того, какую плату вы выбрали в среде Arduino IDE в меню «Инструменты»> «Плата», среда IDE будет определять различные макросы, позволяя вам выбирать части кода, которые будут компилироваться только для определенной платы! Это невероятно мощно, потому что позволяет делать что-то вроде этого:

 #if defined (__ AVR_ATmega168__) || определено (__ AVR_ATmega328P__)

// это будет скомпилировано для Arduino UNO, Pro и более старых плат
int _sck = 13;
int _miso = 12;
int _mosi = 11;

#elif defined (__ AVR_ATmega1280__) || определено (__ AVR_ATmega2560__)

// это будет скомпилировано для Arduino Mega
int _sck = 52;
int _miso = 50;
int _mosi = 51;

#endif 

Видите его красоту? Имея всего три строчки кода, мы создали многоплатформенную портативную библиотеку! Кстати, именно так библиотека RohmMultiSensor (из Lightweight Arduino Library for ROHM Sensor Evaluation Kit ) знает, какие части кода должны быть скомпилированы для каждого выбранного датчика.Если вы заглянете внутрь заголовочного файла RohmMultiSensor.h , вы увидите только несколько директив #ifdef и некоторые #include . Поскольку весь код для конкретного датчика хранится в отдельных файлах .cpp , легко добавлять новые датчики в библиотеку - просто создайте другой файл, а затем создайте ту же структуру #ifdef - #include - #endif для других датчиков использовать. Сделанный!

Обратная связь: #warning and #error директивы

Последние директивы, которые мы рассмотрим: #warning и #error .Оба они говорят сами за себя, поэтому вот синтаксис:

 #warning "сообщение" 

и

 # сообщение об ошибке 

Когда препроцессор найдет эти директивы, он выведет сообщение в консоль Arduino IDE. Разница между ними в том, что после #warning компиляция продолжается как обычно, а #error полностью останавливает компиляцию.

Мы можем использовать это в нашем предыдущем примере:

 #if defined (__ AVR_ATmega168__) || определено (__ AVR_ATmega328P__)

 // это будет скомпилировано для Arduino UNO, Pro и более старых плат
int _sck = 13;
int _miso = 12;
int _mosi = 11;

#elif defined (__ AVR_ATmega1280__) || определено (__ AVR_ATmega2560__)

// это будет скомпилировано для Arduino Mega
int _sck = 52;
int _miso = 50;
int _mosi = 51;

#еще

#error «Выбрана неподдерживаемая плата!»

#endif 

Таким образом, когда пользователь пытается скомпилировать библиотеку для какой-либо другой платы Arduino (например,грамм. Yún, LilyPad и т. Д.) Компиляция завершится ошибкой, вместо того, чтобы вообще не определять контакты SPI.

Заключение

На этом наш краткий обзор глубин препроцессора C / C ++ завершается. Я надеюсь, что такие термины, как компиляция , препроцессор, или директива , кажутся, по крайней мере, немного менее пугающими, чем они были до того, как вы прочитали статью. Позвольте мне подвести итог наиболее важным моментам, которые я пытался объяснить в этой статье:

  1. При написании библиотеки обязательно заключите ее в конструкцию #ifndef - #define - #endif , которую мы видели несколько раз.Это могло бы избавить вас от неприятностей. То же самое следует делать при определении макросов, подобных функциям.
  2. Напишите код таким образом, чтобы его можно было легко перенести на другие платы Arduino. Поверьте мне, гораздо легче думать наперед, чем пытаться выяснить, что вызывает проблемы несовместимости.
  3. Разделяй и властвуй! Несколько файлов меньшего размера лучше, чем один файл длиной более 1000 строк.

Установка библиотеки Arduino с GitHub

Что происходит, когда у вас есть случайный чип или датчик, который вы хотите связать с Arduino, но не знаете как? Конечно, вы ищете уже существующую библиотеку.А где размещено и доступно множество библиотек? Место, где энергичные разработчики собирают код, публикуют обновления и сотрудничают с другими: Github!

Многие библиотеки Arduino доступны на GitHub. Это действительно укрепляет дух работы с открытым исходным кодом. Если вы нашли нужную библиотеку на GitHub, добавить ее в IDE Arduino относительно просто. Однако, если вы новичок в GitHub (или Arduino IDE), вы можете пропустить простые шаги.

Шаг 1: Arduino IDE

Убедитесь, что у вас запущен хотя бы 1.0.5 или 1.5.x IDE Arduino (примечание: теперь 1.6.x содержит все)

1.5.x - это более «экспериментальная» ветвь IDE. На момент публикации он стал намного более стабильным, но по-прежнему ориентирован на более продвинутые платы Arduino: Yún, (Intel) Galieo и Due. Так что, если у вас есть плата Nano, Uno или Mega, вы можете придерживаться ветки 1.0.x.

Причина, по которой вам нужна эта версия IDE, заключается в том, что она добавляет поддержку критически важной функции «Добавить библиотеку…».

Шаг 2: Загрузите библиотеку

Вы могли заметить, что на странице GitHub вы можете перемещаться по различным файлам библиотеки.Может возникнуть соблазн просто загрузить файлы .cpp и .h, а затем выяснить, куда их поместить. В библиотеку Arduino входит еще пара файлов, так что это не лучший вариант. Вместо этого на странице проекта найдите кнопку «Загрузить ZIP».

Пример на GitHub - ищите загрузку ZIP

Это загружает последнюю версию файлов в правильные каталоги в виде ZIP-файла.

Шаг 3. Переименуйте библиотеку!

Хорошо, этот шаг обязательно сбивает с толку людей.В этом примере мы используем библиотеку Adafruit NeoPixel, которая при загрузке становится «Adafruit_NeoPixel-master.zip».

Это будет проблемой, потому что IDE Arduino не любит такие символы, как «_» и «-».

Шаг 3A) разархивируйте библиотеку и переименуйте папку

Используйте все, что требуется для разархивирования вашей ОС, а затем переименуйте папку, удалив символы «_» и «-». IDE утверждает, что ей нужен только «Basic ASCII», что означает «только буквы и цифры».

[необязательно] Кроме того, GitHub добавляет слово «master.«Удалите и это тоже.

После этого у вас должна быть папка (или каталог) с названием «AdafruitNeoPixel».

Шаг 4. Установите библиотеку

Раньше этот Шаг было сложно сделать правильно. Вот почему в IDE теперь есть опция «Добавить библиотеку».

Для этого шага просто выполните «Добавить библиотеку» и перейдите в новый каталог библиотеки.

Шаг 5. Перезапустите среду IDE [необязательно]

Хотя этот шаг может быть необязательным, я считаю, что это хорошая идея.Перезапустите среду IDE, чтобы она правильно загрузила файл KEYWORD, Примеры и добавила библиотеку в меню библиотеки.

Ошибки

Если вы получили следующую ошибку, вернитесь к шагу 3.

Щелкните, чтобы увидеть полное сообщение об ошибке.

Вы, вероятно, пытаетесь напрямую импортировать этот ZIP-файл (который содержит «неправильное» имя каталога) или библиотека не поддерживает параметр «Добавить файл…». В таком случае опубликуйте ссылку на проект ниже и посмотрите, сможет ли кто-нибудь помочь.

Как добавить библиотеку в Arduino

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

Однако, благодаря активному сообществу Arduino, теперь вы можете получить доступ к совместимым программам, называемым «библиотеками», которые можно изменять в соответствии с вашими потребностями. Следующие шаги описывают процедуру добавления библиотек Arduino в IDE.

Связанный : Как установить IDE Arduino в Windows 10

Что такое библиотека Arduino?

Библиотеки

Arduino - это часто используемые и легкодоступные программы, которые помогают обойти ограниченное количество встроенных эскизов в среде IDE.Ардуино определяет их как «наборы кодов, которые обеспечивают дополнительную функциональность для использования в эскизах». Двумя примерами этих функций могут быть «работа с любым оборудованием» или «манипулирование данными» в программном обеспечении.

Эти дополнительные коды могут быть уже установлены в среде IDE или загружаться отдельно в виде zip-папки на GitHub, Arduino.cc или других сайтах. Если вы используете стабильную версию Arduino (на данный момент 1.8.15 и ниже), вы можете легко найти список существующих библиотек.Чтобы просмотреть / добавить библиотеку, перейдите в «Эскиз -> Включить библиотеку», где вы можете просмотреть список уже установленных библиотек.

Лис уже существующих библиотек Arduino в Arduino IDE версии 1.8.13 для Windows

Как видно выше, все примеры эскизов аккуратно структурированы в виде дерева, что обеспечивает легкий доступ по теме или библиотеке. На следующем экране показано добавление различных библиотек, включая «Мышь», «LiquidCrystal» и «Wi-Fi».

Все библиотеки идентифицируются с помощью оператора #insert в начале кода.Это важная команда, которая помогает скомпилировать библиотеки с любым эскизом, который вы хотите создать. Итак, если вы хотите добавить функциональность мыши, ЖК-дисплея и Wi-Fi (Arduino Wi-Fi Shield) в свой проект (на стороне пользователя), следующие инструкции #insert будут в порядке.

# Вставить библиотечные команды, добавленные в Arduino Sketch

Поскольку библиотеки загружаются на плату Arduino после завершения скетча, они могут занимать много дополнительного места. Таким образом, важно сократить количество тегов #include и удалить из эскиза любые дополнения, если они не нужны.

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

Библиотеки Arduino в формате .ino

Из самого пункта меню выше вы можете получить доступ к Менеджеру библиотек и импортировать новые библиотеки из файлов .zip. Мы рассмотрели это отдельно ниже.

Как установить библиотеку Arduino из диспетчера библиотек Arduino

Чтобы добавить библиотеки Arduino из собственного диспетчера библиотек среды IDE, выберите «Скетч -> Включить библиотеку -> Управление библиотеками».”

Arduino Access Управление библиотеками

Если вы используете последнюю версию Arduino 2.0, которая все еще находится в стадии бета-тестирования, процедура добавления библиотек такая же.

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

Обновление библиотек Arduino

Щелкните любую библиотеку, выполнив поиск или прокрутив список вниз.Чтобы установить один из них, нажмите «Подробнее», и вы увидите несколько версий обновления соответствующей библиотеки вместе с кнопкой «установить». Нажмите «Установить», чтобы увидеть любую доступную последнюю версию. Иногда может быть доступна только одна версия.

Библиотеки Arduino устанавливают последнюю версию

Установка конкретной библиотеки Arduino не должна занимать более нескольких секунд.

Arduino IDE, устанавливающая библиотеку AudioFrequencyMeter

После его завершения рядом с библиотекой в ​​Менеджере библиотек появится тег «Установлено», как показано ниже.

Тег установленной библиотеки Arduino

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

Диспетчер библиотек обновляет список библиотек

Вы можете проверить наличие добавленной библиотеки, вернувшись к «Эскиз -> Включить библиотеку -> Дополнительные библиотеки».

Добавлена ​​новая библиотека Arduino, которая отображается в меню Sketch.

Если вы хотите добавить свою собственную библиотеку в Диспетчер библиотек в виде файла.zip, вы можете научиться делать это в разделе ниже.

Как установить библиотеку Arduino в Arduino версии 2.0?

Как обсуждалось выше, процедура установки библиотеки в Arduino версии 2.0 (бета) точно такая же, как для 1.8.15 и более старых версий. Однако скриншоты и расположение меню немного изменены, как показано здесь. Во-первых, менеджер библиотеки открывается не как всплывающее окно, а с левой стороны.

Найти и установить довольно просто из элементов меню библиотеки Arduino, которые можно автоматически прокручивать, как показано здесь.Однако может появиться уведомление о добавлении нескольких зависимостей в библиотеку. Нажмите «Установить все», чтобы продолжить.

Вы сможете увидеть сообщение об успешной установке прямо на экране вывода.

Доступ к недавно добавленной библиотеке в версии 2.0 точно такой же, как в предыдущих версиях, 1.8.15 и ранее. Перейдите к «Включить библиотеку» в меню эскиза.

Как установить библиотеку Arduino путем автоматического импорта файла .ZIP?

Официальный сайт

Arduino содержит справочный список библиотек, доступных для загрузки и установки.Это те, которые появляются в соответствии с описанной выше процедурой.

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

Если вы хотите добавить свою собственную библиотеку, есть два варианта: создать ее или загрузить существующую библиотеку, которая была распространена в виде папки .ZIP. Мы остановимся на втором способе, так как он проще.

Если вы хотите настроить стороннюю библиотеку в Arduino IDE, вам нужно поискать ее в Интернете. GitHub - хорошее место для их поиска. В нем более 100 примеров. Мы выбрали следующий пример для Machine Control.

Пример библиотеки Zip-файлов Arduino доступен на GitHub

Вам будет предложено загрузить zip-файл. Сохраните его на свой компьютер. Не разархивируйте его. На следующем шаге вы можете добавить zip-файл из «Скетч -> Включить библиотеку -> Добавить .ZIP-библиотеку».

Arduino Добавить библиотеку .ZIP

Для правильной загрузки не нужно распаковывать папку. ZIP-файл обычно содержит все, что вам нужно для кодирования, включая любые примеры использования, если их предоставил автор.Если ошибок программирования нет, он автоматически синхронизируется с Arduino IDE.

.ZIP файл, импортированный в библиотеку Arduino

Вернитесь в меню «Эскиз -> Включить библиотеку». Теперь вы должны увидеть импортированную библиотеку файлов .ZIP в списке библиотек Arduino.

После того, как вы щелкнете по соответствующей библиотеке Arduino .ZIP, импортированную библиотеку .ZIP-файла теперь можно будет просмотреть в окне эскиза.

Как вручную установить загруженную библиотеку Arduino?

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

Теперь закройте программное обеспечение Arduino IDE и перейдите в папку «Библиотеки» в расположении программного обеспечения Arduino. Здесь вы можете добавить извлеченную главную папку, как показано здесь.

Сводка

Библиотеки

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

Теперь, когда мы узнали, как добавлять библиотеки в Arduino IDE, вы можете захотеть изменить новые темы фона, которые будут красочными и более приятными для глаз.

Связанный:

Саяк Борал

IoT-зависимых с начала 2016 года. Люблю изучать проблемы, возможности и понимание тенденций того, что становится третьей волной Интернета.

Как установить Blynk Library для Arduino IDE

Blynk Library устанавливает связь между вашим оборудованием, Blynk Cloud и Blynk Apps.

Есть несколько способов установить библиотеку Blynk для Arduino IDE:

  1. Использование встроенного менеджера библиотек в Arduino IDE

  2. Установка библиотеки Blynk в виде ZIP-файла в Arduino IDE

  3. вручную установить Blynk Library

Чтобы установить новую библиотеку в вашу среду разработки Arduino, вы можете использовать диспетчер библиотек (доступен в среде IDE версии 1.6.2). Откройте среду IDE и щелкните меню «Эскиз», а затем выберите Включить библиотеку> Управление библиотеками .

Затем откроется Диспетчер библиотек, и вы найдете список библиотек, которые уже установлены или готовы к установке. Найдите библиотеку Blynk и в списке версий выберите самую последнюю на сегодняшний день версию.

Наконец, нажмите «Установить» и дождитесь, пока среда IDE установит новую библиотеку. Загрузка может занять некоторое время в зависимости от скорости вашего подключения.По завершении рядом с библиотекой Bridge должен появиться тег Installed. Вы можете закрыть менеджер библиотеки.

Теперь вы можете найти новую библиотеку, доступную в меню «Скетч»> «Включить библиотеку».

Библиотека Blynk доступна в виде загружаемого ZIP-файла. Начиная с Arduino IDE версии 1.0.5, вы можете устанавливать сторонние библиотеки в IDE.

Загрузите библиотеку Blynk, нажав кнопку:

☝️Не распаковывайте загруженную библиотеку, оставьте ее как есть.

  1. В среде Arduino IDE перейдите к Sketch> Включить библиотеку> Добавить библиотеку .ZIP . В верхней части раскрывающегося списка выберите параметр «Добавить .ZIP-библиотеку».

  2. Вернитесь в меню «Эскиз »> «Включить библиотеку» . Теперь вы должны увидеть библиотеку в нижней части раскрывающегося списка. -вниз меню. Он готов к использованию в вашем скетче. ZIP-файл будет развернут в папке библиотек в вашем каталоге скетчей Arduino.

Библиотека будет доступна для использования в эскизах, но в более старых версиях IDE примеры библиотеки не будут отображаться в меню «Файл»> «Примеры» до тех пор, пока не будет перезапущена среда IDE.

Загрузите последний файл Blynk_Release_vXX.zip со страницы GitHub:

  1. Распакуйте архив Blynk_Release_vXX.zip . Вы заметите, что архив содержит несколько папок и несколько библиотек.

  2. Скопируйте все эти библиотеки в папку вашего скетчбука из Arduino IDE .

Чтобы найти , где находится папка вашего альбома для набросков , , перейдите в верхнее меню в Arduino IDE:
Windows: Файл → Настройки
Mac OS: Настройки Arduino

Структура вашего папка с альбомом теперь должна выглядеть так, вместе с другими вашими эскизами (если они у вас есть):

  your_sketchbook_folder / libraries / Blynk 
your_sketchbook_folder / libraries / BlynkESP8266_Lib
...
your_sketchbook_folder / tools / BlynkUpdater
your_sketchbook_folder / tools / BlynkUsbScript
...

☝️ Обратите внимание, что

  • библиотеки библиотеки должен перейти к инструментам

  • Если у вас нет библиотек или папок инструментов , вы можете создать их вручную.

Библиотеки Arduino управляются в трех разных местах: внутри установочной папки IDE, внутри основной папки и в папке библиотек внутри вашего альбом для рисования. Выбор библиотек во время компиляции позволяет обновлять библиотеки, присутствующие в дистрибутиве. Это означает, что размещение библиотеки в папке «библиотеки» в вашем альбоме отменяет другие версии библиотек.

То же самое происходит с библиотеками, присутствующими в установках дополнительных ядер.Также важно отметить, что версия библиотеки, которую вы добавляете в свой альбом для рисования, может быть ниже, чем версия библиотеки в дистрибутиве или основной папке, тем не менее, она будет той, которая будет использоваться во время компиляции. Когда вы выбираете конкретное ядро ​​для своей платы, библиотеки, имеющиеся в папке ядра, используются вместо тех же библиотек, имеющихся в папке распространения IDE.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *