2025 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2025-01-13 06:57
מערכת הבית 3000 היא מכשיר המשתמש Arduino, חיישן טמפרטורה, זמזם פיזו, גלאי אופטי/פוטו טרנזיסטור וסרוו כדי להציג דרכים לשיפור יעילות האנרגיה הביתית.
שלב 1: חיישן טמפרטורה
· הפעל את חוטי החשמל והארקה שלך
בקר המיקרו בצד לוח הלחם
· הנח את חיישן הטמפרטורה בלוח הלחם והפעל את חוטי החשמל והארקה המתאימים בהתאם
· שימו לב כי לחיישן הטמפרטורה יש שלושה שיניים, ולחוט האמצעי יש חוט העובר מהנמל "A0".
· קוד לחיישן טמפרטורה:
answer = questdlg ('אנא הפעל קוד התחלה של arduino ו- servo', 'תגובה', 'אישור', 'אישור')
prompt = 'לחץ על מקש כלשהו כדי להתחיל'
הַפסָקָה
prompt1 = 'הגדר טמפרטורה מינימלית'
x = קלט (הודעה 1)
prompt2 = 'הגדר טמפרטורה מרבית'
y = קלט (prompt2)
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-seconds (15) t]);
datetick ('x', 'keeplimits')
ציור
בדוק את מצב העצירה
stop = 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', 'Libraries', 'Servo');
prompt = 'הגדר סף רמת אור'
z = קלט (הנחיה)
lightLevel = 0
בעוד lightLevel ~ = -1
lightLevel = readVoltage (a, 'A1')
אם lightLevel> = z
answer = questdlg ('האם תרצה לשנות את AC?', 'כן', 'לא')
החלף תשובה
מקרה 'כן'
answer2 = questdlg ('להפוך את AC למעלה או למטה?', 'תגובה', 'למטה', 'למעלה', 'למעלה')
החלף תשובה 2
מקרה 'למטה'
s = סרוו (א, 'D10');
לזווית = 0:.1:.5
writePosition (ים, זווית);
current_position = readPosition (ים);
current_position = current_position * 180;
% הדפס מיקום נוכחי של מנוע סרוו
fprintf ('המיקום הנוכחי הוא %d / n', המיקום הנוכחי);
נדרש עיכוב קטן בכדי שניתן יהיה למקם את הסרוו
% זווית אמרו לו.
הפסקה (2);
סוֹף
% להחזיר את המנוע למצב זווית 0
writePosition (ים, 0);
ברור s
prompt = 'לחץ על מקש כלשהו כדי להמשיך'
questdlg ('דחיית AC', 'תגובה', 'אישור', 'אישור')
מקרה 'למעלה'
s = סרוו (א, 'D10');
לזווית =.5:.1: 1
writePosition (ים, זווית);
current_position = readPosition (ים);
current_position = current_position * 180;
% הדפס מיקום נוכחי של מנוע סרוו
fprintf ('המיקום הנוכחי הוא %d / n', המיקום הנוכחי);
נדרש עיכוב קטן בכדי שניתן יהיה למקם את הסרוו
% זווית אמרו לו.
הפסקה (2);
סוֹף
שלב 4: סרוו
· הסרוו מייצג
מזגן, והוא פלט של קלט זיהוי התנועה
· זה דורש חוט חיובי, חוט הארקה וחוט מיציאה "D9" לסרוו
· קוד סרוו:
% להחזיר את המנוע למצב זווית 0
writePosition (ים, 0);
ברור s
prompt = 'לחץ על מקש כלשהו כדי להמשיך'
questdlg ('מופעל AC', 'תגובה', 'אישור', 'אישור')
סוֹף
סוֹף
הַפסָקָה
לשבור
סוֹף
סוֹף
*הערה מיוחדת: חלק מהקוד לסרוו משולב בקוד לגלאי/פוטו טרנזיסטור אופטי.