Оглавление:

EF 230: Home System 3000: инструкции: 4 шага
EF 230: Home System 3000: инструкции: 4 шага

Видео: EF 230: Home System 3000: инструкции: 4 шага

Видео: EF 230: Home System 3000: инструкции: 4 шага
Видео: Приказ комиссара. Warhammer 40k 2024, Июль
Anonim
EF 230: Домашняя система 3000 с инструкциями
EF 230: Домашняя система 3000 с инструкциями

Home System 3000 - это устройство, которое использует Arduino, датчик температуры, пьезозуммер, оптический детектор / фототранзистор и сервопривод для отображения способов повышения энергоэффективности дома.

Шаг 1: датчик температуры

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

· Прокладывайте провода питания и заземления от

микроконтроллер сбоку от макета

· Поместите датчик температуры в макетную плату и проложите соответствующие провода питания и заземления соответственно.

· Обратите внимание, что датчик температуры имеет три контакта, а средний контакт имеет провод, идущий от порта «A0».

· Код датчика температуры:

answer = questdlg ('Пожалуйста, запустите код запуска Arduino и сервопривода', 'ответ', 'Хорошо', 'Хорошо')

prompt = 'Нажмите любую клавишу, чтобы начать'

Пауза

prompt1 = 'Установить минимальную температуру'

x = ввод (подсказка1)

prompt2 = 'Установить максимальную температуру'

y = ввод (подсказка2)

prompt3 = 'нажмите любую клавишу, чтобы начать'

Пауза

фигура

h = анимированная линия;

ax = gca;

ax. YGrid = 'вкл';

ax. YLim = [65 85];

стоп = ложь;

startTime = datetime ('сейчас');

пока ~ стоп

% Прочитать текущее значение напряжения

v = readVoltage (a, 'A0');

% Рассчитать температуру по напряжению (на основе техпаспорта)

TempC = (v - 0,5) * 100;

TempF = 9/5 * TempC + 32;

% Получить текущее время

t = datetime ('сейчас') - startTime;

% Добавить очки к анимации

добавочные точки (h, datenum (t), TempF)

% Обновить оси

ax. XLim = datenum ([t-секунды (15) t]);

datetick ('x', 'keeplimits')

нарисованный

% Проверить состояние остановки

стоп = readDigitalPin (a, 'D12');

Шаг 2: зуммер

Зуммер
Зуммер

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

· Никакой провод не проходит от положительной колонки к положительной стороне зуммера.

· Вместо этого провод идет от положительной стороны зуммера к порту с меткой «11».

Это будет использоваться позже для вызова местоположения зуммера в написанном коде.

· Код для зуммера:

если TempF> = y

disp ('закрой дверь, жарко')

playTone (a, 'D11', 500, 1)

elseif TempF <= x

disp ('закрой дверь, холодно')

playTone (a, 'D11', 250, 1)

конец

конец

Шаг 3: оптический детектор / фототранзистор

Оптический детектор / фототранзистор
Оптический детектор / фототранзистор

· Этот датчик требует резисторов в отличие от других

· Убедитесь, что все четыре контакта датчика включены в петлю после подключения проводов.

· Датчик обнаруживает изменение света, представляющее движение, и записывает его в качестве входного сигнала.

· Код для оптического детектора / фототранзистора:

очистить

a = arduino ('/ dev / tty.usbserial-DN01DVI2', 'Uno', 'Библиотеки', 'Сервопривод');

prompt = 'Установить порог уровня освещенности'

z = ввод (подсказка)

lightLevel = 0

в то время как lightLevel ~ = -1

lightLevel = readVoltage (a, 'A1')

если lightLevel> = z

answer = questdlg ('хотите изменить AC?', 'Да', 'Нет')

переключить ответ

case 'Да'

answer2 = questdlg ('Увеличить или уменьшить кондиционер?', 'response', 'Вниз', 'Вверх', 'Вверх')

переключить ответ2

case 'Down'

s = сервопривод (a, 'D10');

для угла = 0:.1:.5

writePosition (s, angle);

current_position = readPosition (s);

текущая_позиция = текущая_позиция * 180;

% распечатать текущее положение серводвигателя

fprintf ('Текущая позиция% d / n', current_position);

% требуется небольшая задержка, чтобы сервопривод мог быть установлен на

% угол сказал ему.

пауза (2);

конец

% вернуть двигатель в положение 0 угла

writePosition (s, 0);

очистить s

prompt = 'Нажмите любую клавишу, чтобы продолжить'

questdlg ('кондиционер отключен', 'ответ', 'хорошо', 'хорошо')

case 'Up'

s = сервопривод (a, 'D10');

для угла =.5:.1: 1

writePosition (s, angle);

current_position = readPosition (s);

текущая_позиция = текущая_позиция * 180;

% распечатать текущее положение серводвигателя

fprintf ('Текущая позиция% d / n', current_position);

% требуется небольшая задержка, чтобы сервопривод мог быть установлен на

% угол сказал ему.

пауза (2);

конец

Шаг 4: сервопривод

Сервопривод
Сервопривод

· Сервопривод представляет

кондиционер, и является выходом входа обнаружения движения

· Требуется положительный провод, провод заземления и провод от порта "D9" к сервоприводу.

· Код сервопривода:

% вернуть двигатель в положение 0 угла

writePosition (s, 0);

очистить s

prompt = 'Нажмите любую клавишу, чтобы продолжить'

questdlg ('кондиционер включен', 'ответ', 'хорошо', 'хорошо')

конец

конец

Пауза

перерыв

конец

конец

* Специальное примечание: часть кода сервопривода интегрирована с кодом оптического детектора / фототранзистора.

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