facebook pixel מדריך: פירוט שפת תכנות - קבועים - www.4project.co.il
Main logo www.4project.co.il
כל הרכיבים לפרוייקט שלכם
עגלת קניות

העגלה ריקה

לקוחות נכבדים, אלה שעות הפעילות של המחסן במהלך פסח 2024:
ערב חג וחג ראשון (22-23/04) - המחסן סגור
חול המועד (24-25/04) - המחסן יפעל בין 8:00 עד 15:00
ערב חג וחג שני (28-29/04) - המחסן סגור
נחזור לפעילות רגילה ביום שלישי 30/04
חג שמח!

פירוט שפת תכנות - קבועים


2022-06-14 11:05:31
קבועים הם ערכים המוגדרים מראש בשפת התכנות של Arduino. הם גורמים לתוכניות להיות קלים יותר לקריאה. את הקבועים אפשר לחלק לקבוצות המתוארות בהמשך.

הגדרת רמות לוגיות, TRUE ו-FALSE - קבועים בוליאנים (Boolean Constants)

יש שני קבועים המייצגים אמת ושקר בשפת התכנות: true ו-false.

false
מבין השניים את ה-false קל יותר לתאר. false מוגדר כ-0 (אפס).

true
true בדרך כלל מתואר כהגדרה של 1 (אחד), שזה נכון, אבל ל-true יש הגדרה רחבה יותר. כל מספר שלם שערכו שונה מאפס הוא true במובן הבוליאני (boolean). כך ש: 1-, 2, 200- כולם גם כן מוגדרים כ-true במובן הבוליאני.
שימו לב כי קבועים true ו-false כתובים באותיות קטנות, בשונה מ-HIGH, LOW, INPUT ו-OUTPUT.

הגדרת מצב הקווים, HIGH ו-LOW

כשקוראים או כותבים את מצבו של קו דיגיטלי יש רק שני מצבים שאפשר לקבל או לקבוע לקו: HIGH או LOW.

HIGH
המשמעות של HIGH (בהתייחסות לקו דיגיטלי) משתנה בהתאם להגדרת מצב הקו, האם הוא מוגדר כ-INPUT (קלט) או OUTPUT (פלט). כשקו מוגדר כ-INPUT בעזרת פונקציה pinMode, קריאת ערכו עם פונקציה ()digitalRead תחזיר HIGH אם המתח שמחובר לקו גבוה יותר מ-3V (לכרטיסים הפועלים על מתח של 5V).
קו יכול להיות מוגדר כ-INPUT בעזרת פונקציה pinMode ואחרי זה אפשר לקבוע את מצבו ל-HIGH בעזרת פונקציה digitalWrite, זה יגרום לחיבור של נגד pullup פנימי בערך כל 20KOhm (נגד המחובר בין הקו לאספקת מתח של הכרטיס), מה שיגרום לקו להיות במצב HIGH כל עוד מעגל חיצוני לא ימשוך את הקו לאדמה ויהפוך את מצבו ל-LOW. זו גם הדרך בה הגדרת קו INPUT_PULLUP עובדת.
כשקו דיגיטלי מוגדר כ-OUTPUT (פלט) בעזרת פונקציה ()pinMode ונקבע לערך HIGH עם פונקציה ()digitalWrite, הקו מוציא מתח של 5V (בכרטיסים הפועלים על 5V). במצב זה הקו יכול לספק זרם, למשל להדליק מנורת לד המחוברת דרך נגד בטור אליה לאדמה או לקו אחר המוגדר כ-OUTPUT ונקבע ל-LOW.

LOW
גם ל-LOW יש משמעויות שונות בהתאם להגדרת הקו כ-INPUT או OUTPUT. כשהקו מוגדר כ-INPUT (קלט) בעזרת פונקציה pinMode וערכו נקרא  ע"י פונקציה digitalRead, המיקרובקר ידווח LOW כאשר המתח בקו הוא מתחת ל-2V (לכרטיסים הפועלים על מתח של 5V). כשהקו מוגדר כ-OUTPUT (פלט) בעזרת פונקציה ()pinMode ונקבע למצב LOW עם פונקציה ()digitalWrite, הקו יוציא 0V. במצב זה הקו יכול לקבל זרם, למשל להדליק מנורת לד המחוברת דרך נגד בטור אליה ל-5V או לקו אחר המוגדר כ-OUTPUT ונקבע ל-HIGH.

הגדרת קו דיגיטלי, INPUT, INPUT_PULLUP ו-OUTPUT

קווים דיגיטליים יכולים לשמש כ-INPUT (קלט), INPUT_PULLUP (קלט עם נגד המושך את הקו ל-5V) או OUTPUT (פלט).

קווים המוגדרים כ-INPUT
קווים של Arduino (שבב ATmega) המוגדרים כ-INPUT בעזרת פונקציה ()pinMode הופכים למצב של עכבה גבוהה (high-impedance). קווים המוגדרים כ-INPUT דורשים מעט מאוד מהמעגל שהם דוגמים, שווה ערך לנגד של 100MOhm המחובר לפני הקו של מיקרובקר. זה הופך את הקווים ליעילים לקריאת ערכי חיישנים, אבל לא להפעלת מנורת לד.
אם הקו שלכם מוגדר כ-INPUT, רצוי שיהיה לו יחוס לאדמה, שבדרך כלל ממומש עם נגד pulldown (נגד המחבר את הקו לאדמה) כפי שמתואר בדוגמה DigitalReadSerial. (קישור TODO)

קווים המוגדרים כ-INPUT_PULLUP
לרכיבי ATmega שעל כרטיס ה-Arduino יש נגדי pull-up פנימיים שאפשר לשלוט בהם (נגדים שמחברים את הקווים למתח בתוך הרכיב). אם תרצו להשתמש בנגדים אלה במקום לחבר נגדים חיצוניים, תוכלו להשתמש ב-INPUT_PULLUP כפרמטר בקריאה לפונקציה ()pinMode. גישה זו הופכת את ההתנהגות של הקווים, כך ש-HIGH מציין שחיישן כבוי ו-LOW מציין שחיישן דלוק. ראו דוגמה Input Pullup Serial (קישור TODO) להסבר על שימוש בהגדרה זו.

קווים המוגדרים כ-OUTPUT
קווים המוגדרים כ-OUTPUT בעזרת פונקציה ()pinMode הופכים למצב של עכבה נמוכה (low-impedance). זה אומר שהם יכולים לספק כמות זרם משמעותית למעגלים אחרים. קווים של רכיב ATmega יכולים לספק (source) או לקבל (sink) זרם של עד 40mA (מילי אמפר) לרכיבים או מעגלים אחרים. זה יכול להיות שימושי להדלקת מנורת לד, אבל לא יעיל לקריאה של חיישן. קווים שמוגדרים כ-OUTPUT יכולים להינזק או להיהרס אם מקצרים אותם לאדמה או אספקה של המתח. בנוסף לזה, הזרם שרכיבי ATmega יכולים לספק בקווים לא מספיק כדי להפעיל ממסר או מנוע, תצטרכו להוסיף מעגל ממשק לרכיבים אלה.

LED_BUILTIN

לרוב כרטיסי Arduino יש קו שמחובר למנורת לד מובנת על הכרטיס ומחוברת לנגד בטור. קבוע LED_BUILTIN היא חלופה להגדרת מספר של קו זה בצורה ידנית. ברוב הכרטיסים הלד מחובר לקו דיגיטלי מספר 13.

ראו גם:

()pinMode
הגדרת קבועים שלמים (integer)
boolean

פירוט שפת תכנות לסביבת Arduino


עמוד זה הוא תרגום של constants לפי רישיון Creative Commons Attribution-ShareAlike 3.0.