- רכיבים נדרשים
- תוכנה בשימוש
- משדר ומקלט RF 433MHz
- תרשים מעגל
- יצירת הפרויקט עבור Atmega 8 באמצעות CodeVision
- קוד והסבר
- העלה את הקוד ל- Atmega8
הפיכת הפרויקטים שלנו לאלחוטים גורמת לו להיראות מגניב ותמיד מרחיב את הטווח בו ניתן לשלוט בו. החל משימוש בנורת IR רגילה לשליטה אלחוטית למרחק קצר ועד ל- ESP8266 לבקרת HTTP עולמית, ישנן המון דרכים לשלוט במשהו באופן אלחוטי. בפרויקט זה אנו לומדים כיצד לבנות פרויקטים אלחוטיים באמצעות מודול RF 433 מגה הרץ ומיקרו בקר AVR.
בפרויקט זה אנו עושים את הדברים הבאים: -
- אנו משתמשים ב- Atmega8 עבור משדר ה- RF ו- Atmega8 עבור החלק של מקלט ה- RF.
- אנו מממשקים נורית LED ולחצן עם מיקרו-בקרי Atmega8.
- בצד המשדר אנו מממשקים את הלחצן עם אטמגה ומעבירים את הנתונים. בצד המקלט נקבל את הנתונים באופן אלחוטי ונציג את הפלט על נורית.
- אנו משתמשים בקודן ובמפענח IC להעברת נתונים של 4 סיביות.
- תדר הקבלה הוא 433Mhz באמצעות מודול RF TX-RX זול שקיים בשוק.
רכיבים נדרשים
- מיקרו בקר Atmega8 AVR (2)
- מתכנת USBASP
- כבל FRC עם 10 פינים
- לוח לחם (2)
- נוריות LED (2)
- לחצן לחצן (1)
- זוג HT12D ו- HT12E
- מודול RF RX-TX
- נגדים (10k, 47k, 1M)
- חוטי מגשר
- ספק כוח 5V
תוכנה בשימוש
אנו משתמשים בתוכנת CodeVisionAVR לכתיבת הקוד שלנו ובתוכנת SinaProg להעלאת הקוד שלנו ל- Atmega8 באמצעות מתכנת USBASP.
אתה יכול להוריד תוכנות אלה מהקישורים הנתונים:
CodeVisionAVR :
SinaProg:
לפני שנכנס לתרשימים וקודים, בואו נבין את פעולתו של מודול RF עם IC- מקודדים-מפענחים.
משדר ומקלט RF 433MHz
אלה מודולי המשדר והמקלט בהם אנו משתמשים בפרויקט. זהו המודול הזול ביותר הזמין עבור 433 מגה-הרץ. מודולים אלה מקבלים נתונים סדרתיים בערוץ אחד.
אם אנו רואים את המפרט של מודולים, המשדר מדורג עבור 3.5-12V פעולה כמו מתח הזנה ואת המרחק השידור הוא 20-200 מטר. הוא אכן משדר בפרוטוקול AM (Audio Modulation) בתדר 433 מגה הרץ. אנו יכולים להעביר נתונים במהירות של 4KB / S בהספק של 10mW.
בתמונה העליונה נוכל לראות את הצמד של מודול המשדר. משמאל לימין הסיכות הן VCC, DATA ו- GND. אנו יכולים גם להוסיף את האנטנה ולהלחין אותה על הנקודה המסומנת בתמונה לעיל.
עבור מפרט המקלט, כונס הנכסים יש דירוג של 5V DC ו 4mA רגיעה הנוכחי כקלט. תדר הקבלה הוא 433.92 מגהרץ עם רגישות -105DB.
בתמונה לעיל אנו יכולים לראות את הצמד של מודול המקלט. ארבעת הפינים הם משמאל לימין, VCC, DATA, DATA ו- GND. שני הפינים האמצעיים האלה מחוברים פנימית. אנו יכולים להשתמש בכל אחד או שניהם. אך נוהג להשתמש בשניהם להפחתת צימוד הרעשים.
כמו כן, דבר אחד אינו מוזכר בגיליון הנתונים, המשרן המשתנה או ה- POT באמצע המודול משמשים לכיול תדרים. אם לא היינו יכולים לקבל את הנתונים המשודרים, יש אפשרויות שהתדרים המשדרים והקבלים אינם מתאימים. זהו מעגל RF ועלינו לכוון את המשדר בנקודת התדר המועברת המושלמת. כמו כן, כמו המשדר, למודול זה יש גם יציאת אנטנה; אנו יכולים להלחין חוט בצורה מפותלת לקבלת פנים ארוכה יותר.
טווח השידור תלוי במתח המסופק למשדר ובאורך האנטנות בשני הצדדים. לפרויקט הספציפי הזה לא השתמשנו באנטנה חיצונית והשתמשנו ב -5 וולט בצד המשדר. בדקנו עם מרחק של 5 מטר וזה עבד בצורה מושלמת.
למידע נוסף על זוג RF במעגל משדר ומקלט RF. אתה יכול להבין יותר על העבודה של RF על ידי בדיקת הפרויקטים הבאים המשתמשים בזוג RF:
- רובוט מבוקר RF
- מעגל ממיר IR ל- RF
- נוריות RF בשלט רחוק באמצעות פטל פי
- מכשירי חשמל ביתיים מבוקרי RF
תרשים מעגל
דיאגרמת מעגל לצד משדר RF
- סיכה D7 של atmega8 -> Pin13 HT12E
- סיכה D6 של atmega8 -> Pin12 HT12E
- סיכה D5 של atmega8 -> Pin11 HT12E
- סיכה D4 של atmega8 -> Pin10 HT12E
- לחצן כדי להצמיד את B0 של אטמגה.
- נגד 1M-ohm בין pin15 ו- 16 של HT12E.
- Pin17 של HT12E לסיכת נתונים של מודול משדר RF.
- סיכה 18 של HT12E עד 5V.
- סיכה GND 1-9 וסיכה 14 של HT12E וסיכה 8 של Atmega.
תרשים מעגל לצד מקלט RF
- סיכה D7 של atmega8 -> Pin13 HT12D
- סיכה D6 של atmega8 -> Pin12 HT12D
- סיכה D5 של atmega8 -> Pin11 HT12D
- סיכה D4 של atmega8 -> Pin10 HT12d
- נורית לסיכה B0 של אטמגה.
- Pin14 של HT12D לסיכת נתונים של מודול מקלט RF.
- נגן 47Kohm בין pin15 ו- 16 של HT12D.
- סיכה GND 1-9 של HT12D וסיכה 8 של Atmega.
- נורית לסיכה 17 של HT12D.
- 5V עד סיכה 7 של אטמגה וסיכה 18 של HT12D.
יצירת הפרויקט עבור Atmega 8 באמצעות CodeVision
לאחר התקנת תוכנות אלה פעל לפי השלבים הבאים ליצירת קוד וכתיבת קוד:
שלב 1. פתח את CodeVision לחץ על קובץ -> חדש -> פרויקט . תיבת דו-שיח אישור תופיע. לחץ על כן
שלב 2. קוד אשף ייפתח. לחץ על אפשרות ראשונה כלומר AT90 ולחץ על אישור.
שלב 3. בחר את שבב המיקרו-בקר שלך, כאן ניקח את Atmega8 כפי שמוצג.
שלב 4: - לחץ על יציאות. בחלק המשדר, כפתור לחצן הוא הקלט שלנו ו -4 קווי נתונים מופלטים. אז עלינו לאתחל 4 פינים של אטמגה כפלט. לחץ על יציאה D. הפוך את סיבית 7, 6, 5 ו -4 כחוצה על ידי לחיצה עליו.
שלב 5: - לחץ על תוכנית -> צור, שמור ויצא . כעת, יותר ממחצית העבודה שלנו הושלמה
שלב 6: - הכינו תיקיה חדשה על שולחן העבודה כך שהקבצים שלנו יישארו בתיקיה אחרת היא תפוזר על כל חלון שולחן העבודה. תן שם לתיקייה שלך כרצונך ואני מציע להשתמש באותו שם כדי לשמור קבצי תוכנית.
נקיים שלוש תיבות דו-שיח אחת אחרי השנייה כדי לשמור קבצים. בצע את אותו הדבר בשתי תיבות דו-שיח אחרות שיופיעו לאחר שמירת הראשון.
עכשיו, סביבת העבודה שלך נראית ככה.
רוב העבודה שלנו הושלמה בעזרת הקוסם. עכשיו, עלינו לכתוב רק כמה שורות קוד לחלק המשדר והמקלט וזהו…
בצע את אותם השלבים כדי ליצור קבצים עבור חלק המקלט. בחלק המקלט, רק Led הוא הפלט שלנו, אז הפוך את B0 יציאה לסיבוב.
קוד והסבר
אנו נכתוב קוד להחלפת הנורה באופן אלחוטי באמצעות RF. הקוד המלא הן עבור Atmega בצד המשדר והן בצד המקלט ניתן בסוף מאמר זה.
קוד Atmega8 עבור משדר RF:
ראשית כלול קובץ כותרת delay.h כדי להשתמש בעיכוב בקוד שלנו.
#לִכלוֹל
כעת, בואו לשורות הקוד האחרונות בהן תמצאו לולאת זמן . הקוד העיקרי שלנו יהיה בלופ הזה.
ב- While loop, אנו נשלח 0x10 בתים ל- PORTD כשלוחצים על הכפתור ונשלח 0x20 כאשר לא לוחצים על הכפתור. אתה יכול להשתמש בכל ערך כדי לשלוח.
ואילו (1) { אם (PINB.0 == 1) { PORTD = 0x10; } אם (PINB.0 == 0) { PORTD = 0x20; } } }
קוד Atmega עבור מקלט RF
ראשית הכריזו על משתנים מעל הפונקציה העיקרית בטלה לאחסון תווים נכנסים ממודול RF.
#לִכלוֹל
עכשיו לבוא בעוד לולאה. בשנת לולאה זו, לאחסן בתים נכנסים למשתנת char בייט ולבדוק אם בייט נכנסת היא זהה אנו כותבים בין שאר המשדר שלנו. אם הבתים זהים, להפוך PortB.0 גבוה ולקחת NOT של PORTB.0 עבור החלפה את LED.
ואילו (1) {בת = PIND; אם (PIND.7 == 0 && PIND.6 == 0 && PIND.5 == 0 && PIND.4 == 1) { PORTB.0 = ~ PORTB.0; עיכוב_מס (1000); }}}
בנה את הפרויקט
הקוד שלנו הושלם. עכשיו, עלינו לבנות את הפרויקט שלנו . לחץ על בנה את סמל הפרויקט כפי שמוצג.
לאחר בניית הפרויקט, נוצר קובץ HEX בתיקיית Debug-> Exe אשר ניתן למצוא בתיקיה שיצרת בעבר כדי לשמור את הפרויקט שלך. נשתמש בקובץ HEX זה להעלאה ל- Atmega8 באמצעות תוכנת Sinaprog.
העלה את הקוד ל- Atmega8
חבר את המעגלים שלך על פי התרשים הנתון לתכנית Atmega8. חיבור הצד האחד של כבל FRC למתכנת USBASP והצד השני יתחבר לסיכות SPI של מיקרו-בקר כמתואר להלן:
- Pin1 של מחבר נקבה FRC -> Pin 17, MOSI של Atmega8
- סיכה 2 מחוברת ל- Vcc של atmega8 כלומר סיכה 7
- סיכה 5 מחוברת לאיפוס atmega8 כלומר סיכה 1
- סיכה 7 מחוברת ל- SCK של atmega8 כלומר סיכה 19
- סיכה 9 מחוברת ל- MISO של atmega8 כלומר סיכה 18
- סיכה 8 מחוברת ל- GND של atmega8 כלומר סיכה 8
חבר את הרכיבים הנותרים על לוח הלוח לפי תרשים המעגל ופתח את ה- Sinaprog.
אנו מעלים את קובץ ה- Hex שנוצר לעיל באמצעות ה- Sinaprog, לכן פתח אותו ובחר Atmega8 מהתפריט הנפתח של המכשיר. בחר את קובץ HEX מתיקיית Debug-> Exe כפי שמוצג.
כעת לחץ על תוכנית.
סיימת והמיקרו-בקר שלך מתוכנת. השתמש באותם שלבים כדי לתכנת אטמגה אחרת בצד המקלט.
הקוד וההדגמה המלאים מופיע להלן.