תוכן עניינים:
- שלב 1: תצורה
- שלב 2: הגדרת ממסרים
- שלב 3: בקר היסטריה
- שלב 4: בקר PID
- שלב 5: אוטובוס הודעות
- שלב 6: ליבס
וִידֵאוֹ: תרמוסטט המבוסס על ארדואינו: 6 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:17
הפעם אנו הולכים לבנות תרמוסטט המבוסס על Arduino, חיישן טמפרטורה וממסר. תוכלו למצוא ב- github
שלב 1: תצורה
כל התצורה מאוחסנת ב- Config.h. אתה יכול לשנות מספרים של שליטה על ממסרים, טמפרטורת קריאה, ספים או תזמונים.
שלב 2: הגדרת ממסרים
נניח שנרצה שיהיו לנו 3 ממסרים:
- מזהה: 0, PIN: 1, נקודת ערך טמפרטורה: 20
- מזהה: 1, PIN: 10, נקודת ערך טמפרטורה: 30
- מזהה: 2, PIN: 11, נקודת ערך טמפרטורה: 40
ראשית עליך לוודא ש- PIN לבחירתך לא נלקח כבר. ניתן למצוא את כל הסיכות ב- Config.h, הן מוגדרות על ידי משתנים המתחילים ב- DIG_PIN.
עליך לערוך את Config.h ולהגדיר מספר PIN, ספים וכמות ממסרים. ברור שכמה נכסים כבר קיימים, כך שעליך לערוך אותם.
const static uint8_t DIG_PIN_RELAY_0 = 1; const static uint8_t DIG_PIN_RELAY_1 = 10; const סטטי uint8_t DIG_PIN_RELAY_2 = 11;
const static uint8_t RELAYS_AMOUNT = 3;
const סטטי int16_t RELAY_TEMP_SET_POINT_0 = 20;
const static int16_t RELAY_TEMP_SET_POINT_1 = 30; const סטטי int16_t RELAY_TEMP_SET_POINT_2 = 40;
עכשיו עלינו להתקין ממסרים ובקר, זה קורה ב- RelayDriver.cpp
initRelayHysteresisController (0, DIG_PIN_RELAY_0, RELAY_TEMP_SET_POINT_0); initRelayHysteresisController (1, DIG_PIN_RELAY_1, RELAY_TEMP_SET_POINT_1); initRelayHysteresisController (2, DIG_PIN_RELAY_2, RELAY_TEMP_SET_POINT_2);
xxx
שלב 3: בקר היסטריה
זה הנבחר בדוגמה למעלה, יש לו מספר תצורות נוספות:
const static uint32_t RELAY_DELAY_AFTER_SWITCH_MS = 300000; // 5 דקות קונסט סטטי uint32_t RHC_RELAY_MIN_SWITCH_MS = 3600000;
RELAY_DELAY_AFTER_SWITCH_MS נותן זמן המתנה להחלפת ממסר הבא. תארו לעצמכם שתצורה מהדוגמה שלנו תתחיל לעבוד בסביבה של 40 מעלות. זה יביא לאפשר את כל שלושת הממסרים בו זמנית. זה יכול בסופו של דבר להוביל לצריכת חשמל גבוהה - תלוי במה אתה שולט, מנוע חשמלי למשל צורך יותר כוח במהלך ההתחלה. במקרה שלנו ממסרי מיתוג יש זרימה הבאה: ממסר ראשון עובר, חכה 5 דקות, השני ממשיך, חכה 5 דקות, השלישי ממשיך.
RHC_RELAY_MIN_SWITCH_MS מגדיר היסטריה, זו התדירות המינימלית של ממסר מסוים לשנות את מצבו. ברגע שהוא מופעל, הוא יישאר דולק לכל פרק הזמן הזה, תוך התעלמות משינויי טמפרטורה. זה שקט שימושי כי אתה שולט במנועים חשמליים, מכיוון שלכל מתג יש השפעה שלילית על זמן החיים.
שלב 4: בקר PID
זהו נושא מתקדם. יישום בקר כזה הוא משימה פשוטה, מציאת הגדרות משרעת נכונות זה סיפור אחר.
על מנת להשתמש בבקר PID עליך לשנות initRelayHysteresisController (…..) ל- initRelayPiDController (…) ועליך למצוא את ההגדרות הנכונות עבורו. כרגיל תמצא אותם ב- Config.h
יישמתי סימולטור פשוט ב- Java, כך שניתן יהיה לדמיין את התוצאות. ניתן למצוא אותו בתיקייה: pidsimulator. להלן תוכל לראות סימולציות לשני בקרי PID ו- P. PID אינו יציב לחלוטין מכיוון שלא יישמתי אלגוריתם מתוחכם כדי למצוא ערכים נכונים.
בשתי החלקות הטמפרטורה הנדרשת מוגדרת ל- 30 (כחול). הטמפרטורה הנוכחית מציינת את שורת הקריאה. ממסר יש שני מצבים ON ו- OFF. כשהוא מופעל הטמפרטורה יורדת ב -1.5, כשהוא מושבת היא עולה ב -0.5.
שלב 5: אוטובוס הודעות
מודולי תוכנה שונים צריכים לתקשר זה עם זה, בתקווה שלא לשני הכיוונים;)
לדוגמה:
- מודול הסטטיסטיקה צריך לדעת מתי ממסר מסוים נמשך ונכבה,
- לחיצה על כפתור חייבת לשנות את תוכן התצוגה והיא גם חייבת להשעות שירותים שיצרוך הרבה מחזורי מעבד, למשל קריאת טמפרטורה מהחיישן,
- לאחר זמן מה יש לחדש את קריאת הטמפרטורה,
- וכן הלאה….
כל מודול מחובר ל- Message Bus ויכול להירשם לאירועים מסוימים, ויכול להפיק אירועים כלשהם (תרשים ראשון).
בתרשים השני אנו יכולים לראות את זרימת האירוע בלחיצת כפתור.
לחלק מהרכיבים יש כמה משימות ממה שצריך לבצע מעת לעת. נוכל לקרוא לשיטות המתאימות שלהם מהלולאה הראשית, מכיוון שיש לנו Message Bus, יש צורך רק בהפצת אירוע נכון (תרשים שלישי)
שלב 6: ליבס
- https://github.com/maciejmiklas/Thermostat
- https://github.com/milesburton/Arduino-Temperature…
- https://github.com/maciejmiklas/ArdLog.git
מוּמלָץ:
משגר רקטות המבוסס על -אלקסה: 9 שלבים (עם תמונות)
משגר רקטות מבוסס קול מבוסס אלקסה: ככל שעונת החורף מתקרבת; מגיע באותה תקופה בשנה שבה חוגגים את חג האורות. כן, אנחנו מדברים על דיוואלי שהוא פסטיבל הודי אמיתי שנחגג ברחבי העולם. השנה, דיוואלי כבר נגמר, ורואים אנשים
עץ אלקטרונים המבוסס על עץ חג המולד: 8 שלבים
רכיבים אלקטרונים המבוססים על עץ חג המולד: שלום וברוכים הבאים חזרה !!! בתור חובב אלקטרוני. אני תמיד רואה בדברים או בפסטיבלים /הזדמנויות הזדמנות לעשות כמה דברים חדשניים מאלקטרוניקה. עם זאת חג המולד מתקרב. חשבתי להכין עץ חג המולד ב
שינוי צבע המבוסס על הטיה קלה להחלפת מנורת הקוביה האלחוטית של רוביק: 10 שלבים (עם תמונות)
שינוי צבע המבוסס על הטיה קלה להחלפת מנורת הקוביה האלחוטית של רוביק: היום אנו הולכים לבנות את המנורה המדהימה הזו של רוביק, שמשנה את הצבע בהתאם לאיזה צד למעלה. הקוביה פועלת על סוללת LiPo קטנה, הנטענת בכבל מיקרו-USB סטנדרטי, ובבדיקות שלי יש לה חיי סוללה של מספר ימים. זֶה
מתג ממסר IOT המבוסס על Arduino המבוסס על קול (Google Home ותמיכה ב- Alexa): 11 שלבים
מתג ממסר IOT המבוסס על Arduino המבוסס על קול (Google Home ו- Alexa נתמך): פרויקט זה מתאר כיצד ליצור מתג ממסר IOT מבוסס Arduino, נשלט בקול. זהו ממסר שניתן להפעיל ולכבות מרחוק באמצעות אפליקציה ל- iOS ולאנדרואיד, וכן לקשור אותו ל- IFTTT ולשלוט בו באמצעות הקול שלך באמצעות Goog
מעקב קל אחר והימנעות מרובוט המבוסס על ארדואינו: 5 שלבים
מעקב אחר אור והימנעות מרובוט המבוסס על Arduino: זהו פרויקט פשוט שעוקב אחר או הימנע מ Light.I עשיתי את הסימולציה הזו ב- Proteus 8.6 pro. רכיבים נדרשים: -1) Arduino uno.2) 3 LDR.3) 2 Dc Gear Motors. 4) סרוו אחד .5) שלושה נגדים 1k.6) אחד H-Bridge l290D7) אחד על & מתג כיבוי [f