Menu
CoddyTech

מד אור

חלק מהיחידה קלטים במסלול ה-Arduino של Coddy. שיעור 22 מתוך 22.

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

חלקו את העבודה לפונקציות, שלכל אחת מהן משימה אחת, כך ש־loop() תיקרא כמו תיאור:

void loop() {
  int percent = lightPercent();
  showLevel(percent);
  // הדפס את האחוז
}

lightPercent() קוראת את האור מחיישן האור דרך AO ומחזירה ערך מ־0 (חשוך) עד 100 (בהיר). הערך של AO יורד ככל שעוצמת האור עולה, לכן ממפים אותו בכיוון ההפוך: map(reading, 0, 1023, 100, 0) ממירה את 1023 ל־0 ואת 0 ל־100.

showLevel(int percent) קובעת סף משלה לכל נורית בפס: הראשונה נדלקת מעל 25, השנייה מעל 50, השלישית מעל 75. כל אחת צריכה את ה־else שלה, כדי שהפס יוכל להתקצר שוב כשהאור נחלש.

challenge icon

אתגר

בינוני

ה־AO של מודול האור מחובר ל־A0, והנוריות של המד מוצגות בפינים 10, 11 ו־12:

  • int lightPercent(): ‏0 בחושך, 100 באור בהיר
  • void showLevel(int percent): פין 10 נדלק מעל 25, פין 11 מעל 50, פין 12 מעל 75
  • ב־loop(), קוראים לשתיהן, מדפיסים את האחוז וממתינים 200 ms

לחצו על Run, הזיזו את מחוון האור, ואז לחצו על Check.

נסו בעצמכם

const int lowPin = 10;
const int midPin = 11;
const int highPin = 12;

// כתוב כאן את int lightPercent()

// כתוב כאן את void showLevel(int percent)

void setup() {
  pinMode(lowPin, OUTPUT);
  pinMode(midPin, OUTPUT);
  pinMode(highPin, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  // קרא את עוצמת האור באחוזים, הצג אותה על גבי הסרגל, הדפס אותה, המתן 200 ms
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה קלטים

תרגלו בעצמכם: Arduino אונליין