Классы и объекты в Arduino

Краткий обзор возможностей объектно-ориентированного программирования в Arduino для начинающих.

Объектно-ориентированное программирование (ООП) основано на работе с объектами,
а не просто с данными, фунциями и переменными.

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

Рассмотрим использование ООП на примере использования датчика влажности почвы для работы
с проектом “Автоматический полив растений”.

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

 

Прежде чем создать объект, необходимо обозначить новый класс для объекта.

 

В самом простом варианте  наш объект содержит номер пина для считывания значений и значение датчика.

 

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

  •      название_объекта.pin = … ;      // присвоить значение для pin
  •      … = название_объекта.data ;    // считать значение data

 

 

Чтобы объект мог действовать, а не только хранить в себе данные, добавим в описание класса некоторые функции.

 

Класс нового типа объектов задан. Теперь можно создать наш собственный объект нового класса.

Мы создали объект water класса Sensor.
Теперь зададим номер пина, к которому подключен наш сенсор.

A0 – константа, которая содержит порядковый номер пина, соответствующий аналоговому пину A0 платы Arduino.
Раздел начальных установок теперь будет выглядеть следующим образом:

 

Если выполнить для объекта команду water.read(), то значение датчика можно получить из переменной water.data.

Используем для чтения данных последовательный порт.
Полностью программа теперь выглядит так:

 

Эта программа достаточно простая, чтобы понять основной принцип создания классов и объектов при программировании Ардуино.
Код можно усовершенствовать дополнив возможности класса.

 

 

Продолжение следует…