Menu
CoddyTech

שעון NeoPixel: שניות

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

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

נתחיל במחוג השניות. בדקה יש 60 שניות, ובטבעת יש 12 פיקסלים, לכן המחוג מתקדם פיקסל אחד בכל 5 שניות.

seconds % 60 סופר מ-0 עד 59 ואז מתחיל שוב מ-0, כמו השניות בשעון. חלוקה במספר שלם ב-5 ממירה את המספרים מ-0 עד 59 למספרים מ-0 עד 11:

unsigned long seconds = millis() / 1000;
int secondPixel = (seconds % 60) / 5;

בכל מעבר של loop(), צייר את הטבעת מחדש מההתחלה: ring.clear(), הגדר את הפיקסל של המחוג, ring.show(). בלי לנקות, המיקומים הישנים יישארו מוארים והטבעת תתמלא. עשר צביעות מחדש בשנייה מספיקות, לכן קוד הפתיחה מסתיים ב-delay(100).

challenge icon

אתגר

בינוני

הטבעת מחוברת לפין 6. ציירו את מחוג השניות:

  • חשבו את מספר השניות מאז ההפעלה באמצעות millis() / 1000
  • הפיקסל של המחוג הוא (seconds % 60) / 5
  • נקו את הטבעת, הדליקו את הפיקסל הזה בכחול באמצעות ring.Color(0, 0, 255) והציגו אותו

השאירו את delay(100). לחצו על Run וצפו במחוג מסתובב, ואז לחצו על Check.

נסו בעצמכם

#include <Adafruit_NeoPixel.h>

const int ringPin = 6;
const int pixelCount = 12;
Adafruit_NeoPixel ring(pixelCount, ringPin, NEO_GRB + NEO_KHZ800);

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

void loop() {
  // חשב איפה נמצא מחוג השניות, וצייר אותו בכחול

  delay(100);  // צייר מחדש עשר פעמים בשנייה
}
quiz iconבחנו את עצמכם

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

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

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