בפרויקט זה אנו הולכים לממשק LDR עם מיקרו-בקרת ATMEGA8, ובאמצעותו אנו יכולים למדוד את עוצמת האור באזור. ב- ATMEGA8 נשתמש בתכונה 10bit ADC (אנלוגי להמרה דיגיטלית) כדי למדוד את עוצמת האור.
Am LDR הוא מתמר שמשנה את התנגדותו כאשר האור נופל על פני השטח שלו משתנה. חיישן LDR זמין בגדלים וצורות שונות.
LDRs מיוצרים מחומרים מוליכים למחצה כדי לאפשר להם לקבל את המאפיינים הרגישים לאור שלהם. ישנם סוגים רבים של חומרים המשמשים, אך אחד מהם פופולרי הוא CADMIUM SULPHIDE (CdS). אלה LDRs או PHOTO REISTORS עובדים על העיקרון של "מוליכות תמונות". עכשיו מה שעיקרון זה אומר הוא בכל פעם שאור נופל על פני ה- LDR (במקרה זה) מוליכות האלמנט גוברת או במילים אחרות ההתנגדות של ה- LDR פוחתת כאשר האור נופל על פני ה- LDR. תכונה זו של ירידת ההתנגדות ל- LDR מושגת מכיוון שהיא תכונה של חומר מוליך למחצה המשמש על פני השטח. LDR משמשים לרוב לזיהוי נוכחות של אור או למדידת עוצמת האור.
ישנם סוגים שונים של LDR כפי שמוצג באיור לעיל ולכל אחד מהם מפרטים שונים. בדרך כלל ל- LDR יהיה 1MΩ-2MΩ בחושך מוחלט, 10-20KΩ ב- 10 LUX, 2-5KΩ ב- 100 LUX. ההתנגדות האופיינית לגרף LUX של LDR מוצגת באיור.
כפי שמוצג באיור לעיל, ההתנגדות בין שני המגעים של החיישן פוחתת בעוצמת האור או שהמוליכות בין שני מגעים של החיישן עולה.
עכשיו להמרת שינוי התנגדות זה לשינוי מתח, אנו נשתמש במעגל מחלק מתח. ברשת התנגדות זו יש לנו התנגדות קבועה אחת והתנגדות משתנה אחרת. כפי שמוצג באיור, R1 כאן הוא התנגדות קבועה ו- R2 הוא חיישן FORCE אשר פועל כהתנגדות.
נקודת האמצע של הענף נלקחת למדידה. כאשר ההתנגדות R2 משתנה, ה- Vout משתנה איתו באופן ליניארי. אז עם זה יש לנו מתח שמשתנה עם המשקל.
כעת חשוב לציין שכאן, הקלט שנלקח על ידי הבקר לצורך המרת ADC הוא נמוך עד 50µAmp. אפקט טעינה זה של מחלק מתח מבוסס התנגדות חשוב מכיוון שהזרם הנובע מ- Vout של מחלק המתח מגדיל את אחוז השגיאה עולה, לעת עתה איננו צריכים לדאוג להשפעת הטעינה.
מה שאנחנו הולכים לעשות כאן זה שנקח שני נגדים ויצור מעגל מפריד כך שעבור 25 וולט וולט נקבל וולט 5 וולט. אז כל שעלינו לעשות הוא להכפיל את ערך ה- Vout עם "5" בתוכנית על מנת לקבל את מתח הכניסה האמיתי.
רכיבים
חומרה: ATMEGA8, ספק כוח (5 וולט), מתכנת AVR-ISP, JHD_162ALCD (16 * 2LCD), קבלים 100uF, קבלים 100nF (5 יח '), נגד 10KΩ, LDR (נגד תלוי אור).
תוכנה מתקדמת : Atmel studio 6.1, פרוגיספ או קסם פלאש.
תרשים מעגלים והסבר עבודה
במעגל PORTD של ATMEGA8 מחובר ליציאת נתונים LCD. ב 16 * 2 LCD יש 16 פינים בכל אם יש תאורה אחורית, אם אין אור אחורי יהיו 14 פינים. אפשר להפעיל או להשאיר את סיכות התאורה האחורית. עכשיו ב -14 הפינים ישנם 8 פינים נתונים (7-14 או D0-D7), 2 פינים לאספקת חשמל (1 & 2 או VSS & VDD או GND & + 5V), סיכה שלישית 3 לבקרת ניגודיות (VEE שולט עד כמה הדמויות צריכות להיות עבות מוצג) ו- 3 סיכות בקרה (RS & RW & E)
במעגל תוכלו לראות שלקחתי רק שתי סיכות בקרה. ביט הניגודיות ו- READ / WRITE לא משמשים לעתים קרובות, כך שניתן לקצר אותם לקרקע. זה מכניס את LCD למצב הניגודיות והקריאה הגבוה ביותר. אנחנו רק צריכים לשלוט בסיכות ENABLE ו- RS כדי לשלוח תווים ונתונים בהתאם.
חיבורי LCD הם כדלקמן:
PIN1 או VSS ------------------ קרקע
PIN2 או VDD או VCC ------------ + 5 וולט כוח
PIN3 או VEE --------------- קרקע (נותן ניגודיות מקסימאלית הטובה ביותר למתחילים)
PIN4 או RS (בחירת רישום) --------------- PB0 של uC
PIN5 או RW (קריאה / כתיבה) ----------------- קרקע (מכניס את LCD למצב קריאה מקל על התקשורת למשתמש)
PIN6 או E (אפשר) ------------------- PB1 של uC
PIN7 או D0 ---------------------------- PD0 של uC
PIN8 או D1 ----------------------------- PD1 של uC
PIN9 או D2 ----------------------------- PD2 של uC
PIN10 או D3 ---------------------------- PD3 של uC
PIN11 או D4 ----------------------------- PD4 של uC
PIN12 או D5 ----------------------------- PD5 של uC
PIN13 או D6 ----------------------------- PD6 של uC
PIN14 או D7 ----------------------------- PD7 של uC
במעגל ניתן לראות שהשתמשנו בתקשורת 8 ביט (D0-D7) אולם זה לא חובה, אנו יכולים להשתמש בתקשורת 4 ביט (D4-D7) אך עם תוכנית תקשורת של 4 סיביות הופכת להיות מעט מורכבת. אז מהסתכלות בלבד מהטבלה לעיל אנו מחברים 10 פינים של LCD לבקר, בהם 8 פינים הם פינים של נתונים ו -2 פינים לבקרה.
המתח על פני R2 אינו ליניארי לחלוטין; זה יהיה רעשני. כדי לסנן את קבלים הרעש ממוקמים על פני כל נגדים במעגל המחלק כפי שמוצג באיור.
ב- ATMEGA8 אנו יכולים לתת קלט אנלוגי לכל אחד מארבע הערוצים של PORTC, זה לא משנה איזה ערוץ נבחר שכן כולם זהים. אנו הולכים לבחור ערוץ 0 או PIN0 של PORTC. ב- ATMEGA8, ה- ADC הוא ברזולוציית 10 סיביות, כך שהבקר יכול לזהות שינוי מינימלי של Vref / 2 ^ 10, כך שאם מתח הייחוס הוא 5V נקבל תוספת יציאה דיגיטלית לכל 5/2 ^ 10 = 5mV. אז על כל תוספת של 5mV בכניסה תהיה לנו תוספת של אחת בפלט הדיגיטלי.
כעת עלינו להגדיר את רישום ה- ADC בהתבסס על התנאים הבאים:
1. קודם כל עלינו לאפשר את תכונת ה- ADC ב- ADC.
2. כאן הולכים לקבל מתח כניסה מרבי להמרת ADC הוא + 5V. כדי שנוכל להגדיר ערך מקסימלי או הפניה של ADC ל- 5V.
3. לבקר יש תכונת המרת טריגר שמשמעותה המרת ADC מתבצעת רק לאחר טריגר חיצוני, מכיוון שאיננו רוצים שנצטרך להגדיר את הרישומים לכך שה- ADC יפעל במצב ריצה חופשית רציפה.
4. עבור כל ADC, תדירות ההמרה (ערך אנלוגי לערך דיגיטלי) ודיוק הפלט הדיגיטלי הם פרופורציונאליים הפוכים. אז לדיוק טוב יותר של הפלט הדיגיטלי עלינו לבחור בתדר פחות. עבור שעון ADC רגיל אנו מגדירים את מכירה מוקדמת של ADC לערך מקסימלי (2). מכיוון שאנו משתמשים בשעון הפנימי של 1MHZ, השעון של ADC יהיה (1000000/2).
אלה ארבעת הדברים היחידים שאנחנו צריכים לדעת כדי להתחיל לעבוד עם ADC.
כל ארבעת התכונות הנ"ל נקבעים על ידי שני רושמים,
אדום (ADEN): יש להגדיר סיבית זו להפעלת תכונת ה- ADC של ATMEGA.
כחול (REFS1, REFS0): שני ביטים אלה משמשים לקביעת מתח הייחוס (או מתח הקלט המרבי שאנחנו הולכים לתת). מכיוון שאנחנו רוצים שיהיה מתח התייחסות 5V, יש להגדיר את REFS0 לפי הטבלה.
צהוב (ADFR): יש להגדיר סיבית זו כדי שה- ADC יפעל ברציפות (מצב ריצה חופשית).
PINK (MUX0-MUX3): ארבעת הביטים הללו נועדו לספר את ערוץ הקלט. מכיוון שאנחנו הולכים להשתמש ב- ADC0 או PIN0, אנחנו לא צריכים להגדיר סיביות כמו על ידי הטבלה.
BROWN (ADPS0-ADPS2): שלוש סיביות אלה מיועדות לקביעת ה- prescalar עבור ADC. מכיוון שאנו משתמשים ב- prescalar של 2, עלינו להגדיר סיבית אחת.
ירוק כהה (ADSC): סיבית זו מוגדרת עבור ADC להתחיל בהמרה. ניתן להשבית ביט זה בתוכנית כשאנחנו צריכים לעצור את ההמרה.
אז עם התנגדות LDR על גבי מסך ה- LCD בגודל 16x2, אנו יכולים להתאים אותו לגרף LUX לקבלת עוצמת האור.