Оглавление:

Модель кондиционера Arduino: 6 шагов
Модель кондиционера Arduino: 6 шагов

Видео: Модель кондиционера Arduino: 6 шагов

Видео: Модель кондиционера Arduino: 6 шагов
Видео: Проблема Управление кондиционером с arduino 2024, Июль
Anonim
Модель кондиционера Arduino
Модель кондиционера Arduino

В рамках демонстрации способности нашей команды создать модель интеллектуального поезда для маркетинговых целей, цель состояла в том, чтобы создать систему, в которой датчик температуры считывает данные из цепи и преобразует информацию в значение температуры, которое одновременно отображается на экране с подсветкой и указывает, включается или выключается вентилятор. Цель состоит в том, чтобы помочь приспособиться к условиям движения пассажиров с помощью автоматизированной системы, которая также отображает температуру в непосредственной близости.

Используя комплект микроконтроллеров Arduino и MATLAB версий 2016b и 2017b, мы смогли продемонстрировать эти результаты с относительным успехом.

Шаг 1: оборудование

Оборудование
Оборудование

Комплект микроконтроллера со следующим:

-Sparkfun Красная Доска

-Sparkfun Макет

-ЖК-плата

-Потенциометр

-Датчик температуры

-Серво

-USB / Arduino адаптер

-Провода перемычки (минимум 25)

Ноутбук (Windows 10) с USB-входом

Объект, напечатанный на 3D-принтере (необязательно)

Шаг 2: Настройка микроконтроллера

Настройка микроконтроллера
Настройка микроконтроллера
Настройка микроконтроллера
Настройка микроконтроллера
Настройка микроконтроллера
Настройка микроконтроллера
Настройка микроконтроллера
Настройка микроконтроллера

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

Изображения каждой отдельной модели можно найти в руководстве по набору инструментов для микроконтроллера или на его веб-сайте

Начните с прикрепления датчика температуры, потенциометра, серворазъемов и ЖК-дисплея к плате. Из-за размера ЖК-дисплея и требований к количеству проводов для него рекомендуется размещать его на отдельной половине макета, а другие части - на другой половине, а потенциометр должен находиться в зоне, доступной кому-либо. легко повернуть ручку.

Для справки:

ЖК-дисплей: c1-16

Сервопривод: i1-3 (GND + -)

Датчик температуры: i13-15 (- GND +)

Потенциометр: g24-26 (- GND +)

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

Подключение потенциометра к ЖК-дисплею: f25 - e3

Провод сервопривода GND: j1 - цифровой вход 9

Земля датчика температуры: j14 - аналоговый вход 0

ЖК-входы: e11-e15 - цифровой вход 2-5

e4 - Цифровой вход 7

e6 - Цифровой вход 6

(Примечание: в случае успеха оба индикатора на краю ЖК-дисплея должны мигать, и потенциометр может помочь отрегулировать его яркость после подачи питания от адаптера.)

Необязательно: объект, напечатанный на 3D-принтере, использовался как часть требования. Чтобы избежать потенциального повреждения более хрупких деталей, вокруг ЖК-дисплея был помещен удлиненный корпус в качестве рукава. Размеры ЖК-экрана оказались приблизительно 2-13 / 16 "x 1-1 / 16" x 1/4 ", и, таким образом, была значительно изменена только высота. Если 3D-принтер легко доступен, подумайте о добавлении личного объекта, хотя и не требуется. Также имейте в виду, что измерения могут отличаться.

Шаг 3: Настройка MATLAB

Настройка MATLAB
Настройка MATLAB
Настройка MATLAB
Настройка MATLAB

Установите более обновленную версию MATLAB (2016a и новее), доступную на веб-сайте MathWorks https://www.mathworks.com/products/matlab.html?s_tid=srchtitle. После открытия перейдите в Add-Ons на вкладке Home и загрузите «Пакет поддержки MATLAB для оборудования Arduino», чтобы команды микроконтроллера были доступны.

После завершения можно провести тест, чтобы определить возможность подключения микроконтроллера к компьютеру / ноутбуку. Подключив их с помощью USB-адаптера из набора инструментов, вставьте команду «fopen (serial ('nada'))».

Появится всплывающее сообщение об ошибке с указанием коннектора как «COM #», который потребуется для создания объекта Arduino, если это все время один и тот же ввод.

Поскольку ЖК-дисплей не имеет прямого подключения к библиотеке Arduino, необходимо создать новую библиотеку для отображения сообщений. Рекомендуется создать файл LCDAddon.m из примера ЖК-дисплея, найденного в окне справки MATLAB после поиска «Arduino LCD» и помещения его в папку + arduinoioaddons, или использовать прикрепленную сжатую папку и скопировать все ее содержимое в вышеупомянутый папка.

В случае успеха код для создания объекта Arduino в MATLAB будет таким, как показано ниже.

a = arduino ('com #', 'uno', 'библиотеки', 'ExampleLCD / LCDAddon');

Шаг 4: Функции

Функции
Функции
Функции
Функции

Создайте функцию MATLAB. Для входов мы используем переменные «eff» и «T_min»; для выходных данных мы использовали переменную «B», хотя она и не нужна в общем дизайне, как способ хранения данных из результатов. Вход «eff» позволяет управлять максимальной скоростью сервопривода, а вход «T_min» регулирует желаемую минимальную температуру. Таким образом, значение «B» должно создать матрицу, содержащую три столбца для времени, температуры и эффективности вентилятора. Кроме того, в качестве бонуса к деталям приведенный ниже код также имеет оператор if, в котором скорость вентилятора будет снижена на пятьдесят процентов, когда она приблизится к желаемой минимальной температуре.

Если все входы и перемычки размещены точно и предполагается, что порт подключения Arduino - COM4, а имя функции - «fanread», следующего кода должно быть достаточно:

функция [B] = fanread (Tmin, eff)

очистить; очистить ЖК-дисплей; a = arduino ('com4', 'uno', 'библиотеки', 'ExampleLCD / LCDAddon');

t = 0; t_max = 15; % времени в секундах

lcd = addon (a, 'ExampleLCD / LCDAddon', {'D7', 'D6', 'D5', 'D4', 'D3', 'D2'});

initializeLCD (lcd, «Строки», 2, «Столбцы», 2);

если eff> = 1 || е <0

error ('Вентилятор не включится, если eff не установлен между 0 и 1.')

конец

для t = 1:10% количество петель / интервалов

очистить c; % предотвратить повторение ошибки

v = readVoltage (a, 'A0');

TempC = (v-0,5) * 100; % оценка для диапазонов напряжения 2,7-5,5 В

если TempC> Tmin, если TempC

c = ['Temp', num2str (TempC, 3), 'C On'];

writePWMDutyCycle (a, 'D9', eff / 2); % включить сервопривод на половинной скорости

spd = 50;

еще

c = ['Temp', num2str (TempC, 3), 'C On'];

writePWMDutyCycle (a, 'D9', эфф); % включить сервопривод на заданной скорости

spd = 100;

конец

еще

c = ['Temp', num2str (TempC, 3), 'C Off'];

writePWMDutyCycle (a, 'D9', 0); % выключить, если уже включен

spd = 0;

конец

printLCD (lcd, c);

пауза (3); % три секунды на цикл

время (t) = t. * 3;

tempplot (t) = TempC;

act (t) = spd;

подзаговор (2, 1, 1)

plot (time, tempplot, 'b-o')% линейный график

ось ([0 33 0 40])

xlabel ('Время (секунды)')

ylabel ('Температура (C)')

Подожди

сюжет ([0 33], [Tmin Tmin], 'r-')

Подожди

сюжет ([0 33], [Tmin + 2 Tmin + 2], 'g-')

подзаговор (2, 1, 2)

столбик (время, действие)% гистограмма

xlabel ('Время (секунды)')

ylabel ('Эффективность (%)')

конец

B = транспонировать ([время; темп; действие]);

конец

Теперь, когда функция завершена, пора протестировать.

Шаг 5: Тестирование

Тестирование
Тестирование
Тестирование
Тестирование

Теперь проверьте функцию в командном окне, вставив «имя_функции (input_value_1, input_value_2)» и наблюдайте. Убедитесь, что объект Arduino еще не существует; если это так, используйте команду "clear a", чтобы удалить его. В случае возникновения ошибок проверьте, не установлены ли какие-либо разъемы в неправильном месте или используются неправильные цифровые или аналоговые входы. Ожидается, что результаты будут разными, хотя это может быть вызвано размещением определенных перемычек и датчика температуры.

Ожидаемые результаты должны привести к изменениям в работе сервопривода и данных на ЖК-дисплее. Каждые три секунды в строке текста должна отображаться температура в градусах Цельсия, а также информация о том, работает ли вентилятор, когда вентилятор работает на полной скорости, половинной скорости или без скорости. Данные, скорее всего, не должны быть согласованными, хотя, если вы хотите получить более разнообразные результаты, поместите значение «Tmin» рядом со средней температурой, производимой схемой.

Шаг 6: Заключение

Заключение
Заключение

Хотя это была трудная задача, которую нужно было выполнить методом проб и ошибок, окончательные результаты оказались довольно интересными и удовлетворительными. Система как таковая помогает проиллюстрировать, сколько сложных машин или даже некоторых их частей можно рассматривать как набор независимых частей, соединенных вместе для достижения определенной цели.

Из-за довольно упрощенного дизайна окончательного проекта те, кто заинтересован в улучшении его производительности, могут вносить в конечный продукт настройки и изменения, которые могут сделать проект лучше и более продуманным. Тем не менее, это обнаруживает слабые места в схеме, такие как активация сервопривода, что приводит к спорадическим колебаниям показаний напряжения схемы, что может привести к тому, что система никогда не выдаст идентичные результаты. Кроме того, были проблемы с отображением изменения скорости сервопривода, когда "eff" установлено 0,4 и выше. Если бы использовался датчик температуры и влажности, окончательная модель была бы более сложной, но с более согласованными значениями. Тем не менее, это опыт, который показывает, что сложная машина может функционировать как комбинация своих простых частей.

Рекомендуемые: