Menu
CoddyTech

מד עוצמת אור

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

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

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

int light = 1023 - analogRead(A0);
int count = map(light, 0, 1023, 0, 16);

לאחר מכן ננקה את הטבעת ונדליק את הפיקסלים מ-0 עד count פחות 1:

ring.clear();
for (int i = 0; i < count; i++) {
  ring.setPixelColor(i, yellow);
}
ring.show();

הפונקציה clear() מאפשרת לפס להתכווץ: בלעדיה, פיקסלים שנדלקו כשהיה בהיר יישארו דולקים כשיחשיך.

challenge icon

אתגר

בינוני

חיישן האור מחובר ל-A0 והטבעת לפין 6. צרו מד אור:

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

לחצו על Run, שנו את האור בלוח, ואז לחצו על Check.

נסו בעצמכם

#include <Adafruit_NeoPixel.h>

// 16 פיקסלים, נתונים בפין 6
Adafruit_NeoPixel ring(16, 6, NEO_GRB + NEO_KHZ800);

uint32_t yellow = ring.Color(255, 160, 0);

void setup() {
  ring.begin();
}

void loop() {
  int reading = analogRead(A0);  // יורד ככל שעוצמת האור עולה
  // ככל שעוצמת האור גבוהה יותר, הדלק יותר פיקסלים
  delay(50);
}
quiz iconבחנו את עצמכם

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

כל השיעורים ביחידה צגים וחיישנים

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