קורס רובוטיקה · 10 מפגשים

שיעור 1: מתחילים עם Arduino

פינים, LED, אות PWM וחיישן אור אנלוגי

1מושגי היסוד שלמדנו

פינים דיגיטליים

יכולים לעבוד כ־INPUT לקליטת מידע או כ־OUTPUT לשליחת מידע. במצב רגיל יש שתי רמות: HIGH או LOW.

פינים אנלוגיים

באמצעות analogRead() קוראים ערך משתנה מחיישן. ב־Arduino Uno מתקבל מספר בין 0 ל־1023.

PWM — עוצמה מדומה

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

ששת פיני ה־PWM ב־Uno

~3~5~6~9~10~11

2מה עשינו בשיעור?

LED אחד
כתבנו קוד שמדליק ומכבה LED ויוצר הבהוב.
←
שני LEDים
הדלקנו שני LEDים לסירוגין: כשאחד דולק, השני כבוי.
←
חלש וחזק
השתמשנו ב־PWM וב־analogWrite() לשינוי העוצמה.

דוגמה: שינוי עוצמת LED

const int ledPin = 9;

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

void loop() {
  analogWrite(ledPin, 50);   // אור חלש
  delay(1000);
  analogWrite(ledPin, 255);  // אור חזק
  delay(1000);
}

3Sensor Shield וחיישן אור

הרכבנו על ה־Arduino את לוח ההרחבה Sensor Shield V4. הלוח מסדר ליד כל פין שלוש נקודות חיבור — אות, מתח ואדמה — וכך קל יותר לחבר חיישנים ורכיבים.

קלט
חיישן האור מחובר ל־A0
←
עיבוד
Arduino קורא ערך 0–1023 וממיר אותו
←
פלט
LED בפין PWM משנה עוצמה
const int lightPin = A0;
const int ledPin = 9;

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

void loop() {
  int lightValue = analogRead(lightPin);
  int ledValue = map(lightValue, 0, 1023, 0, 255);
  ledValue = constrain(ledValue, 0, 255);
  analogWrite(ledPin, ledValue);
  delay(10);
}

4משימות לשיעורי הבית

חובה

משימה 1 — הבהוב עצמאי

כתבו מחדש, בלי להעתיק, תוכנית שמדליקה LED לחצי שנייה ומכבה אותו לשנייה.

חובה

משימה 2 — שני LEDים לסירוגין

חברו שני LEDים. בכל רגע רק אחד מהם יהיה דולק. נסו לשנות את מהירות ההחלפה.

חובה

משימה 3 — שלוש עוצמות

הפעילו LED בעוצמה חלשה, בינונית וחזקה — כל עוצמה למשך שנייה. השתמשו ב־analogWrite().

חובה

משימה 4 — מנורת אור חכמה

קראו את חיישן האור ב־A0 ושנו את עוצמת ה־LED בהתאם. בדקו מה קורה כשמכסים את החיישן ביד.

אתגר למתקדמים

מנורת לילה אוטומטית

שנו את הקוד כך שככל שהחדר נעשה חשוך יותר, ה־LED יאיר חזק יותר. כשהחדר מואר, ה־LED צריך להיחלש או להיכבות. רמז: הפכו את כיוון ה־map().

לפני השיעור הבא