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 כמקור מועדף
פעולות על ביטים
ייתכן והפרויקט שלנו דורש יותר מלד אחד ונרצה אפילו לשחק קצת באפקטים עם הלדים. בכדי שנוכל לעבוד עם היציאות הדיגיטליות ביעילות ונוחות נזדקק למעט ידע נוסף העוסק בפעולות על ביטים.
 
פעולות על ביטים כשמן כן הן עובדות על ביטים בודדים ומאפשרת שליטה ברמה הנמוכה ביותר שניתן בשפה זו. נתבונן בטבלה הבאה (נקראת טבלת אמת) המראה מספר פעולות על ביטים ואת התפוקה שלהן:
פעולת AND (בתכנות נבצע ע"י הסימן "&") - שיטה דומה לכפל, כאשר יש ביט אותו נכפיל בביט שערכו 0 התוצאה תמיד תהיה 0.
 

11111110
11010101
--
11010100

 
פעולה זו שימושית במיוחד כאשר נרצה לבדוק ביט מסויים במספר. לדוגמא, אם נתון לנו מספר כלשהו ואנחנו רוצים לדעת האם הביט החמישי מימין הוא 0 או 1, מה נעשה? פשוט, נבצע את הפעולה & עם המספר הבינארי 00010000 ונבדוק האם התשובה שנקבל שווה ל-0 או לא. אם התשובה היא 0 אזי שבדיוק במקום החמישי במספר אותו אנחנו רוצים לבדוק קיים 0, ואם התוצאה הי אינה 0 אז יהיה לנו 1 בדיוק באותו מקום. שיטה זה נפוצה מאוד ונקראת שימוש במסכה (Mask) כאשר המסכה הוא המספר הבינארי "המיוחד" איתו אנחנו נבצע AND (בדוגמא שלנו המסכה היא: 00010000).
 
פעולת OR (בתכנות נבצע ע"י הסימן "|" ) - שיטה דומה לחיבור אך הערך המקסימאלי מהחיבור יהיה 1. כל ביט שנבצע פעולת OR עם 1 תמיד יהיה 1.
 

עקבו אחרינו ב-Googleהוסיפו את HWzone כמקור מועדף
11111110
01010100
---
11111110

 
פעולה זו שימושית כאשר נרצה לבצע שינוי ל-1 עבור ביט מסויים. בדומה לדוגמא הקודמת, אם נתון לנו מספר בינארי כלשהו ונרצה לשנות את הביט במקום החמישי מימין ל-1 נבצע את הפעולה OR עם המספר הבינארי הבא: 000100000.
 
פעולת XOR (בתכנות נבצע ע"י הסימן "^" ) - ניתן לראות בטבלה למעלה שכאשר נבצע את הפעולה עבור שני ביטים זהים נקבל תמיד 0 ועבור שני ביטים שונים נקבל תמיד 1. ניתן להשתמש בפעולה זו במגוון דרכים, אחת מהן נראה בהמשך.
 
פעולת NOT (בתכנות נבצע ע"י הסימן "~" ) - זו פעולת שלילה שמשנה את סימן הביט. אם הביט היה 0 הוא יהפוך ל-1 ולהיפך. ניקח את המספר הבינארי הבא:
 

A = 10101010
A = ~A

 
כעת ערכו של A יהיה 01010101 כלומר כל הביטים התהפכו.
 
פעולות Shift Left, הזזה שמאלה (בתכנות נבצע ע"י הסימן ">>" ) - פעולה המזיזה את כל הביטים במספר הבינארי צעד אחד שמאלה. פעולה זו דומה לפעולת הכפלה ב-2. לדוגמא, ניקח את המספר 1, בבינארי הוא 00000001. אם נבצע עליו את הפעולה >> נקבל 00000010 כלומר את מספר 2. נבצע שוב פעולת >> ונקבל 00000100 כלומר את המספר 4. וכן הלאה. אם יש לנו את המספר 10 הנראה כך: 00001010 נבצע הזזה שמאלה ונקבל: 00010100 שערכו שווה ל-20.
 
פעולות Shift Right, הזזה ימינה (בתכנות נבצע ע"י הסימן "<<" ) - פעולה המזיזה את כל הביטים במספר הבינארי צעד אחד ימינה. פעולה זו דומה לפעולת חילוק 2. ניתן להבין לפי הדוגמא הקודמת את אופן הפעולה של פעולה זו. נשים דגש על מקרה בודד. אומנם אמרנו שפעולה זו מדמה חילוק ב-2 אך במקרה בו יש לנו את המספר 1 המיוצג כ: 00000001 ונבצע הזזה ימינה, לא נקבל חצי מכיוון שלא למדנו כיצד ניתן לייצג מספרים לא שלמים בשיטה זו. במקום זאת, נקבל את המספר 0.
 
שימוש ברכיב Shift Register- לוח הפיתוח מכיל מספר מוגבל של פינים, לא פעם נרצה לשלוט במספר רב של לדים העולה על כמות הפינים האפשריים בלוח. כדי לבצע זאת נוכל להשתמש ברכיב Shift Register. פעולתו של רכיב זה היא די פשוטה, הוא מקבל בית אחד (מספר בינארי מ-0 עד 255) ומפרק אותו לביטים. הוא מכיל 8 פורטים המשמשים כיציאות דיגיטליות כאשר כל ביט במספר הבינארי משויך לפורט המתאים לו. לדוגמא: אם נשלח לרכיב את המספר הבא, 10101010, פורט 0 יהיה ברמה לוגית 0, פורט 1 יהיה ברמה לוגית 1, פורט 2 יהיה ברמה לוגית 0 וכו'. כך נוכל לשלוט בקלות על הלדים לפי הבית שנשלח לרכיב.
 
נוסף על כך, הרכיב מאפשר לנו לשרשר אליו עוד רכיבים זהים כך שנוכל לשלוט תאורטית על מספר לא מוגבל של יציאות דיגיטליות. אם נשרשר שלושה רכיבים נצטרך לשלוח שלושה בתים כאשר הבית הראשון יהיה עבור השלישי בשרשרת, הבית השני יהיה עבור השני והבית השלישי יהיה עבור הראשון בשרשרת.
 
נתבונן בטבלת רגליים של הרכיב:
  • פינים Q0 - Q7 ישמשו כיציאות אותן נחבר ללדים.
  • פין Q7' משמש לשרשור רכיבים נוספים והוא למעשה מעביר את המידע הלאה לרכיב הבא.
  • Vcc כניסת מתח ו GND אדמה.
  • את הפין DS נחבר ללוח כדי להעביר מידע לרכיב.
  • SH_CP חיבור השעון לרכיב לשימוש בחיבור סינכרוני.
  • ST_CP יציג את המידע שהגיע לרכיב כאשר נעביר אותו לרמה לוגית 1.
  • MR משמש לאתחול הרכיב כאשר הוא במצב LOW (הקו העליון מעל השם מסמן פעולה במצב LOW) לכן נחבר אותו
  • קבוע ל HIGH, כלומר למתח החיובי.
  • OE מאפשר יציאה כאשר הוא במצב LOW ולכן תמיד נחבר אותו לאדמה.
 
את החיבור נבצע לפי האיור הבא:
ניתן לראות שישנו קבל של 1 מיקרו-פארד בין האדמה לפין 12 של הרכיב, אם ברשותכם קבל מסוג זה אין חובה לחברו. הוא נועד כדי למנוע רעשים שעלולים להוביל להבהובים לא רצוניים של הלדים.
 
נתבונן בקוד הבא:
 

#define latchPin 8
#define dataPin 11
#define clockPin 12
 
void setup() {
  pinMode(latchPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
}
 
void loop() {
    for (int i = 0; i <= 0xFF; i++) {
        digitalWrite(latchPin, LOW);
        shiftOut(dataPin, clockPin, MSBFIRST, i); 
        digitalWrite(latchPin, HIGH);
        delay(200);
    }

}

 
תחילה הגדרנו את שלושת הפינים הדרושים על מנת לתקשר עם הרכיב. בחלק ה-Setup הגדרנו ששלושת הפינים ישמשו כיציאות. החלק הראשי, Loop, מכיל לולאה שסופרת מ-0 עד 255 כלומר ערכו המקסימאלי של בית אחד. בתוך הלולאה תחילה נוריד את פין ה-latch (ST_CP) למצב LOW  בכדי לקלוט את הנתונים.
 
פונקציה חדשה בשם shiftOut מקבלת כפרמטרים את הפין דרכו המידע יוצא ועובר לרכיב, פין השעון, אופן העברת הנתונים שמיד נרחיב עליו ולבסוף המידע אותו אנחנו רוצים לשלוח כאשר ערכו יהיה בית אחד בלבד. לאחר מכן נעלה את פין ה-latch ל-HIGH כדי שהמידע יוצג על גבי הלדים. בסוף כל לולאה, נגדיר השהייה קצרה שתאפשר לנו לראות את הלדים מאירים. התוכנית המופיעה בקוד למעשה מציגה לנו מספר בצורתו הבינארית על גבי הלדים.
 
הפרמטר השלישי מתייחס לצורת הקריאה של המספר הבינארי. בכל מספר בינארי יש שני ביטים בעלי שם, Most Significant Bit (MSB) ו-Least Significant Bit (LSB) ובעברית: ביט בעל חשיבות גבוהה וביט בעל חשיבות נמוכה בהתאמה.
עבור כל אחת מאפשרויות האלו יש קבוע שהוגדר בספריות המערכת הם MSBFIRST ו-LSBFIRST. נציג עוד תוכנית אחת המדליקה כל פעם את הלד הבא בתור הלוך ושוב:
 

#define latchPin 8
#define dataPin 11
#define clockPin 12
 
void setup() {
  pinMode(latchPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
}
 
int unsigned i = 1;
bool flag = true;
void loop() {
     digitalWrite(latchPin, LOW);
     shiftOut(dataPin, clockPin, MSBFIRST, i); 
     digitalWrite(latchPin, HIGH);
     delay(200);
 
     if (flag) {
         i = i << 1;
     }else{
         i = i >> 1;
     }
     if (i == 0x01) flag = true;
     if (i == 0x80) flag = false;

}

 
כדי שהלד הראשון יאיר נשלח ל-Shift register את המספר 1 (00000001). בנוסף נאתחל משתנה דגל שיאמר לנו לאיזה כיוון צריך להתקדם. אמת כאשר צריך לעלות את הערך ושקר בכיוון השני כלומר להקטין את הערך. את הדגל נשנה רק במצבי הקצה שהם 1 או 128 (10000000).
 
כעת נשנה את הקוד כך שהוא יתאים לשליטה בעזרת תוכנה חיצונית שנכתוב:
 

#define latchPin 8
#define dataPin 11
#define clockPin 12
 
void setup() {
  pinMode(latchPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  Serial.begin(9600);
}
 
Byte value = 0;
 
void loop() {
     if (Serial. available () > 0) {
           value = Serial.read();
           digitalWrite(latchPin, LOW);
           shiftOut(dataPin, clockPin, MSBFIRST, value); 
           digitalWrite(latchPin, HIGH);
           delay(200);
     }

}

 
נוכל לראות שאת כל הלוגיקה השולטת באופן בו הלדים ידלקו השארנו לתוכנית החיצונית. הקוד עצמו מקבל בית מהתוכנית ומעביר אותו ישירות לרכיב ה-Shift register להצגה על גבי הלדים.
להורדת קובץ המכיל את התוכנה המעודכנת בגירסתה הסופית לחצו על הקישור הבא.

העמוד הקודם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
עקבו אחרינו
  • אודות האתר
  • צרו קשר
  • פרסם אצלנו
  • תנאי שימוש ומדיניות פרטיות
  • הצהרת נגישות