Menu
CoddyTech

עמעם עם כפתור

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

כפתור סיבובי נותן ל־analogRead() מספר בין 0 ל־1023, ואילו analogWrite() מצפה לערך בין 0 ל־255. שני הטווחים אינם תואמים, לכן ממירים מאחד לשני באמצעות map():

int reading = analogRead(A0);
int brightness = map(reading, 0, 1023, 0, 255);
analogWrite(9, brightness);

כשהכפתור הסיבובי למטה מתקבל 0 וה־LED כבויה; כשהכפתור למעלה מתקבל 1023, שהופך ל־255, וה־LED דולקת במלואה. כל מיקום ביניהם נותן רמת בהירות בינונית.

כתיבה ישירה של הקריאה ל־LED לא עובדת: analogWrite() מקבלת רק ערכים בין 0 ל־255, לכן קריאה כמו 600 נותנת רמת בהירות שגויה.

challenge icon

אתגר

קל

הכפתור מחובר ל־A0 וה־LED לפין 9. השתמשו בכפתור כדי לקבוע את הבהירות:

  • קראו את הכפתור
  • המירו את הקריאה לערך בין 0 ל־255 באמצעות map()
  • כתבו את הערך ל־LED, ואז המתינו 10 ms

לחצו על Run וסובבו את הכפתור, ואז לחצו על Check.

נסו בעצמכם

const int knobPin = A0;
const int ledPin = 9;

void setup() {
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // קרא את ערך הכפתור הסיבובי, מפה אותו לטווח 0..255 וכתוב אותו ל-LED
}
quiz iconבחנו את עצמכם

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

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

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