HWzoneHWzoneHWzone
  • ראשי
  • כתבות פופולריות
  • הגדרת התראות
  • מחשבים
    מחשבים
    הצג עוד
    כתבות מובילות
    משטח משלוח של כרטיסי מסך יוקרתיים במחסן מטענים בנמל תעופה, עם אריזות חסרות וניילון עטיפה קרוע
    חצי מיליון דולר נעלמו בשדה התעופה: שני משטחים של RTX 5090 אבדו
    20/10/2026
    הדרך להפסיק לשלם ולקחת בעלות: בנינו שרת AI מפלצתי מקומי
    22/08/2026
    מעבד שרתים גדול מועבר למגש בדיקה במפעל שבבים, כשמעבדי מחשבים ניידים ממתינים ברקע
    אינטל מעדיפה שרתים על מחשבים אישיים ומשנה את תוכניות הייצור
    02/11/2026
    כתבות אחרונות
    אחרי 31 שנה: Windows 11 תאפשר להשתיק את חלונית Sticky Keys
    10/11/2026
    20 שנה ל-GeForce 8800 GTX: הדמו דורש לפחות RTX 4070
    10/11/2026
    AMD מאשרת באג ב-Radeon: הדרייבר כותב ל-SSD גם במנוחה
    09/11/2026
    שני כרטיסי NVIDIA ב-32 אלף דולר וכבלי החשמל מתפוררים
    09/11/2026
  • גאדגטים
    גאדגטים
    הצג עוד
    כתבות מובילות
    ניסיתי סמארטפון מתקפל בפעם הראשונה - התרשמויות משימוש Galaxy Z Fold8
    27/09/2026
    שחזור דיגיטלי של ה-iPod המקורי משנת 2001 מופיע בתוך דף אינטרנט במחשב נייד
    אפל מחזירה את ה-iPod המקורי לחיים, ומחביאה אותו באתר שלה
    25/10/2026
    הדמיה של מערכת הבית החכם החדשה של אפל עם מסך HomePad, רמקול HomePod mini ומזרים Apple TV 4K
    אפל חוזרת לסלון: שלושה מוצרים חדשים בדרך, כולל מסך חכם שיתחרה באמזון ובגוגל
    10/10/2026
    כתבות אחרונות
    אחרי שש שנות עיכוב: אמזון משיקה רחפן אבטחה ביתי ב-250 דולר
    11/11/2026
    סמארטפון חדש עם RAM משומש: עד 9% מהמכשירים ב-2027
    10/11/2026
    אינסטגרם רוצה להחליף את תוכנת העריכה שלכם, והיא מתחילה במק
    07/11/2026
    אחרי עשור: Bluetooth מעלה את המהירות המרבית כמעט פי ארבעה
    06/11/2026
  • גיימינג
    גיימינג
    הצג עוד
    כתבות מובילות
    קונסולת PlayStation 5 לצד מסך המציג משחקי PC בתוך ממשק הקונסולה באמצעות Playden
    בלי מחשב ובלי סטרימינג: משחקי PC רצים ישירות על PlayStation 5
    27/10/2026
    המחשה של לוח אם בקונסולת משחקים עתידית עם שבבי זיכרון ואחסון חשופים
    ה-PlayStation 6 עשויה לעלות יותר מ-1,000 דולר
    20/10/2026
    שבועיים להשקה: 39 תמונות חדשות מציגות את העולם של GTA 6
    שבועיים להשקה: 39 תמונות חדשות מציגות את העולם של GTA 6
    06/11/2026
    כתבות אחרונות
    קונסולה מ-2013 תריץ את GTA 6, אבל מחשב גיימינג לא
    11/11/2026
    GTA 6 מוכן להורדה, אבל שחקני הקונסולות יסתפקו ב-30 FPS
    11/11/2026
    שבועיים להשקה: 39 תמונות חדשות מציגות את העולם של GTA 6
    06/11/2026
    סיכום השבוע: אינטל, Claude ועוד
    06/11/2026
  • טכנולוגיה
    טכנולוגיה
    הצג עוד
    כתבות מובילות
    משאית הובלה מסחרית רגילה ועליה משטחים של חומרת מחשוב יקרה, להמחשת גניבת משלוח NVIDIA בשווי 11.4 מיליון דולר
    משאית אספה חומרה של NVIDIA ב-11.4 מיליון דולר ונעלמה
    07/11/2026
    מחשב נייד המריץ מערכת הפעלה ניסיונית שפותחה באמצעות סוכני בינה מלאכותית של Claude Fable 5.2
    אלף סוכני Claude בנו מערכת הפעלה בשמונה ימים
    10/11/2026
    Google's Gemini 4 Carbon Tops Every Other Model In All But Two Of Google's Benchmarks, Scoring 88.2 Percent On SEC-bench Pro Vulnerability Discovery
    גוגל מציגה את Gemini 4 Carbon: ראשון בדירוג, סגור לציבור
    29/10/2026
    כתבות אחרונות
    רומן וחשד לריגול: NVIDIA נתבעת אחרי אובדן 190 מיליארד דולר
    11/11/2026
    10,000 ארונות NVIDIA בחלל עד 2028: התחזית החדשה ל-SpaceX
    11/11/2026
    אלף סוכני Claude בנו מערכת הפעלה בשמונה ימים
    10/11/2026
    מנכ"ל אפל לא מסתפק בסירי החדשה: דורש סוכן AI עצמאי
    10/11/2026
  • ביקורות
    ביקורות
    הצג עוד
    כתבות מובילות
    הדרך להפסיק לשלם ולקחת בעלות: בנינו שרת AI מפלצתי מקומי
    22/08/2026
    ניסיתי סמארטפון מתקפל בפעם הראשונה - התרשמויות משימוש Galaxy Z Fold8
    27/09/2026
    מחשב ASUS Ascent GX10 מבוסס NVIDIA DGX Spark בסקירה: דמוקרטיזציה של מודלים מקומיים
    04/10/2026
    כתבות אחרונות
    ככה הגדרתי סביבת עבודה עבור שרת AI מפלצתי מקומי מבוסס Intel ARC
    03/11/2026
    מחשב ASUS Ascent GX10 מבוסס NVIDIA DGX Spark בסקירה: דמוקרטיזציה של מודלים מקומיים
    04/10/2026
    ניסיתי סמארטפון מתקפל בפעם הראשונה - התרשמויות משימוש Galaxy Z Fold8
    27/09/2026
    GIGABYTE GAMING A16 עם RTX 5060 - מה תקבלו בקטגוריה הזולה של מחשבי גיימינג ניידים?
    12/09/2026
  • ספיישלים
    • CES
      • CES 2026
      • CES 2025
      • CES 2024
      • CES 2023
      • CES 2022
      • CES 2020
      • CES 2019
      • CES 2018
      • CES 2017
      • CES 2016
      • CES 2015
      • CES 2013
      • CES 2012
      • CES 2011
      • CES 2009
    • Computex
      • Computex 2019
      • Computex 2018
      • Computex 2016
      • Computex 2014
      • Computex 2013
      • Computex 2012
      • Computex 2011
      • Computex 2010
      • Computex 2009
      • Computex 2008
      • Computex 2007
    • E3 2016
    • עשור לאתר המחשבים
    • CeBIT 2008
    • CeBIT 2007
  • פורומים
  • זכרונות
  • הפיד שלי
  • ניהול העדפות
  • ערוצים פרסומיים
עקבו אחרינו ברשתות
  • אודות האתר
  • צרו קשר
  • פרסם אצלנו
  • תנאי שימוש ומדיניות פרטיות
  • הצהרת נגישות
בקריאה עכשיו: לוחות ארדואינו - מא' עד ת'
HWzoneHWzone
  • ראשי
  • כתבות פופולריות
  • הגדרת התראות
  • מחשבים
  • גאדגטים
  • גיימינג
  • טכנולוגיה
  • ביקורות
  • ספיישלים
    • CES
    • Computex
    • E3 2016
    • עשור לאתר המחשבים
    • CeBIT 2008
    • CeBIT 2007
  • פורומים
  • זכרונות
עקבו אחרינו
  • אודות האתר
  • צרו קשר
  • פרסם אצלנו
  • תנאי שימוש ומדיניות פרטיות
  • הצהרת נגישות
טכנולוגיהמדריכים

לוחות ארדואינו - מא' עד ת'

עדכון אחרון: 26/09/2014 בשעה 05:15
07/02/2012
52 דקות קריאה
שיתוף
רוצים לראות יותר מ-HWzone בתוצאות של Google?הוסיפו אותנו כמקור מועדף ב-Google
עקבו אחרינו ב-Googleהוסיפו את HWzone כמקור מועדף
בניית התוכנית הראשונה
 
התוכנית הראשונה שלנו תהיה הדלקת לד וכיבויו בכל X זמן שנרצה. נתבונן בתוכנית הבאה:
 

void setup() {
  pinMode(13, OUTPUT);
}
 
void loop() {
  digitalWrite(13, HIGH);
  delay(1000);
  digitalWrite(13, LOW);
  delay(1000);
}

 
נשים לב שהתוכנית מחולקת לשני חלקים עיקריים Setup ו-Loop אלו שתי פונקציות מרכזיות בכל תוכנית. לפני שהתוכנית שלנו מתחיל לרוץ לרוב נרצה לבצע מספר פעולות לפני, כמו למשל לקבוע שפין מספר 13 מהיציאות או הכניסות הדיגיטליות ישמש כיציאה. איך עושים זאת? בעזרת הפונקציה pinMode המקבלת כפרמטר ראשון את מספר הפין וכפרמטר שני את ההגדרה החדשה שלו (INPUT או OUTPUT).

 
Loop היא למעשה התוכנית הראשית, ובסיומה, אלא אם הגדרנו אחרת, הקוד יתבצע שוב ושוב עד אינסוף. בדוגמא הזו אנחנו מבצעים כתיבה דיגיטלית לפין 13 וקובעים שהוא יהיה HIGH. HIGH הוא קבוע מערכת המגדיר רמה לוגית 1 במידה וקיים מתח, והקבוע בשם LOW המגדיר רמה לוגית 0 מציין העדר מתח.
 
את הכתיבה לפין דיגיטלי אנחנו מבצעים בעזרת הפונקציה digitalWrite, המקבלת כפרמטר ראשון את מספר הפין וכפרמטר שני את הרמה הלוגית שלו (HIGH או LOW). בין הכתיבות הדיגיטליות מיקמנו פונקציה בשם delay, המספקת השהייה למערכת לפי הערך שסיפקנו לה. הערך שהיא מקבלת הוא מספר המציין את משך ההשהיה במילי שניות. כאשר 1000 מילי שניות הן שנייה אחת.
 
מכאן קל להבין שהקוד הנ"ל מעביר את פין 13 לרמה לוגית 1, ממתין שם שנייה אחת ולאחר מכן מוריד את הפין לרמה לוגית 0 וממתין שם שנייה אחת נוספת. לאחר מכן הקוד חוזר חלילה. בלוח הפיתוח בפין 13 ישנו לד מובנה על גבי הלוח כך שהתוכנית למעשה מדליקה ומכבה את הלד המובנה.
 
מה נעשה אם נרצה לשנות את מספר הפין? נשנה את הקוד בצורה הבאה:
 

עקבו אחרינו ב-Googleהוסיפו את HWzone כמקור מועדף
#define LEDPin 10
void setup() {
  pinMode(LEDPin, OUTPUT);
}
void loop() {
  digitalWrite(LEDPin, HIGH);
  delay(1000);
  digitalWrite(LEDPin, LOW);
  delay(1000);

}

 
השינוי הוא מינורי. הוספנו קבוע בשם LEDPin וקבענו שערכו 10. כעת החלפנו בכל התוכנית את המספר 13 בקבוע החדש כך שאם נרצה בפעם אחרת לשנות מפין 10 לפין אחר נבצע שינוי במקום אחד בלבד ולא נצטרך לחפש בכל התוכנית את הפין אותו אנחנו רוצים לשנות.
 
כעת נלחץ על כפתור ה-Upload כדי להדר ולשלוח את התוכנית ללוח. נראה מספר לדים דולקים במהירות על הלוח ולאחר מכן תופיע שורה בסביבת העבודה (מעל להודעות המערכת) שהפעולה הושלמה והתוכנית נטענה ללוח. משלב זה, כל עוד יש ללוח מתח (במקרה שלנו מחיבור ה-USB) התוכנית תמשיך ותרוץ.
 
נמשיך ונשכלל את התוכנית שלנו, הדלקת לד הוא צעד חשוב ובסיסי אבל לא מרשים ושימושי במיוחד. כעת נכתוב תוכנית קטנה ב C# שתשנה את מצב הלד בעזרת לחיצה בתוכנה.
 
תקשורת סריאלית
  
ראינו שכאשר הלוח מחובר למחשב באמצעות כבל ה-USB נוסף חיבור וירטואלי בשם COMx (x - מספר כלשהו). זהו חיבור סריאלי שדרכו נוכל לתקשר עם הלוח והתוכנית שלנו. לשם הקמת החיבור הסריאלי נצטרך לבצע שינוי קל בקוד התוכנית. נתבונן בקוד הבא:
 

#define LEDPin 10
 
void setup() {
  pinMode(LEDPin, OUTPUT);
  Serial.begin(9600);
}
 
void loop() {
  digitalWrite(LEDPin, HIGH);
  Serial.println("LED on");
  delay(1000);
  digitalWrite(LEDPin, LOW);
  Serial.println("LED off");
  delay(1000);

}

 

כפי שנוכל לראות התווספו מספר שורות קוד חדשות. בחלק ה-Setup, נוספה השורה:
 

Serial.begin(9600);

 
Serial היא למעשה מחלקה מובנית היודעת לטפל בכל ההיבטים הנוגעים לתקשורת הסריאלית. הפונקציה being מקבלת כפרמטר את המהירות שבו החיבור יעבוד. מהירות זו נקראת Baud rate שזה למעשה כמות הביטים בשנייה. מהירויות סטנדרטיות ונפוצות הן: 300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600 ו-115200 כאשר לרוב נשתמש במהירות 9600. לאחר שהרצנו את הפונקציה ,being המחלקה תאזין כל הזמן ב-COMx עבור בקשת התחברות לתקשורת.
 

בחלק ה-Loop, הוספנו את שתי השורות הבאות:
 

Serial.println("LED on");

Serial.println("LED off");

 
שורות אלו למעשה שולחות באמצעות היציאה הסריאלית הודעה המדווחת על לד דולק או לד כבוי לאחר כל מצב. בכדי לראות את הדוגמא הזו עובדת נשלח את הקוד ללוח ולאחר שהוא סיים נלחץ על כפתור Serial Monitor כדי לפתוח את חלון התקשורת הסריאלית. חלון זה למעשה מבקש בקשה מ-COMx להתחברות במהירות המצוינת בחלקו התחתון הימני. יש לוודא שהמהירות זהה למהירות שהגדרנו בתוכנית עצמה. לאחר החיבור נוכל לראות שהטקסט שהלוח שולח מופיע בחלון התקשורת.
כעת נשנה את קוד התוכנית כדי שיתאים לתקשורת מול תוכנה שנכתוב ב-C#:
 

#define LEDPin 10
 
byte LED_OFF = 0;
byte LED_ON = 1;
 
void setup() {
  pinMode(LEDPin, OUTPUT);
  digitalWrite(LEDPin, LOW); 
  Serial.begin(9600);
}
 
void loop() {
    if (Serial.available() > 0) { 
       byte data = Serial.read();
       if (data == LED_ON) {
              digitalWrite(LEDPin, HIGH);
              Serial.write(LED_ON);
       } else if (data == LED_OFF) {
              digitalWrite(LEDPin, LOW);
              Serial.write(LED_OFF);
       }
    }

}

 
תחילה, יצרנו שני משתנים חדשים בגודל בית אחד שתפקידם לסמל את מצב הלד, LED_OFF ו LED_ON ולאחר מכן בשלב ה-Setup הוספנו כתיבה לפין הלד כדי שהתוכנית תתחיל במצב שהלד כבוי. בתוכנית הראשית ביצענו בדיקה שתפקידה לבדוק האם התקבל משהו בערוץ התקשורת הסריאלי, Serial.available(). הפונקציה מחזירה את כמות הבתים הממתינים בבאפר (buffer, מאגר זיכרון קטן אשר כל המידע שמיגע עובר קודם כל דרכו ולאחר מכן נקרא ממנו בצורה של First In Firt Out) של הערוץ.
 
במידה והגיע מידע חדש נבצע קריאה של בית אחד מהבאפר על ידי הפונקציה Serial.read() אשר תחזיר את הבית לתוך משתנה. כל שנותר לבדוק הוא האם המשתנה שווה ל-0 (כיבוי לד) או 1 (הדלקת לד) ולכן, לאחר שכיבינו או הדלקנו את הלד נרצה לשלוח לתוכנה פידבק כדי שהיא תדע שהפעולה אכן התבצעה בהצלחה. לשם כך נשתמש בפונקציה Serial.write() המקבלת משתנה מטיפוס byte.
 
שימוש בפידבק הוא חשוב ביותר אם אנחנו מעוניינים לשמור על סנכרון בין שני הצדדים בתקשורת. ייתכן ומסיבה כלשהי המידע שנשלח מתוכנת המחשב ללוח הפיתוח לא הגיע בשלמותו, ואם לא יהיה פידבק לתוכנה היא תחשוב שהכל בסדר, ובפעם הבאה שנרצה לשנות את מצב הלד השינוי לא יעבוד כי הלד לא נמצא על אותו מצב שהתוכנה נמצאת. חיבור הלוח באמצעות USB נחשב אמין ולרוב הבדיקה הספציפית שביצענו כאן אינה נחוצה אך כאשר דברים מתחילים לעבוד בצורה שונה מהמצופה. משום כך, תמיד טוב לזכור את החלק הזה למטרת ניפוי שגיאות (Debugging).
 
בצד תוכנת המחשב נרצה לבצע את הפעולות הבאות:
  • איתור כל יציאות ה-COM במחשב ובחירת ה-COM המתאים אליו מחובר לוח הפיתוח.
  • אפשרות שינוי מהירות התקשורת.
  • כפתור יצירת חיבור או ניתוק החיבור.
  • כפתור המאפשר להדליק ולכבות את ה-LED בלוח הפיתוח.
  • תיבה המציגה למשתמש את הפידבק שהתקבל מהלוח.
 
מכיוון שמדריך זה עוסק יותר בצד פיתוח החומרה לא נפרט כאן על כתיבת התוכנה ב-C# אך ניתן להוריד את קוד המקור עבור תוכנית זו מהקישור הבא.
שימוש ב-PWM
      
לאחר שהצלחנו להדליק ולכבות לד נרצה לשלוט גם על עוצמת ההארה (Brightness) שלו. לשם כן נרשם השימוש ב-PWM, ובכדי להשתמש ב-PWM נאתר את הפינים שיכולים לשמש אותנו כפי שמופיע באיור הלוח. הקוד הבא נעשה שימוש בפין 11:
 

#define LEDPin 11
 
void setup() {
  pinMode(LEDPin, OUTPUT);
  digitalWrite(LEDPin, LOW); 
  Serial.begin(9600);
}
 
void loop() {
    if (Serial.available() > 0) { 
       byte data = Serial.read();
       analogWrite(LEDPin, data);
    }

}

 
בקוד זה נראה רק שורה חדשה אחת שעושה שימוש בפונקציה analogWrite(). פונקציה זו מקבלת מספר פין ואת ערך ה-Duty Cycle כאשר 0 מייצג 0% ו-255 מייצג 100%.
 
כעת נוכל לבצע מספר שינויים בתוכנת החלונות שכתבנו, במקום כפתור ON/OFF נוסיף בורר עוצמה שיכיל ערכים מ-0 עד 255 וע"י גרירתו נשלוט בעוצמת ההארה של הלד.
בלחיצה על הקישור הבא תוכלו להוריד קובץ RAR של התוכנה המעודכנת.

העמוד הקודם123456העמוד הבא

הצטרפו לערוץ הטלגרם שלנו!

קבלו עדכונים שוטפים וחדשות מעולם הטכנולוגיה ישירות לטלפון שלכם.

הצטרפו עכשיו

היום לפני 5-22 שנים ב-HWzone: Nintendo Switch, Office בחינם ועוד
Claude מתחבר לבנק ומוצא חיובים שאפילו אתם פספסתם
סם אלטמן: ה-RAM במחשב שלכם מבזבז זכרון שיכל להיות בחוות שרתים
נטפליקס הופכת את PUBG לסדרה, ודונלד גלובר מקבל ארבעה תפקידים
אמזון מציגה את התשובה שלה לגוגל ולאפל עם חמישה מכשירים חדשים
תגיות:eBayYouTubeארדואינו
איך זה גורם לך להרגיש?
אהבתי!1
מצחיק!0
עצוב0
מופתע0
משועמם0
כועס0
טוען תגובות...

כתבות פופולריות

משאית הובלה מסחרית רגילה ועליה משטחים של חומרת מחשוב יקרה, להמחשת גניבת משלוח NVIDIA בשווי 11.4 מיליון דולר
משאית אספה חומרה של NVIDIA ב-11.4 מיליון דולר ונעלמה
07/11/2026
משטח משלוח של כרטיסי מסך יוקרתיים במחסן מטענים בנמל תעופה, עם אריזות חסרות וניילון עטיפה קרוע
חצי מיליון דולר נעלמו בשדה התעופה: שני משטחים של RTX 5090 אבדו
20/10/2026
מחשב נייד המריץ מערכת הפעלה ניסיונית שפותחה באמצעות סוכני בינה מלאכותית של Claude Fable 5.2
אלף סוכני Claude בנו מערכת הפעלה בשמונה ימים
10/11/2026
הדרך להפסיק לשלם ולקחת בעלות: בנינו שרת AI מפלצתי מקומי
22/08/2026
HWzoneHWzone
עקבו אחרינו
  • אודות האתר
  • צרו קשר
  • פרסם אצלנו
  • תנאי שימוש ומדיניות פרטיות
  • הצהרת נגישות