- הסבר עבודה:
- רכיבים:
- תִכנוּת:
- עיצוב מעגלים ו- PCB באמצעות EasyEDA:
- חישוב והזמנת דוגמאות PCB באופן מקוון:
בפרויקט זה אנו נשתמש במיקרו-בקר PIC כדי לשלוט מרחוק בכמה עומסי זרם-חשמל רק באמצעות שלט רחוק. פרויקט דומה אוטומציה ביתית בשלט רחוק IR כבר נעשה עם Arduino, אך כאן תכננו אותו על גבי PCB באמצעות מעצב וסימולטור ה- PCB המקוון של EasyEDA, והשתמשנו בשירותי ה- PCB שלהם להזמנת לוחות PCB כפי שמוצג בחלק הבא של מאמר.
בסוף פרויקט זה תוכלו להחליף (הפעלה / כיבוי) כל עומס זרם חילופין באמצעות שלט רגיל מהנוחות של הכיסא / המיטה שלכם. כדי להפוך את הפרויקט הזה למעניין יותר, אפשרנו גם תכונה לבקרת מהירות המאוורר בעזרת Triac. את כל אלה ניתן לעשות בלחיצות פשוטות על שלט ה- IR שלך. אתה יכול להשתמש בכל אחד משלט הטלוויזיה / DVD / MP3 שלך עבור פרויקט זה. אותות ה- IR השונים מהשלט מתקבלים על ידי המיקרו-בקר אשר שולט בממסרים בהתאמה באמצעות מעגל דרייבר ממסר. ממסרים אלה משמשים לחיבור וניתוק של עומסי AC (אורות / מאוורר).
הסבר עבודה:
העבודה של פרויקט זה די פשוטה להבנה. כשלוחצים על כפתור בשלט הרחוק IR הוא שולח רצף של קוד בצורת פעימות מקודדות באמצעות תדר של 38Khz. פעימות אלה מתקבלות על ידי חיישן TSOP1738 ואז נקראות על ידי הבקר. הבקר מפענח את הרכבת המתקבלת של הפולסים לערך hex ומשווה אותה לערכי ה- hex שהוגדרו מראש בתוכנית שלנו.
אם מתרחשת התאמה כלשהי, הבקר מבצע פעולה יחסית על ידי הפעלת הממסר / Triac בהתאמה והתוצאה המתאימה מסומנת גם על ידי נוריות הלוח. כאן בפרויקט זה השתמשנו בארבע נורות (נורות קטנות) בצבעים שונים שכן עומסי תאורה ונורה אחרת (נורה גדולה יותר) נחשבת כמניפה לצורך הדגמה.
בחרנו במקש 1 כדי להחליף את הממסר 1, 2 כדי להחליף את הממסר 2, 3 כדי להחליף את הממסר 3, 4 כדי להחליף את הממסר 4, ואת Vol + כדי להגדיל את מהירות המאוורר ואת Vol- כדי להפחית את מהירות המאוורר.
הערה: כאן השתמשנו בנורת 100 וואט במקום מאוורר.
ישנם סוגים רבים של שלטי IR זמינים עבור מכשירים שונים, אך רובם עובדים סביב תדר 38KHz. כאן בפרויקט זה אנו שולטים במכשירי חשמל ביתיים באמצעות שלט רחוק לטלוויזיה IR ולאיתור אותות ה- IR אנו משתמשים במקלט IR TSOP1738. חיישן TSOP1738 זה יכול לחוש אות תדר של 38 קילו-הרץ. העבודה של שלט ה- IR וה- TSOP1738 מכוסה בפירוט במאמר זה: משדר ומקלט IR
המיקרו-בקר PIC שלנו פועל ב- + 5V והממסרים פועלים ב- + 12V, ולכן אנו משתמשים בשנאי להורדת זרם ה- 220V AC ולתקן אותו באמצעות מיישר גשר מלא. מתח DC מתוקן זה מווסת לאחר מכן ל- + 12V ו- + 5V באמצעות הרגולטור ICs 7812 ו- 7805 בהתאמה.
כדי להפעיל את הממסר אנו משתמשים בטרנזיסטורים כמו BC547 שיכולים לשמש כמתג אלקטרוני להפעלת / כיבוי הממסרים בהתבסס על האות ממיקרו-בקר PIC. בהמשך לשליטה על מהירות המאוורר אנו משתמשים ב- TRIAC. TRIAC הוא מוליך למחצה כוח המסוגל לשלוט על מתח המוצא; יכולת זו משמשת לשליטה על מהירות המאוורר.
השתמשנו גם במנהל התקן Triac כדי לשלוט בטריאק באמצעות מיקרו-בקר PIC שלנו. נהג זה משמש למתן דופק זווית ירי לטריאק, כך שניתן יהיה לשלוט על הספק המוצא. כאן השתמשנו בבקרת מהירות ברמה 6. כאשר הרמה היא 0 אז המאוורר יהיה כבוי. כאשר הרמה תהיה 1 אז המהירות תהיה 1/5 מהמהירות המלאה. כאשר הרמה תהיה 2 אז המהירות תהיה 2/5 מהמהירות המלאה ובהתאמה לאחרים. ניתן לעקוב אחר הרמה הנוכחית של המהירות באמצעות תצוגת 7-קטעים המובנית.
תרשים הבלוקים של הפרויקט מוצג להלן.
רכיבים:
המרכיבים הנדרשים לבניית פרויקט זה מובאים להלן:
- PIC18f2520 מיקרו-בקר -1
- TSOP1738 -1
- שלט רחוק לטלוויזיה / DVD IR -1
- טרנזיסטור BC547 -4
- ממסרים 12 וולט -4
- נורה עם מחזיק -5
- חוטי חיבור -
- PCB EasyEda -1
- LCD בגודל 16x2
- ספק כוח 12 וולט
- מחבר מסוף 2 פינים `-8
- מחבר מסוף 3 פינים -1
- שנאי 12-0-12 -1 -
- וסת מתח 7805 -1
- וסת מתח 7812 -1
- קבל 1000 על -1
- קבל 10uf -1
- קבלים 0.1uf -1
- קבלים 0.01uf 400V `-1
- 10k -5
- 1k -5
- 100 אוהם -7
- קטע קתודה משותף -1
- דיודת 1n4007 -10
- BT136 טריאק -1
- כותרת זכר / נקבה -
- נוריות -6
- מצמד אופטי moc3021 -1
- מצמד אופטי mtc2e או 4n35 -1
- גביש 20Mhz -1
- קבלים 33pf -2
- דיודת זנר 5.1 v -1
- נגן 47 אוהם 2 וואט -1
נעשה שימוש נפוץ בכל הרכיבים הללו וניתן לרכוש אותם בקלות. עם זאת, אם אתה מחפש קנייה טובה ביותר באינטרנט, אנו ממליצים לך על LCSC.
LCSC היא חנות מקוונת נהדרת לרכישת רכיבי האלקטרוניקה שלכם לכל מיני פרויקטים. הם כוללים כ 25,000 סוגים של רכיבים והדבר הטוב ביותר הוא שהם מוכרים אפילו פריטי כמות קטנה לפרויקטים קטנים ויש להם גם משלוח גלובלי.
פענוח שלט ה- IR:
כפי שנאמר קודם, אתה יכול להשתמש בכל סוג שלט עבור הפרויקט שלך. אבל עלינו לדעת לאיזה סוג אות נוצר מאותו שלט מסוים. עבור כל מפתח בודד בשלט הרחוק יהיה ערך HEX שווה ערך עבור אותו מפתח. באמצעות ערך HEX זה נוכל להבחין בין כל מקש בצד המיקרו-בקר שלנו. לכן לפני שנחליט להשתמש בשלט רחוק עלינו לדעת את ערך HEX עבור המקשים שהוגדרו מראש באותו שלט מסוים. בפרויקט זה השתמשנו בשלט NEC. ערכי HEX עבור המקשים בשלט רחוק NEC מובאים להלן.
כפי שאתה יכול להבחין בערך HEX יש 7 תווים שמתוכם רק שני האחרונים שונים, ולכן אנו יכולים לשקול רק את שתי הספרות האחרונות כדי להבחין בין כל מקשים.
תרשים מעגל:
סכמטי הפרויקט מוצגים להלן.
הסכימה לעיל הופכת לקלה באמצעות עורך סכמטי esayEDA מכיוון שהם מספקים את הפריסות של כל הרכיבים המשמשים בפרויקט זה. זה גם לא דורש התקנה וניתן להשתמש בו באופן מקוון תוך כדי תנועה.
פינות הערך והרכיב מוגדרים בבירור בתרשים לעיל. ניתן גם להוריד את הקובץ הסכמטי מכאן.
תִכנוּת:
התוכנית לפרויקט זה נעשית באמצעות MPLABX, הקוד גם די פשוט וקל להבנה. הקוד השלם יינתן בסוף הדרכה זו, כמה נתחים חשובים של התוכנית מוסברים להלן.
בתחילת הקוד עלינו לכלול ספריות נדרשות, להגדיר את הסיכות ולהצהיר על המשתנים.
#לִכלוֹל
לאחר מכן, יצרנו פונקציית השהיה פשוטה באמצעות לולאת "עבור".
עיכוב חלל (זמן int) {עבור (int i = 0; i
לאחר מכן, אתחזנו את הטיימר באמצעות הפונקציה הבאה
חלל טיימר () // 10 -> 1us {T0PS0 = 0; T0PS1 = 0; T0PS2 = 0; PSA = 0; // מקור שעון הטיימר הוא מ- Prescaler T0CS = 0; // Prescaler מקבל שעון מ- FCPU (5MHz) T08BIT = 0; // 16 BIT MODE TMR0IE = 1; // אפשר TIMER0 הפסקה PEIE = 1; // אפשר הפרעה היקפית GIE = 1; // אפשר INTs ברחבי העולם TMR0ON = 1; // עכשיו התחל את הטיימר! }
כעת בפונקציה הראשית, אנו נותנים הנחיות לסיכות שנבחרו ומפעילים אתחול טיימר והפרעה חיצונית int0 כדי לזהות מעבר אפס.
ADCON1 = 0b00001111; TRISB1 = 0; TRISB2 = 1; TRISB3 = 0; TRISB4 = 0; TRISB5 = 0; TRISC = 0x00; TRISA = 0x00; PORTA = 0xc0; TRISB6 = 0; RB6 = 1; ממסר 1 = 0; ממסר 2 = 0; ממסר 3 = 0; ממסר 4 = 0; rly1LED = 0; rly3LED = 0; rly2LED = 0; rly4LED = 0; fanLED = 0; i = 0; ir = 0; tric = 0; שָׁעוֹן עֶצֶר(); INTEDG0 = 0; // הפרעה בשולי נפילה INT0IE = 1; // אפשר את ההפרעה החיצונית INT0 (RB0) INT0IF = 0; // מנקה את INT0 דגל הפרעה חיצוני קצת PEIE = 1; // אפשר הפרעה היקפית GIE = 1; // הפעל INTs ברחבי העולם
עכשיו, כאן אנו לא משתמשים בשום מצב הפסקה או לכידה והשוואה כדי לזהות אות IR. כאן השתמשנו בדיוק בסיכה דיגיטלית לקריאת נתונים בדיוק כמו שקראנו כפתור לחיצה. בכל פעם שהאות הולך גבוה או נמוך אנחנו פשוט שמים שיטת שיפוץ ומריצים את הטיימר. בכל פעם שהסיכה משנה את מצבה לאחר, ערכי הזמן יישמרו במערך.
שלט רחוק IR לשלוח לוגיקה 0 כ 562.5 us ולוגיקה 1 כ 2250 us. בכל פעם שטיימר קורא סביב 562.5us אז אנו מניחים שהוא 0 וכאשר הטיימר קורא סביב 2250us אז אנו מניחים את זה כ 1. ואז אנו ממירים אותו בהקס.
האות הנכנס מהשלט מכיל 34 ביטים. אנו מאחסנים את כל הבתים במערך ואז מפענחים את הבייט האחרון לשימוש.
ואילו (ir == 1); INT0IE = 0; ואילו (ir == 0); TMR0 = 0; ואילו (ir == 1); i ++; dat = TMR0; אם (dat> 5000 && dat <12000) {} אחר {i = 0; INT0IE = 1; } אם (i> = 33) {GIE = 0; עיכוב (50); cmd = 0; עבור (j = 26; j <34; j ++) {if (dat> 1000 && dat <2000) cmd << = 1; אחרת אם (dat> 3500 && dat <4500) {cmd- = 0x01; cmd << = 1; }} cmd >> = 1;
פיסת הקוד הנ"ל מקבלת ומפענחת את אות ה- IR באמצעות טיימר קוטע ומאחסן את ערך ה- HEX המתאים ב- cmd המשתנה. כעת אנו יכולים להשוות ערך HEX זה (משתנה cmd) לערכי ה- HEX המוגדרים מראש ולהחליף את הממסר כמוצג להלן.
אם (cmd == 0xAF) {ממסר 1 = ~ ממסר 1; rly1LED = ~ rly1LED; } אחרת אם (cmd == 0x27) {ממסר 2 = ~ ממסר 2; rly2LED = ~ rly2LED; } אחרת אם (cmd == 0x07) {ממסר 3 = ~ ממסר 3; rly3LED = ~ rly3LED; } אחר אם (cmd == 0xCF) {ממסר 4 = ~ ממסר 4; rly4LED = ~ rly4LED; } אחרת אם (cmd == 0x5f) {מהירות ++; אם (מהירות> 5) {מהירות = 5; }} אחרת אם (cmd == 0x9f) {מהירות--; אם (מהירות <= 0) {מהירות = 0; }}
עכשיו כדי לדעת באיזה אופן פועל המאוורר שלנו, עלינו להשתמש בתצוגה בת 7 קטעים. השורות הבאות משמשות להוראות הפינים של התצוגה בת 7 החלקים.
אם (מהירות == 5) // כבוי 5x2 = 10ms טריגר // מהירות 0 {PORTA = 0xC0; // להציג 0 RB6 = 1; fanLED = 0; } אחרת אם (speed == 4) // 8 ms trigger // speed 1 {PORTA = 0xfc; // מציג 1 RB6 = 1; fanLED = 1; } אחרת אם (מהירות == 3) // טריגר 6 ms // מהירות 2 {PORTA = 0xE4; // מציג 2 RB6 = 0; fanLED = 1; } אחר אם (מהירות == 2) // טריגר 4ms // מהירות 3 {PORTA = 0xF0; // מציג 3 RB6 = 0; fanLED = 1; } אחר אם (speed == 1) // 2ms trigger // speed 4 {PORTA = 0xD9; // מציג 4 RB6 = 0; fanLED = 1; } אחר אם (מהירות == 0) // 0ms טריגר // מהירות 5 הספק מלא {PORTA = 0xD2; // מציג 5 RB6 = 0; fanLED = 1; }
הפונקציה שלהלן מיועדת להפרעה חיצונית ולהצפת זמן. פונקציה זו אחראית לגילוי אפס מעבר והסעת הטריאק.
הפרעה בטלה isr () {if (INT0IF) {עיכוב (מהירות); tric = 1; עבור (int t = 0; t <100; t ++); tric = 0; INT0IF = 0; } אם (TMR0IF) // בדוק אם מדובר ב- TMR0 הצפת ISR {TMR0IF = 0; }}
ה- PCB הסופי לאוטומציה ביתית נשלטת מרחוק זה נראה כמוצג להלן:
עיצוב מעגלים ו- PCB באמצעות EasyEDA:
לתכנון אוטומציה ביתית זו לשלט רחוק השתמשנו ב- EasyEDA שהוא כלי EDA מקוון בחינם ליצירת מעגלים ו- PCB בצורה חלקה. בעבר הזמנו מעט מעגלי PCB מ- EasyEDA ועדיין השתמשנו בשירותיהם מכיוון שמצאנו את כל התהליך, החל משרטוט המעגלים ועד להזמנת ה- PCB, נוחים ויעילים יותר בהשוואה ליצרני PCB אחרים. EasyEDA מציעה ציור מעגלים, סימולציה, עיצוב PCB בחינם ומציעה שירות PCB מותאם אישית באיכות גבוהה אך במחיר נמוך. בדוק כאן להדרכה המלאה כיצד להשתמש ב- EDA קל לייצור סכימות, פריסות PCB, הדמיית מעגלים וכו '.
EasyEDA משתפרת מיום ליום; הם הוסיפו תכונות חדשות רבות ושיפרו את חוויית המשתמש הכוללת, מה שהופך את EasyEDA לקלה יותר ושמישה לעיצוב מעגלים. בקרוב הם עתידים להשיק את גרסת שולחן העבודה שלה, שניתן להוריד ולהתקין במחשב שלך לשימוש לא מקוון.
ב- EasyEDA, תוכלו להפוך את עיצובים המעגלים וה- PCB שלכם לציבוריים כך שמשתמשים אחרים יוכלו להעתיק או לערוך אותם ויוכלו להפיק תועלת משם. הפכנו גם את כל פריסות המעגל וה- PCB לציבוריות עבור אוטומציה ביתית זו לשלט רחוק.
להלן תמונת המצב של השכבה העליונה של פריסת ה- PCB מבית EasyEDA, באפשרותך להציג כל שכבה (למעלה, תחתון, טופסילק, חלק תחתון וכו ') של ה- PCB על ידי בחירת השכבה בחלון' שכבות '.
חישוב והזמנת דוגמאות PCB באופן מקוון:
לאחר השלמת העיצוב של PCB, תוכלו ללחוץ על סמל פלט הייצור , שייקח אתכם לדף הזמנת PCB. כאן תוכלו להציג את ה- PCB שלכם ב- Gerber Viewer או להוריד קבצי Gerber של ה- PCB שלכם ולשלוח אותם לכל יצרן, זה גם הרבה יותר קל (וזול יותר) להזמין אותו ישירות ב- EasyEDA. כאן תוכלו לבחור את מספר ה- PCB שאתם רוצים להזמין, כמה שכבות נחושת אתם צריכים, את עובי ה- PCB, את משקל הנחושת ואפילו את צבע ה- PCB. לאחר שבחרת את כל האפשרויות, לחץ על "שמור לעגלה" והשלם את הזמנתך, ואז תקבל את לוחות ה- PCB שלך תוך מספר ימים.
אתה יכול להזמין ישירות PCB זה או להוריד את קובץ גרבר באמצעות קישור זה.
לאחר מספר ימים של הזמנת PCB קיבלנו את ה- PCB. הלוחות שקיבלנו מוצגים להלן.
לאחר שקיבלנו את ה- PCB התקנתי את כל הרכיבים הנדרשים על גבי ה- PCB, ולבסוף יש לנו את האוטומציה הביתית בשלט רחוק מוכנה, בדוק את המעגל הזה עובד בסרטון הדגמה בסוף המאמר.