פרסומת

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

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

הערה: זהו הדרכה ברמה מאוד מתחילה ובהחלט זכינו? לא פורץ שום קרקע חדשה - זה? s? רק מכשיר ללמד את מושגי השימוש מערכים ו לולאות להתמודד עם א מספר גדול של נוריות LED (או התקני פלט אחרים).

אם אתה מקלט? כבר עכשיו, זה יהיה זמן טוב לעקוב יחד עם המאמרים האחרים בסדרה:

  • מה אתה Arduino ומה אתה יכול לעשות עם זה מה זה ארדואינו ומה אתה יכול לעשות עם זה?הארדואינו הוא מכשיר אלקטרוניקה קטן ומדהים, אבל אם מעולם לא השתמשת במכשיר כזה לפני כן, מה בדיוק הם ומה אתה יכול לעשות עם מכשיר אחד? קרא עוד ?
  • מהי ערכת Starter Arduino ומה היא מכילה? מה כלול בערכת Starter Arduino? [MakeUseOf מסביר]הצגתי בעבר את חומרת המקור הפתוח של Arduino כאן ב- MakeUseOf, אבל אתה זקוק ליותר מסתם הארדואינו בפועל כדי לבנות מזה משהו ולמעשה להתחיל. ערכות המתנע של ארדואינו הן ... קרא עוד
  • רכיבים מגניבים יותר לקנות עם ערכת המתחילים שלך 8 רכיבים מגניבים יותר לפרויקטים של Arduino שלךאז אתם חושבים להשיג ערכת מתנע של ארדואינו, אבל תוהה אם כמה נוריות LED ונגדים בסיסיים אכן יספיקו לכם כדי להיות עסוקים לסוף השבוע? כנראה שלא. הנה עוד 8 ... קרא עוד
  • התחלת העבודה עם ערכת המתחילים Arduino שלך? התקנת דרייברים והגדרת הלוח והיציאה תחילת העבודה עם ערכת Starter Arduino שלך - התקנת דרייברים והגדרת הלוח והיציאהאז קנית לעצמך ערכת מתנע של ארדואינו, ואולי גם כמה רכיבים מגניבים אקראיים אחרים - מה עכשיו? איך בעצם מתחילים עם תכנות הדבר הארדואינו הזה? איך אתה מגדיר את זה ... קרא עוד
  • Fritzing, כלי חינמי לציור דיאגרמות מעגלים Fritzing - הכלי האולטימטיבי לשרטוט פרויקטים אלקטרוניים [פלטפורמה חוצה]למרות שנשמע כמו אלקופופ, Fritzing הוא למעשה קטע מדהים של תוכנה חופשית שתוכלו להשתמש בהם כדי ליצור דיאגרמות מעגלים ורכיבים לשימוש עם לוחות אלקטרוניקה המהווים טיפוס מהיר כגון קוד פתוח נפלא ארדואינו ... קרא עוד
  • מבט מקרוב על מבנה אפליקציית ארדואינו והתכנית להבהב לדוגמה הצעדים הראשונים עם הארדואינו: מבט מקרוב על לוח המעגלים ומבנה התוכניתבפעם האחרונה שעזבתי אותך לאחר שהגדרת את הארדואינו שלך לעבודה עם מק או חלונות, והעלית אפליקציית בדיקה פשוטה שהבהבה את נורית הלוח. היום אני הולך להסביר את הקוד ... קרא עוד

לפרויקט זה, אתה? אני צריך לפחות 8 או 9 נוריות לד באדום או ירוק, א נגד לכל אחד מהם, א גשר וכמה חוטי חיבור. ערכת המתנע מבית Ooomlout, שרכשתי לעצמי לאחרונה ומצטיירת במדריך זה, מציע תמורה נהדרת לכסף ויש לו יותר נוריות LED ומנגדים מכם? אני אצטרך אי פעם, כמו גם לבוא עם קרש לחם מסודר ותיק ארדואינו בכדי לשמור על סדר.

כאן? זה הדבר האחרון:

אורות חג המולד של ארדואינו

וסרטון שלו בפעולה.

כאן? מבט לחיווט של פריצינג. זה? זה בסיסי מאוד - פשוט חבר את המוביל החיובי של נוריות הלד לפינים 2-> מה שלא יהיה (עד סיכה 13), וחבר את הרגליים השליליות לקרקע בקו בעזרת נגדי. הערך שאני? השתמשנו כאן הוא 560 אוהם. זה? זה עבור חיווט.

אורות חג המולד של ארדואינו

בצד התוכנה, חשוב על איך אתה יכול לכתוב לכל נוריות LED בקוד. אתה יכול להסתדר כך:

int led1 = 2; // נורית לד ראשונה בסיכה 2. int led2 = 3; // שני על סיכה 3. // וכו 'וכו' void loop () {digitalWrite (led1, HIGH); עיכוב (100); digitalWrite (led1, LOW); עיכוב (100); digitalWrite (led2, HIGH); // וכו. }

אתה אמור להיות מסוגל לראות שעם 9 נוריות לד, זה יהיה מהיר מעייף. התשובה נעוצה מערכים, מה אם אתה יכול? לא זוכר את שלנו תכנות 101 על נתונים בסיסיים היסודות של תכנות מחשבים 101 - משתנים וסוגי נתוניםלאחר שהצגתי ודיברתי מעט על תכנות מונחה עצמים לפני כן והיכן שמה מגיע, חשבתי שהגיע הזמן שנעבור את היסודות המוחלטים של תכנות באופן ספציפי שאינו שפה דרך. בית המלון מתפאר ב ... קרא עוד - הם בעצם רק רשימות.

התחביר נראה כך (מקם את זה כשורה ראשונה בקוד שלך):

int leds [] = {2,3,4,5,6,7,8,9,10};

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

כעת, כדי להשתמש במערך, עלינו להתייחס אליו לפי מספר האינדקס. ה המדד מתחיל ב- 0, ולכן תמיד יעלה ל -1 פחות מהמספר הכולל של הדברים שבתוכו (אז עם 9 פריטים, האחרון יהיה עם אינדקס של 8).

אתה כותב את זה כך:

נוריות [0]

מי במקרה שלנו היה מביא את המספר 2, כי זה? מה? s במדד 0 במערך שלנו.

בעקבות עד כה? גדול. זה לבד לא? עם זאת מספיק לנו - אנו זקוקים גם לאופן כלשהו לחלוף על פני כל רכיב במערך הלדים שלנו לשם כך נשתמש ב לולאה. התחביר לעשות זאת הוא כך:

עבור (משתנה התחלתי; מצב בו אנו חוזרים שוב; לשנות למשתנה כל איטרציה)

לדוגמה:

עבור (int i = 0; i <9; אני ++)

שאומר

  • התחל לולאה זו עם משתנה, אני, שיש לו ערך של אפס
  • המשך לולאה רק בזמן שאני פחות מ 9? (כך: 0,1,2,3,4,5,6,7,8)
  • בכל פעם, הוסף 1 ל- i (i ++ היא דרך קצרה לומר i = i + 1)

אז בעיקרון, הלולאה עומדת לחזור על עצמה כמה פעמים שיש לנו נוריות LED, ובכל פעם זה? חוזר ונשנה שיהיה לנו משתנה, אני, בהן אנו יכולים להשתמש ככל שתרצה.

אנחנו? אשתמש במבנה זה פעמיים מלכתחילה. פעם אחת בתוך פונקציית ההתקנה כדי לגרום לכל הסיכות שלנו לפנות למצב פלט, כך:

הגדרת חלל () {עבור (int i = 0; i <9; i ++) {pinMode (leds [i], OUTPUT); } }

אתה יכול לראות מה עשינו שם? במקום לכתוב 9 שורות קוד כדי להכריז על כל סיכה בודדת כפלט, אנו יוצרים לולאה 'for' שתחזור על עצמה 9 פעמים, בכל פעם מגדירים סיכה אחרת.

כעת עליכם להיות מסוגלים לראות כיצד אנו יכולים לעשות את אותו הדבר בדיוק בלולאת התוכנית הראשית כדי להדליק כל LED ברצף:

לולאה חלל () {עבור (int i = 0; i <9; i ++) {digitalWrite (leds [i], HIGH); עיכוב (100); digitalWrite (נוריות [i], LOW); } }

תנסה את זה. אתה יכול הורד את הקוד המלא לפרויקט של היום מכאן אם אתה? אני מעדיף לא להקליד את זה שוב (אם כי אני ממליץ לך לעשות זאת, מכיוון שזה עוזר לתהליך הלמידה).

אוקיי, אז עכשיו יש לנו רצף תאורה משעמם למדי. לתת? תוכנית אחת אחרת. רק בשביל הכיף, לא? זה הופך את זה לאקראי לחלוטין. החלף את קוד הלולאה הראשי בזה:

לולאת חלל () { int randomLed = אקראי (0,8); digitalWrite (נוריות [randomLed], HIGH); עיכוב (50); randomLed = אקראי (0,8); digitalWrite (נוריות [randomLed], LOW); }

במקום להשתמש בלולאת 'for' לאיטור על כל נורית LED, אנו בוחרים במקום מספר אקראי בין 0-9 ומנפנפים.

אני הולך להשאיר את זה שם להיום, מכיוון שכעת צריך להיות חמוש בידע מספיק כדי לתכנת את כל הרצפים החדשים ולהתנסות עם לולאות. כדי להוכיח כמה קל כל זה, אתגרתי את אשתי לחשוב על רצף שהיא? אני רוצה לראות ואז קיבלתי?אותה לתכנת זאת בעצמה, בהתחשב רק בקוד ובשיעורים שאתה? היה לנו עד כה. היא המציאה עם זה, אז תראו אם תוכלו להתאים את זה לשיעורי בית!

שאלות, הצעות, בעיות - אנא צרו קשר בתגובות.

ג'יימס הוא בעל תואר ראשון בבינה מלאכותית, והוא מוסמך CompTIA A + ו- Network +. הוא המפתח הראשי של MakeUseOf, ומבלה את זמנו הפנוי במשחקי פיינטבול VR ומשחקי לוח. הוא בנה מחשבים אישיים מאז שהיה ילד.