מד עוצמת אור
חלק מהיחידה צגים וחיישנים במסלול ה-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() מאפשרת לפס להתכווץ: בלעדיה, פיקסלים שנדלקו כשהיה בהיר יישארו דולקים כשיחשיך.
אתגר
בינוניחיישן האור מחובר ל-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);
}
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה צגים וחיישנים
תרגלו בעצמכם: Arduino אונליין