Добавил:
при поддержке музыки группы Anacondaz Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет по практике 2 курс.docx
Скачиваний:
30
Добавлен:
07.05.2023
Размер:
477.26 Кб
Скачать

Программная часть

Для работы с ЖК-Экраном понадобится подключить специальную библиотеку «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, а именно была составлена схема устройства, регулирующего зарядку аккумулятора от солнечной батареи, а также придуман и реализован необходимый для ее работы алгоритм.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]