Void setup(){}
Void loop()
{
morse.dot(); morse.dot(); morse.dot();
morse.dash(); morse.dash(); morse.dash();
morse.dot(); morse.dot(); morse.dot();
delay(3000);
}
По сравнению с предыдущей версией в программе появилось несколько отличий (кроме того факта, что часть кода перенесена в библиотеку).
Во-первых, мы добавили оператор #include в начало программы, который включает библиотеку Morse в отправляемый плате код. Поэтому, если в программе библиотека больше не используется, желательно удалить #include для экономии памяти микроконтроллера.
Во-вторых, теперь мы создаем экземпляр класса Morse с именем morse:
Morse morse(13);
При выполнении этой строки (а фактически, это произойдет даже до функции setup()) будет вызван конструктор класса Morse, которому будет передан указанный здесь аргумент (в данном случае 13).
Обратите внимание, что теперь наша функция setup() пуста, поскольку вызов pinMode() в данном случае происходит внутри библиотеки (при создании экземпляра класса).
Ну и наконец, вызов функций dot() и dash() теперь необходимо предварять префиксом morse. - именем того экземпляра, который мы хотим использовать. Мы можем создать несколько экземпляров класса Morse, каждый со своим выводом, хранимым во внутренней переменной _pin только в пределах этого экземпляра. Указывая определенный экземпляр класса при вызове функции, мы тем самым задаем, переменными какого экземпляра должна оперировать та или иная функция. То есть, если у нас два экземпляра:
Morse morse(13);
Morse morse2(12);
то внутри функции morse2.dot() переменная _pin будет равна 12.
При написании новой программы, вы, наверняка заметите, что среда разработки не распознает и не подсвечивает элементы созданной нами библиотеки. К сожалению, IDE Ардуино не умеет автоматически распознавать и интерпретировать то, что мы объявили внутри библиотеки (кстати, было бы хорошо добавить эту функцию), поэтому ей нужно немного помочь. Для этого создайте файл keywords.txtв директории Morse и запишите в него следующее:
Morse KEYWORD1
dash KEYWORD2
dot KEYWORD2
Каждая строка должна содержать ключевое слово, символ табуляции (не пробелы) и тип ключевого слова. Классы подсвечиваются оранжевым и должны иметь тип KEYWORD1; функции - коричневым и должны быть типа KEYWORD2. Для того, чтобы внесенные изменения вступили в силу, необходимо перезапустить среду Ардуино.
Также неплохо было бы снабдить библиотеку примером работы с ней. Для этого, создайте папку examples в директории Morse и переместите (либо скопируйте) в нее папку с нашей программой (назовем ее SOS). (Отыскать программу можно с помощью командыSketch > Show Sketch Folder). Если вы перезапустите среду Ардуино (честно слово, это в последний раз) - то увидите пункт Library-Morse в меню File > Sketchbook > Examples с вашим примером. Можете добавить немного комментариев, объясняющих, как пользоваться вашей библиотекой.
