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