Мы уже сталкивались с библиотеками (например, когда подключали матричную клавиатуру), настало время познакомиться с ними поближе.
Библиотеки Arduino - это части программы для выполнения конкретных задач.
С помощью библиотек можно выполнять сложные действия всего парой строк кода,
потому что эта часть кода уже была написана ранее, вами или кем-то еще.
использование библиотек облегчает подключение к датчикам, дисплеям, модулям и
т.д. Например, встроенная библиотека LiquidCrystal позволяет легко работать с
символьными ЖК-дисплеями. Есть сотни дополнительных библиотек, доступных в
интернете для скачивания. Чтобы использовать дополнительные библиотеки, нужно
будет их установить.
В Tinkercad уже установлен набор библиотек:
Использование диспетчера библиотек.
Чтобы установить новую библиотеку в Arduino IDE, вы можете использовать
менеджер библиотек (доступно начиная с версии 1.8.0). Откройте IDE и перейдите
в меню "Скетч", а затем включите "Подключить библиотеку" -> "Управление
библиотеками".
Библиотеки часто распространяются в виде ZIP-файла или папки. Название папки
является Наименованием библиотеки. Внутри папки будет файл .cpp, файл .h и
часто Файл Keywords.txt, папка примеров и другие файлы, необходимые для
библиотеки. Начиная с версии 1.0.5 вы можете устанавливать сторонние библиотеки
в IDE. Можно не разархивировать библиотеку, оставить как есть.
В Arduino IDE выберите "Скетч" -> "Подключить библиотеку". В верхней части,
в раскрывающемся списке выберите параметр "Добавить .ZIP-библиотеку".
Чтобы установить библиотеку, сначала закройте приложение Arduino. Затем
распакуйте ZIP-файл, содержащий библиотеку. Например, если вы устанавливаете
библиотеку с именем "ArduinoParty", разархивируйте ArduinoParty.zip. Он должен
содержать папку, которая называется ArduinoParty, с файлами внутри
ArduinoParty.cpp и ArduinoParty.h. (Если Файлы .cpp и .h не находятся в папке,
вам нужно их создать. В этом случае вы создайте папку с именем "ArduinoParty" и
перемещаете в нее все файлы, которые были в ZIP-файле, такие как
ArduinoParty.cpp и ArduinoParty.h.)
Перетащите папку ArduinoParty в вашу папку скетчей Arduino.
Под Windows, скорее всего, эта папка будет в "Мои документы/Arduino/library".
Для пользователей Mac, скорее всего, он будет называться
"Documents/Arduino/library". В Linux это будет папка "library" в вашем альбоме.
Ваша папка библиотеки Arduino теперь должна выглядеть так (в Windows):
C:/Program Files/Arduino/libraries/ArduinoParty/ArduinoParty.cpp
C:/Program Files/Arduino/libraries/ArduinoParty/ArduinoParty.h
C:/Program Files/Arduino/libraries/ArduinoParty/keywords.txt
на Mac и Linux:
Documents/Arduino/libraries/ArduinoParty/ArduinoParty.cpp
Documents/Arduino/libraries/ArduinoParty/ArduinoParty.h
Documents/Arduino/libraries/ArduinoParty/keywords.txt
Может быть больше файлов, чем просто .cpp и .h, просто убедитесь, что они все
там. (Библиотека не будет работать, если вы поместите файлы .cpp и .h прямо в
папка библиотеки или если они вложены в дополнительную папку. Например:
"Документы/Arduino/library/ArduinoParty.cpp" и
"Документы/Arduino/library/ArduinoParty/ArduinoParty/ArduinoParty.cpp не будут
работать.)
Перезапустите приложение Arduino. Убедитесь, что новая библиотека появляется в
"Скетч" -> "Подключить библиотеку". Всё!
Создание собственной библиотеки
В качестве примера рассмотрим программу, которая генерирует сигнал SOS кодом
Морзе.
Азбука Морзе названа в честь американского изобретателя и художника Сэмюэля
Морзе. В азбуке Морзе буква или любой другой символ, кодируется уникальной
комбинацией длинных и коротких тональных посылок, точек и тире.
За единицу времени принимается длительность одной точки. Длительность тире
равна трём точкам. Пауза между элементами одного знака - одна точка, между
знаками в слове - 3 точки, между словами - 7 точек.
Чтобы посмотреть как работает программа, нужно подключить пьезоизлучатель к
Arduino, согласно схеме:
int d=100; int pin=13; void setup() { pinMode(13, OUTPUT); } void loop() { tone(pin, 1000, d); delay(2*d); tone(pin, 1000, d); delay(2*d); tone(pin, 1000, d); delay(4*d); tone(pin, 1000, 3*d); delay(4*d); tone(pin, 1000, 3*d); delay(4*d); tone(pin, 1000, 3*d); delay(6*d); tone(pin, 1000, d); delay(2*d); tone(pin, 1000, d); delay(2*d); tone(pin, 1000, d); delay(4*d); delay(7*d); }Даже для токого простого трехбуквенного сообщения программа довольно громоздкая. А если нужно передать сообщение из нескольких десятков или сотен символов?
/* здесь размещают информацию о разработчике и инструкцию для пользователя */ #include "Arduino.h" // включение стандартных функций Ардуино void MorseS(int pin, int d); // функция генерирующая букву S void MorseO(int pin, int d); // функция генерирующая букву O
/* здесь размещают информацию о разработчике и инструкцию для пользователя */ #include "Arduino.h" // включение стандартных функций Ардуино и заголовочного файла #include "Morse.h" void MorseS(int pin, int d) { tone(pin, 1000, d); delay(2*d); tone(pin, 1000, d); delay(2*d); tone(pin, 1000, d); delay(4*d); } void MorseO(int pin, int d) { tone(pin, 1000, 3*d); delay(4*d); tone(pin, 1000, 3*d); delay(4*d); tone(pin, 1000, 3*d); delay(6*d); }
Morse KEYWORD1 MorseS KEYWORD1 MorseO KEYWORD1
#include < Morse.h> int pin=13; int d=100; void setup() { pinMode(13, OUTPUT); } void loop() { MorseS(pin, d); // pin - номер порта, d - длительность точки MorseO(pin, d); MorseS(pin, d); delay(7*d); }