![](/user_photo/70702_HIvw5.jpg)
- •О прохождении учебной (технологической) практики на кафедре Сетевых информационных технологий и сервисов (сиТиС)
- •Индивидуальное задание по учебной (технологической) практике
- •Выполнение индивидуального задания Предметная область. Er-диаграмма
- •Макета устройства
- •Принцип работы устройства
- •Работа цепи. Интерфейс устройства.
- •Программная часть
- •Заключение
- •Список использованных источников
Программная часть
Для работы с ЖК-Экраном понадобится подключить специальную библиотеку «LiquidCrystal».
Рисунок 9 – Подключение библиотеки
Далее происходит объявление переменных
Рисунок 10 - Объявление переменных
Переменные R1, R2, diviver и Vref нужны для определения напряжения на аккумуляторе с помощью делителя напряжения. Массив batLevels содержит в себе значения пороговых напряжений аккумулятора. Это будет необходимо для определения степени заряда. Переменная button будет использоваться для записи в нее информации о состоянии кнопки. Так же объявляется экран (lcd).
Все прошивки для Arduino должны содержать минимум 2 функции: setup() и loop().
Функция setup() выполняется в самом начале и только один раз, сразу после включения или перезагрузки устройства. Содержание функции setup() представлено на рисунке 11.
Рисунок 11 - Функция setup()
Для работы данной модели в функции setup() находятся подфункции Serial.begin(), lcd.begin() и Serial.println() .
Функция Serial begin позволяет установить микроконтроллеру соединение с внешними устройствами. В качестве аргументов указывается скорость обмена данными через последовательный порт. Самым распространенным значением является 9600 – именно такая скорость обмена данными в мониторе порта Arduino IDE стоит по умолчанию. После выполнения функции Arduino будет способна как отправлять данные на внешние устройства, так и получать их.
Serial.println() выводит указанную информацию на монитор последовательного интерфейса и переводит указатель на следующую строку.
Функция .begin() – это функция библиотеки «LiquidCrystal», подключенной ранее. Она позволяет установить микроконтроллеру соединение с экраном. В качестве аргументов указывается разрешение дисплея.
Функция loop() выполняется после функции setup(). Функция зациклена, то есть будет выполняться снова и снова. Содержание функции loop представлено на рисунке 6.
Рисунок 4 - Функция loop()
В этом коде особенно интересна функции analogReference(). Она определяет опорное напряжение относительно которого происходят аналоговые измерения. Функция analogRead() возвращает значение с разрешением 10 бит пропорционально входному напряжению на аналоговом входе, и в зависимости от опорного напряжения.
С аргументом DEFAULT (стандартное опорное напряжение 5 В или 3.3 В) функция используется для считывания значения на фоторезисторе, а с аргументом INTERNAL (встроенное опорное напряжение 1.1 В или 2.56 В, в зависимости от микроконтроллера) для считывания значения с делителя напряжения и использования этого числа в дальнейших расчетах.
Функция delay() используется после считывания состояния кнопки для того, чтобы избежать ошибок в случае залипания. Она задерживает программу на 0.5с.
Программный код и работу макета можно посмотреть по ссылке - https://www.tinkercad.com/things/80pOFf60x7w-praktika.
Заключение
Итак, в процессе выполнения учебной (технологической) практики было изучено создание устройств на основе Arduino, а именно была составлена схема устройства, регулирующего зарядку аккумулятора от солнечной батареи, а также придуман и реализован необходимый для ее работы алгоритм.