Мазмұны:

EF 230: Үй жүйесі 3000 Нұсқауға болады: 4 қадам
EF 230: Үй жүйесі 3000 Нұсқауға болады: 4 қадам

Бейне: EF 230: Үй жүйесі 3000 Нұсқауға болады: 4 қадам

Бейне: EF 230: Үй жүйесі 3000 Нұсқауға болады: 4 қадам
Бейне: 5 ШЫНАЙЫ FACEBOOK БАЗАРЫНЫҢ ҚОРЫҚТЫ ӘҢГІМЕЛЕРІ 2024, Шілде
Anonim
EF 230: Үй жүйесі 3000 нұсқаулық
EF 230: Үй жүйесі 3000 нұсқаулық

Home System 3000 - бұл Arduino, температура сенсоры, пьезо -дыбыстық сигнал, оптикалық детектор/фототранзистор және үйдегі энергия тиімділігін жоғарылату жолдарын көрсететін серво пайдаланатын құрылғы.

1 -қадам: температура сенсоры

Температура сенсоры
Температура сенсоры

· Қуат пен жерге қосу сымдарын қосыңыз

нан тақтасының бүйіріндегі микроконтроллер

· Температура сенсорын нан тақтасына салыңыз және сәйкесінше қуат пен жерге қосу сымдарын қосыңыз

· Назар аударыңыз, температура сенсорында үш түйреуіш бар, ал ортаңғы түйісте «А0» портынан өтетін сым бар.

· Температура сенсорының коды:

answer = questdlg ('arduino мен servo іске қосу кодын іске қосыңыз', 'жауап', 'Ok', 'Ok')

prompt = 'Бастау үшін кез келген пернені басыңыз'

кідірту

prompt1 = 'Минималды температураны орнату'

x = енгізу (шақыру1)

prompt2 = 'Максималды температураны орнату'

y = енгізу (шақыру2)

prompt3 = 'бастау үшін кез келген пернені басыңыз'

кідірту

фигура

h = анимациялық желі;

ax = gca;

ax. YGrid = 'қосулы';

ax. YLim = [65 85];

тоқтату = жалған;

startTime = datetime ('қазір');

while ~ stop

% Ток кернеуінің мәнін оқу

v = readVoltage (a, 'A0');

% Кернеуден температураны есептеңіз (мәліметтер парағына негізделген)

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

TempF = 9/5*TempC + 32;

% Ағымдағы уақытты алыңыз

t = datetime ('қазір') - startTime;

% Анимацияға нүкте қосыңыз

қосылу нүктелері (h, datenum (t), TempF)

% Осьтерді жаңарту

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

деректерді таңдау ('x', 'keeplimits')

сызылған

% Тоқтау күйін тексеріңіз

stop = readDigitalPin (a, 'D12');

2 -қадам: Дыбыстық сигнал

Зумер
Зумер

· Дыбыстық сигналдың жоғары немесе өте төмен температураның көрсеткішін беру үшін қолданылатын сымы

· Оң колонкадан дыбыстық сигналдың оң жағына дейін сым өтпейді

· Оның орнына дыбыстық сигналдың оң жағынан «11» деп белгіленген портқа дейін сым өтеді.

Бұл кейінірек дыбыстық сигналдың орналасқан жерін жазбаша кодқа шақыру үшін қолданылады.

· Дыбыстық сигналдың коды:

егер TempF> = y болса

дисп («есікті жабыңыз, бұл ыстық»)

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

elseif TempF <= x

дисп («есікті жабыңыз, ол суық»)

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 ('айнымалы токты өзгерткіңіз келе ме?', 'Иә', 'Жоқ')

жауапты ауыстыру

жағдай «Иә»

answer2 = questdlg ('Айнымалы токты жоғарылату немесе төмендету?', 'жауап', 'Төмен', 'Жоғары', 'Жоғары')

жауапты ауыстыру2

«Төмен» жағдайы

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

бұрыш үшін = 0:.1:.5

writePosition (лар, бұрыш);

current_position = readPosition (s);

current_position = current_position * 180;

Серво қозғалтқышының ағымдағы орнын басып шығару %

fprintf ('Ағымдағы позиция - %d / n', ағымдағы_позиция);

Серводаны орнында орналастыру үшін % кішкене кідіріс қажет

% бұрышы.

үзіліс (2);

Соңы

% қозғалтқышты 0 бұрыштық күйге қайтарады

writePosition (лар, 0);

анық с

prompt = 'Жалғастыру үшін кез келген пернені басыңыз'

questdlg ('айнымалы ток өшірілді', 'жауап', 'жақсы', 'жақсы')

«Жоғары» жағдайы

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

бұрыш үшін =.5:.1: 1

writePosition (лар, бұрыш);

current_position = readPosition (s);

current_position = current_position * 180;

Серво қозғалтқышының ағымдағы орнын басып шығару %

fprintf ('Ағымдағы позиция - %d / n', ағымдағы_позиция);

Серводаны орнында орналастыру үшін % кішкене кідіріс қажет

% бұрышы.

үзіліс (2);

Соңы

4 -қадам: Серво

Серво
Серво

· Серво білдіреді

кондиционер және қозғалысты анықтау кірісінің шығысы болып табылады

· Ол үшін оң сым, жерге қосылған сым және «D9» портынан сервоприводқа дейін сым қажет

· Серво коды:

% қозғалтқышты 0 бұрыштық күйге қайтарады

writePosition (лар, 0);

анық с

prompt = 'Жалғастыру үшін кез келген пернені басыңыз'

questdlg ('айнымалы ток қосылды', 'жауап', 'жақсы', 'жақсы')

Соңы

Соңы

кідірту

үзіліс

Соңы

Соңы

*Ерекше ескерту: серво кодының бір бөлігі оптикалық детектордың/фототранзистордың кодымен біріктірілген.

Ұсынылған: