קטגוריות: מאמרים מוצגים » אלקטרוניקה מעשית
מספר צפיות: 67360
הערות לכתבה: 7

חיבור ותכנות של ארדואינו למתחילים

 

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


מה זה ארדואינו?

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

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

מה זה ארדואינו?

מה הלוח הראשון של ארדואינו שקנה ​​למתחיל חדש?

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

Arduino uno

בחנויות מקומיות לשנת 2017 מחירם כ 4-5 דולרים. בדגמים מודרניים, Atmega328 הוא לבה.

Arduino uno

תמונת לוח Arduino ופענוח פונקציות של כל סיכה, Aroutino UNO pinout

בקר המיקרו בלוח זה הוא שבב ארוך בחבילת DIP28, מה שמעיד שיש לו 28 רגליים.

הלוח הפופולרי הבא עולה כמעט פי שניים מהקודם - 2-3 דולר. זה הלוח ארדואינו ננו. לוחות בפועל בנויים על ידי אותו Atmega328, הם דומים באופן פונקציונלי ל- UNO, ישנם הבדלים בגדלים ופתרון תואם עם USB, עוד על כך בהמשך. הבדל נוסף הוא שתקע, בצורת מחטים, מסופק לחיבור התקנים ללוח המעגל.

ארדואינו ננו

מספר הסיכות (הרגליים) של הלוח הזה זהה, אך ניתן לשים לב כי בקר המיקרו מיוצר בחבילת TQFP32 קומפקטית יותר, ADC6 ו- ADC7 מתווספים למקרה, שתי הרגליים ה"אקסטרה "האחרות משכפלות את אוטובוס הכוח. מידותיו די קומפקטיות - בערך בגודל אגודל כף היד.

ארנואי ננו 

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

השוואה בין גודל מיני Arduino Nano לעומת Pro Mini

השוואה בין גודל מיני Arduino Nano לעומת Pro Mini

זהו לוח האם הקטן מכל שנחשבים, אחרת הוא דומה לשניים הקודמים, ו- Atmega328 הוא עדיין ליבו. לא נשקול לוחות אחרים, מכיוון שמדובר במאמר למתחילים והשוואת הלוחות הנו נושא של מאמר נפרד.

Aroutino Pro Mini pinoutבחלקו העליון, תרשים החיבור USB-UART, סיכה "GRN" - מחובר למעגל האיפוס של בקר המיקרו, יתכן שהוא ייקרא אחרת, שעבורם אתה צריך לברר בהמשך.

סיכום:

אם UNO נוח לפרוטוטייפים, אז ננו ו- Pro Mini נוחים לגירסאות הסופיות של הפרויקט שלך, מכיוון שהם תופסים מעט מקום.

ארדואינו למתחילים

כיצד לחבר את ארדואינו למחשב?

ארדואינו אונו וננו מתחברים למחשב באמצעות USB. יחד עם זאת, אין תמיכה בחומרה ליציאת ה- USB, כאן נעשה שימוש בפתרון מעגלי המרה ברמה, המכונה בדרך כלל USB-to-Serial או USB-UART (rs-232). במקביל, מהבהב למיקרו-בקר מטען אתחול מיוחד של ארדואינו, המאפשר להבהב באוטובוסים אלה.

ב- Arduino Uno, ligature זה מיושם על בקר מיקרו עם תמיכת USB - ATmega16U2 (AT16U2). מסתבר שמבקר המיקרו הנוסף על הלוח נחוץ לצורך הברקה של המיקרו-בקר הראשי.

בארדואינו ננו, זה מיושם על ידי השבב FT232R, או CH340 האנלוגי שלו. זה לא מיקרו-בקר - זהו ממיר רמה, עובדה זו מקלה על הרכבת הארדואינו ננו מאפס במו ידיך.

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

לפני כן לא נתקלתי בכך וחשבתי שכל ממירי ה- USB-UART היו מורכבים ב- FT232, הייתי צריך להוריד מנהלי התקנים, קל מאוד למצוא אותם לפי בקשה של מנהל התקן Arduino ch340. לאחר התקנה פשוטה - זה עבד!

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


מה עלי לעשות אם ללוח שלי אין USB?

ה- Arduino Pro Mini קטן יותר. זה הושג על ידי הסרת מחבר ה- USB לקושחה ואותו ממיר USB-UART. לכן יש לרכוש אותו בנפרד. הממיר הפשוט ביותר ב- CH340 (הזול ביותר), CPL2102 ו- FT232R, למכירה עולה החל מ -1 דולר.

בעת הקנייה, שימו לב לאיזה מתח מתאם זה מיועד. Pro mini זמין בגרסאות 3.3 ו -5 V, מגשר ממוקם לרוב על הממירים כדי לעבור על מתח האספקה.

ארדואינו פרו מיני

כאשר מהבהבים את ה- Pro Mini, רגע לפני שהוא מתחיל, עליך ללחוץ על RESET, עם זאת, בממירים עם DTR אינך צריך לעשות זאת, דיאגרמת החיבור באיור למטה.

תרשים חיבור לקושחה

אליהם מצטרפים מסופים מיוחדים "אימא-מאמא" (נקבה-נקבה).

חיבור ארדואינו

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

תקע

איך לכתוב תוכניות לארדואינו?

כדי לעבוד עם סקיצות (שם הקושחה הוא בשפה של הארדואינו), ישנה סביבה משולבת מיוחדת לפיתוח ה- Arduino IDE, תוכלו להוריד אותו בחינם מהאתר הרשמי או מכל משאב נושאי, לרוב אין בעיות בהתקנתו.

תוכנית לארדואינו

כך נראה ממשק התוכנית. אתה יכול לכתוב תוכניות בשפה C AVR מפושטת במיוחד שפותחה במיוחד ל arduino, למעשה מדובר בערכת ספריות בשם Wiring, כמו גם בשפה C AVR טהורה. השימוש בו מקל על הקוד ומזרז את עבודתו.

בחלקו העליון של החלון יש תפריט מוכר בו תוכלו לפתוח את הקובץ, הגדרות, לבחור את הלוח איתו אתם עובדים (Uno, Nano ורבים, רבים אחרים) וגם לפתוח פרויקטים עם דוגמאות קוד מוכנות. להלן קבוצת כפתורים לעבודה עם קושחה, המפתחות שתראו באיור למטה.

ממשק תכנית

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


יסודות תכנות של Arduino IDE

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

# כלול את biblioteka.h; // לחבר את הספריה בשם "Biblioteka.h"

# הגדר peremennaya 1234; // הכרז על משתנה בערך 1234

הפקודה Define מאפשרת למהדר לבחור את סוג המשתנה, אך באפשרותך להגדיר אותו ידנית, לדוגמה, מספר שלם או ציפה של נקודה צפה.

int led = 13; // יצר את המשתנה "הוביל" והקצה לו את הערך "13"

התוכנית יכולה לקבוע את מצב הסיכה כ -1 או 0. 1 הוא יחידה הגיונית, אם הסיכה 13 היא 1, אז המתח ברגלו הפיזית יהיה שווה למתח האספקה ​​של המיקרו-בקר (עבור arduino UNO וננו - 5 V)

האות הדיגיטלי מוקלט באמצעות הפקודה digitalWrite (סיכה, ערך), למשל:

digitalWrite (הוביל, גבוה); // כתוב את היחידה לפין 13 (הכרזנו עליו לעיל) יומן. יחידות.

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

digitalWrite (13, גבוה); // הגדר סיכה 13 לאחת

לעתים קרובות פונקצית השהיית הזמן המבוקשת נקראת על ידי הפקודה עיכוב (), שערכה נקבע באלפיות השנייה, מיקרו-שניות מושגות באמצעות

עיכוב מיקרו שניות () עיכוב (1000); // בקר מיקרו יחכה 1000 שניות (1 שניה)

הגדרות יציאה לכניסה ויציאה מוגדרות בפונקציה {} הגדרת הריק {}, עם הפקודה:

הגדרת ביטול () {

pinMode (NOMERPORTA, OUTPUT / INPUT); // ארגומנטים - שם משתנה או מספר יציאה, קלט או פלט לבחירה

}

לולאה בטלה {}


הבנת תוכנית Blink הראשונה

כסוג של "שלום, עולם" עבור בקרי מיקרו, יש תוכנית מהבהבת לד, בואו ננתח את הקוד שלה:

בהתחלה, עם הפקודה pinMode, אמרנו למיקרו-בקר להקצות יציאה עם נורית לד לפלט.כבר שמתם לב שהקוד אינו מצהיר את המשתנה “LED_BUILTIN”, העובדה היא שב- Uno, Nano ולוחות אחרים מהמפעל, ה- LED המובנה מחובר לפין 13 והוא מולחם ללוח. זה יכול לשמש על ידיך לצורך אינדיקציה בפרויקטים שלך או לבדיקה הפשוטה ביותר של התוכניות המהבהבות שלך.

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

האם הכל עובד והכל ברור? ואז המשך!



אנו קוראים את הערך מהיציאה האנלוגית ומשתמשים בנתוני הקריאה

בקר המיקרו AVR Atmega328 כולל ממיר אנלוגי לדיגיטלי מובנה 10 סיביות. ה- ADC של 10 סיביות מאפשר לקרוא את ערך המתח בין 0 ל 5 וולט, במרווחים של 1/1024 מכל טווח המשרעת של האות (5 וולט).

כדי להבהיר, שקול את המצב, נניח שערך המתח בכניסה האנלוגית הוא 2.5 וולט, ואז בקר המיקרו יקרא את הערך מהסיכה "512" אם המתח הוא 0 - "0", ואם 5 V - (1023). 1023 - מכיוון שהספירה עוברת מ- 0, כלומר 0, 1, 2, 3 וכו '. עד 1023 - בסך הכל 1024 ערכים.

כך זה נראה בקוד, באמצעות הדוגמה הרגילה "Analog קלט"

חיישן int = A0;

int ledPin = 13;

int חיישן ערך = 0;

הגדרת ביטול () {

pinMode (ledPin, OUTPUT);

}

לולאת חלל () {

sensorValue = analogRead (sensorPin);

digitalWrite (ledPin, HIGH);

עיכוב (sensorValue);

digitalWrite (ledPin, LOW);

עיכוב (sensorValue);

}

ערכת החיבור של הפוטנציומטר לארדואינו, באנלוגיה, הפלט המרכזי שתוכלו לחבר לכל קלט אנלוגי

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

הצהירו על משתנים:

  • Ledpin - להקצות באופן עצמאי סיכה עם LED מובנה לפלט ולתת שם אינדיבידואלי;

  • sensorPin - קלט אנלוגי, מוגדר בהתאם לסימון שעל הלוח: A0, A1, A2 וכו ';

  • sensorValue - משתנה לאחסון ערך קריאה שלם והמשך העבודה איתו.

הקוד עובד כך: sensorValue שמור את הערך האנלוגי הנקרא באמצעות sensorPin (הפקודה analogRead). - כאן מסתיימת העבודה עם האות האנלוגי, ואז הכל כמו בדוגמה הקודמת.

אנו כותבים את היחידה ב- ledPin, הנורית נדלקת ומחכה לזמן השווה לערך של sensorValue, כלומר מ- 0 עד 1023 אלפיות השנייה. כבה את הנורית והמתן שוב לפרק זמן זה שלאחריו הקוד חוזר.

לפיכך, לפי מיקום הפוטנציומטר, אנו קובעים את התדר המהבהב של הנורית.


פונקציית מפה עבור Arudino

לא כל הפונקציות למפעילים (אני לא יודע) תומכות ב- "1023" כטיעון, למשל, הסרוו מוגבלת בזווית הסיבוב, כלומר בחצי מהפכה (180 מעלות) (חצי מהפכה) של מנוע הסרוו, הטענה המרבית של הפונקציה היא "180"

עכשיו לגבי התחביר: מפה (הערך שאנחנו מתרגמים הוא הקלט המינימלי, הקלט המרבי, הפלט המינימלי, הפלט המרבי).

בקוד זה נראה כך:

(מפה (analogRead (סיר), 0, 1023, 0, 180));

אנו קוראים את הערך מהפוטנציומטר (analogRead (סיר)) מ- 0 ל 1023, ובפלט נקבל מספרים מ- 0 ל- 180

ערכי מפת ערך:

  • 0=0;

  • 1023=180;

בפועל, אנו מיישמים זאת על עבודה של אותו קוד סרוו, עיין בקוד עם ה- Arduino IDE, אם קראת בעיון את הסעיפים הקודמים, אז זה לא מצריך הסבר.

ותרשים החיבור.

תרשים חיווט

מסקנות Arduino הוא כלי נוח מאוד ללמוד כיצד לעבוד עם בקרי מיקרו. ואם אתה משתמש ב- C AVR טהור, או כפי שהוא מכונה לפעמים "טהור C", תקטין משמעותית את משקל הקוד ותשתלב יותר בזיכרון של מיקרו-בקר, כתוצאה מכך תקבל לוח ניפוי מצוין מתוצרת המפעל עם קושחת USB.

ארדואינו למתחילים

חוות דעתו של המחבר:

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

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

למידע נוסף על ארדואינו ותכונות השימוש בו בסכימות שונות, עיין בספר האלקטרוני -ארדואינו לדמויות. מדריך מעשי מאויר.

ראה גם באתר elektrohomepro.com:

  • שיטות קריאה ובקרה של Arduino עבור נמלי קלט / פלט
  • איזה לוח ארדואינו לבחור
  • סוגים וסידור מבקרי מיקרו AVR
  • שלט רחוק של מיקרו: IR Remote, Arduino, ESP8266, 433 ...
  • חיבור חיישנים אנלוגיים לארדואינו, חיישני קריאה

  •  
     
    הערות:

    מספר 1 כתב: אלקטרומג | [ציטוט]

     
     

    על איזה ספרות על לימוד קוד תכנות אתה ממליץ?

     
    הערות:

    מס '2 כתב: אנדריי | [ציטוט]

     
     

    אלקטרומגאוללי זומר. תכנות לוח מיקרו-בקר של ארדואינו / Freeduino, מאת ג'רמי בלום. אנו לומדים את ארדואינו. כלים וטכניקות לקסם טכני, ג'ון בוקסל. אנו לומדים את ארדואינו. 65 פרויקטים של עשה זאת בעצמך. ספרים על ארדואינו על אוזון: electro-bg.tomathouse.com/arduino_books.php

     
    הערות:

    מס '3 כתב: ויקטור | [ציטוט]

     
     

    חומר מאוד מעניין ומרגש, תודה!

     
    הערות:

    # 4 כתב: אוראל | [ציטוט]

     
     

    תודה על המידע, פונקציית "המפה" הייתה מאוד שימושית, תהיתי איך להתמצא, רק התחלתי ללמוד צעצועים בארדואינו.

     
    הערות:

    מס '5 כתב: דימה | [ציטוט]

     
     

    משהו שלא מצאתי למגני ארדואינו לשיתוף ב- mil-std-1553b, אם כי עבור אוטובוסים קומפניים - ערימות, ממשק פופולרי מאוד. לתקוע איפה שאתה יכול לחפש-לקנות.

    p.s. התאריך של המאמר לא מוצג - אולי היא בת 10 וכבר לא צריכה לכתוב תגובות?

     
    הערות:

    מס '6 כתב: ארמינו | [ציטוט]

     
     

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

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

     
    הערות:

    מס '7 כתב: אולג | [ציטוט]

     
     

    חבר'ה, תגידו לי, איפה למדת לתכנת? סקרתי הרבה מידע ואף אחד לא כתב בצורה ברורה. כאן, כל המידע אינו מיועד למתחילים, באמת הרבה לא ברור, אנדרסטייטס. הרבה מילים נכתבו עליהן לא מילה, למשל, כותב המחבר, בהתחלה אתה צריך להכריז על הספרייה ולהיכנס ל- #include biblioteka.h; // אבל על המילה הזו הוא לא כתב כלום # כלול מדוע ניתן להבין את כל זה. כבר חסרה לי סבלנות, אף אחד לא יכול להסביר בצורה הרגילה ולהסביר אז מה היה קורה כאן יש צורך לכתוב את זה. ובכן, כמובן שזה אפס, אבל אני מנסה לקרוא, אני לא רואה שום דבר לא מובן, מה שלא מסביר הרבה מיותר. ואני יכול לומר שאני לא טיפש מטופש, אני יכול לתקן כמעט כל אלקטרוניקה, כלומר אני חברים עם הראש שלי, אבל אני לא מבין את זה כי הם כותבים את אלה שיודעים, אבל הם שכחו את הניואנסים כפי שהם עצמם התעמקו בזה.