top of page

חיישן אור - LDR - Light Dependant Resistor

LDR01.png

חיישן היכול למדוד את עוצמת האור הנמצאת בסביבתו. שמו באנגלית מסגיר את אופן פעולתו - נגד תלוי אור, כלומר נגד שמשנה את התנגדותו בתלות באור אליו הוא נחשף.

מבנה חיישן אור

החיישן מורכב מדיסקית עגולה העשוייה חומר קרמי. הדיסקית מחולקת לשני אזורים המופרדים בינהם על ידי חומר הנקרא קדמיום סולפיד CdS . חומר זה אחראי להתנהגות החשמלית של החיישן. משני החצאי הקרמיים יוצאים גם שתי קטבים מוליכים המתחברים את המערכת.

LDR02.png

אופיין שינוי התנגדות

החיישן משנה את התנגדותו בהתאם לעוצמת האור אליה הוא נחשף. כאשר החיישן בחושך מוחלט אז התנגדותו מאוד גבוהה (ניתן לראות קטע מדף נתוני היצרן), ואילו כאשר הוא מואר התנגדותו יורדת באופן מהיר. עוצמת תאורה נמדדת ביחידות מידה הנקראות LUX.

LDR03.png
LDR05.png

אופן המדידה של החיישן

כמו מרבית החיישנים שנשתמש בהם יחד עם בקר ארדואינו, החיישן מודד תופעה פיזיקלית שמתורגמת למתח חשמלי אותו מודד הבקר בחיבור הפינים. החיישן מקבל זרם קבוע מהבקר דרך חיבור ל-5 וולט. מחברים את החיישן נגד נוסף בטור בגודל של 10000 אוהם כדי ליצור מחלק מתח. בגלל שינוי ההתנגדות של החיישן, חלוקת המתח בין הנגד והחיישן משתנה בהתאם. הבקר מודד את מפל המתח על הנגד ומתרגם את ערך המתח לערך מספרים בין 0-1023 כמו לכל החיבורים האנאלוגיים.

LDR08.png
LDR09.png
LDR10.png

קריאת ערך החיישן בתוכנית

הגדרת משתנים - לכל חיישן קלט INPUT מגדירים שני משתנים גלובליים. משתנה אחד ישמש לשמירת מספר הפין אליו מחובר החיישן ונקרא לו ldrPin, ואילו המשתנה השני ישמש לשמירת הערך שנקרא מהחיישן המייצג את מידת התאורה ונקרא לו ldrValue.

בניגוד לחיישנים אנאלוגים, אין חובה להגדיר את סוג הפין בעזרת פונקצית pinMode מכיוון שפין אנאלוגי הוא רק קלט. בתור הרגל תכנות טוב אנחנו רושמים לכל הרכיבים את סוגם כדי שיהיה קל לקרוא ולהביןאת התוכנית. 

קריאת הערך מהבקר יכול להתבצע גם ב-setup וגם ב-loop והיא נעשית על ידי שימוש בפונקציה analogRead. פונקציה זו מקבלת כפרמטר את מספר הפין אותו יש לקרוא ldrPin. הפונקציה מחזירה ערך התחום 0-1023 ואותו נשמור במשתנה ldrValue כדי שנוכל לעשות שימוש בהמשך. 

תכנות הבקר

משתנים - לכל רכיב קלט מגדירים שני משתנים - משתנה לאחסון מספר הפין אליו מחברים את הנורה, ומשתנה לאחסון הערך הנקלט מהחיישן. 

#define ldrPin A1

int ldrValue = 0;

SETUP - הגדרת סוג הפין כרכיב פלט (בחיבור לפין אנאלוגי אין חובה לרשום פונקציה זו)

pinMode(ldrPin,INPUT);

קריאת ערך החיישן - קריאת המתח מהפין אליו החיישן מחובר וקבלת ערך מותאם בין 0-1023

ldrValue = analogRead(ldrPin);

בדיקת הערך ופעולה - שימוש בתנאי לוגי לקבלת החלטה מה לבצע

if (ldrValue > 400){

    digitalWrite(ledPin,HIGH);

}

else{

    digitalWrite(ledPin,LOW);

}

LDR11.png

תוכנית דוגמא שגורמת להדלקת נורת לד כאשר חשוך בחוץ

סרטונים קצרים המסבירים את הנושא

LDR and LED example.png
bottom of page