» אלקטרוניקה » ארדואינו »ארדואינו למתחילים

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


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

מה אתה צריך כדי להתחיל?
ארדואינו יוניו- 1 pc
כבל USB-1 יחידות
מגשרים 1 pc
לוח פיתוח 1 יחידות
LED אדום 4 יח '
נגן 220 אוהם 4 יחידות
נגד 10 חדרים 1 pc
כפתור ללא תיקון
פוטנציומטר
LED RGB עם קתודה משותפת

את כל זה ניתן לקנות בחנות רדיו מקומית או להזמין באינטרנט.

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

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

ארדואינו הוא לא מחשב גדול שאליו מעגלים חיצוניים יכולים להתחבר. Arduino Uno משתמש ב- Atmega 328P
זהו השבב הגדול ביותר בלוח. שבב זה מבצע תוכניות המאוחסנות בזיכרון שלו. אתה יכול להוריד את התוכנית באמצעות usb באמצעות ה- Arduino IDE. יציאת ה- USB מספקת גם כוח לארדואינו.

יש מחבר חשמל נפרד. יש שני יציאות בלוח, המיועדות 5v ו- 3.3v, הדרושים בכדי להניע מכשירים שונים. תוכלו למצוא גם סיכות המסומנות כ- GND, אלה הם מובילי קרקע (הקרקע היא 0V). לפלטפורמת הארדואינו יש גם 14 יציאות דיגיטליות (סיכות) המסומנות במספרים מ- 0 עד 13 המחוברים לצמתים חיצוניים ויש להם שני מצבים, גבוהים או נמוכים (לסירוגין או כבוי). אנשי קשר אלה יכולים לעבוד כפלטים או ככניסות, כלומר הם יכולים להעביר נתונים מסוימים ולשלוט במכשירים חיצוניים, או לקבל נתונים ממכשירים. המסקנות הבאות על הלוח נקראות A0-A5. מדובר בכניסות אנלוגיות שיכולות לקבל נתונים מחיישנים שונים. זה נוח במיוחד כשאתה צריך למדוד טווח, כגון טמפרטורה. לכניסות האנלוגיות פונקציות נוספות הניתנות להפעלה בנפרד.


כיצד להשתמש בקרש לחם.

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

על הלוח יש שורות של חורים בהם ניתן להכניס חלקים וחוטים. חלק מהנקבים האלה מחוברים זה לזה חשמלית.

שתי השורות העליונות והתחתונות מחוברות בסדרה לאורך כל הלוח. שורות אלה משמשות להפעלת המעגל. זה יכול להיות 5v או 3.3v, אך בכל מקרה, הדבר הראשון שעליך לעשות הוא לחבר 5v ו- GND ללוח הגישה, כפי שמוצג באיור. לפעמים ניתן להפריע לחיבורי השורות האלה באמצע הלוח, אם אתה צריך, אתה יכול לחבר אותם, כמוצג באיור.




החורים הנותרים שנמצאים במרכז הלוח מקובצים לחמישה חורים. הם משמשים לחיבור חלקי מעגל.

הדבר הראשון שאנו מתחברים למיקרו-בקר שלנו הוא ה- LED. דיאגרמת החיבור החשמלי מוצגת בתמונה.


מדוע אני צריך נגדי במעגל? במקרה זה, זה מגביל את הזרם שעובר דרך הנורית. כל נורית LED מיועדת לזרם ספציפי, ואם זרם זה גדול יותר, אז הנורית תיכשל. גלה איזה ערך צריך להיות הנגד באמצעות חוק אוהם. למי שלא מכיר או שכח, החוק של אוהם אומר שיש תלות לינארית של זרם במתח. כלומר ככל שנחיל מתח על הנגד, כך יזרום דרכו יותר זרם.
V = I * R
איפה Vמתח בין הנגד
אני- זרם דרך הנגד
ר- התנגדות למצוא.
ראשית, עלינו לגלות את המתח על פני הנגד. לרוב נוריות ה- 3 מ"מ או 5 מ"מ בהן תשתמש יש מתח הפעלה של 3 וולט. אז על הנגד עלינו לשלם 5-3 = 2v.

ואז אנו מחשבים את הזרם שעובר נגד הנגד.
רוב נוריות ה- 3 וה -5 מ"מ זוהרות בבהירות מלאה בזרם של 20mA. זרם יותר מזה יכול להשבית אותם, וזרם בעל עוצמה פחותה יפחית את בהירותם, מבלי לגרום נזק.

לכן אנו רוצים להדליק את הלד במעגל 5v כך שיהיה זרם של 20mA. מכיוון שכל החלקים כלולים במעגל אחד, הנגד יהיה בעל זרם של 20 mA.
אנחנו מקבלים
2V = 20 mA * R
2V = 0.02A * R
R = 100 אוהם

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

הכנס את ה- LED לחורים במרכז הלוח כך שהמסוף הארוך שלו יהיה מחובר לאחד מסופי הנגד. חבר את הקצה השני של הנגד ל- 5V, וחבר את הפלט השני של ה- LED ל- GND. הנורית צריכה להידלק.

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

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

אנטומיה של סקיצה של ארדואינו.

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

LED מהבהב בארדואינו




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



- משתמשים בפונקציה זו ב- הגדרה () חלקים מהתכנית ומשמש לאתחול המסקנות בהן תשתמשו כמקלט (קלט) או לצאת (תפוקה). אינך יכול לקרוא או לכתוב נתונים מהסיכה עד שתגדיר אותם בהתאם pinMode. לפונקציה זו יש שני טיעונים: pinNumber- זהו מספר הסיכה בו תשתמש.

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

- עיכוב. משמש לעיכוב התוכנית לתקופה מוגדרת ב- ms.
להלן הקוד שגורם להבהבת הנורית.
// LED מהבהב

int ledPin = 7; // סיכת ארדואינו שאליה מחובר הנורית

הגדרת ביטול () {
  pinMode (ledPin, OUTPUT); // הגדר את הסיכה כ- EXIT
}

לולאת חלל () {
  digitalWrite (ledPin, HIGH); // הדלק את הנורית
  עיכוב (1000); // עיכוב 1000 ms (1 שניות)
  digitalWrite (ledPin, LOW); // כבה את הנורית
  עיכוב (1000); // המתן 1 שניות
}


הסבר קטן על הקוד.
קווים המתחילים ב- "//" הם הערות של ארדואינו שמתעלמים מהן.
כל הפקודות מסתיימות ב פסיק: אם תשכח אותן תקבל הודעת שגיאה.

ledpinהוא משתנה. משתנים משמשים בתוכניות לאחסון ערכים. בדוגמה זו המשתנה ledpin הקצה ערך 7, זהו מספר הסיכה של הארדואינו. כאשר הארדואינו בתוכנית נתקל במחרוזת עם משתנה ledpin , הוא ישתמש בערך שציינו קודם.
אז תיעוד pinMode (ledPin, OUTPUT) דומה לרשומה pinMode (7, OUTPUT).
אך במקרה הראשון, מספיק לך לשנות את המשתנה והוא ישתנה בכל שורה בה הוא משמש, ובמקרה השני, כדי לשנות את המשתנה, עליך לבצע את העטים בכל פקודה.

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



כצפוי, נורית ה- LED נכבית ונרדמת לאחר שנייה אחת. נסה לשנות את העיכוב כדי לראות איך זה עובד.

ניהול מספר נוריות לד.

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



על מנת להדליק ולכבות את נוריות הלדים בתורן, עליכם לכתוב תוכנית כזו:
// רב LED מהבהב

int led1Pin = 4;
int led2Pin = 5;
int led3Pin = 6;
int led4Pin = 7;

הגדרת ביטול () {
  // הגדר סיכות כ- EXIT
  pinMode (led1Pin, OUTPUT);
  pinMode (led2Pin, OUTPUT);
  pinMode (led3Pin, OUTPUT);
  pinMode (led4Pin, OUTPUT);
}

לולאת חלל () {
  digitalWrite (led1Pin, HIGH); // הדלק את הנורית
  עיכוב (1000); // עיכוב 1 שניה
  digitalWrite (led1Pin, LOW); // כבה את הנורית
  עיכוב (1000); // עיכוב 1 שניה

  // עשה את אותו הדבר עבור 3 נוריות ה- LED האחרות
  digitalWrite (led2Pin, HIGH); // הדלק את הנורית
  עיכוב (1000); // עיכוב 1 שניה
  digitalWrite (led2Pin, LOW); // כבה את הנורית
  עיכוב (1000); // עיכוב 1 שניה

  digitalWrite (led3Pin, HIGH); // הדלק את הנורית
  עיכוב (1000); // עיכוב 1 שניה
  digitalWrite (led3Pin, LOW); // כבה את הנורית
  עיכוב (1000); // עיכוב 1 שניה

  digitalWrite (led4Pin, HIGH); // הדלק את הנורית
  עיכוב (1000); // עיכוב 1 שניה
  digitalWrite (led4Pin, LOW); // כבה את הנורית
  עיכוב (1000); // עיכוב 1 שניה
}


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

digitalWrite (led4Pin, HIGH);
עיכוב (1000);
digitalWrite (led4Pin, LOW);
עיכוב (1000); 

קוד סקיצה מלא בקובץ המצורף for.zip [720 ב] (הורדות: 1410)

התאמת בהירות LED

לפעמים תצטרך לשנות את הבהירות של נוריות ה- LED בתוכנית. ניתן לעשות זאת באמצעות הפקודה analogWrite (). פקודה זו מדליקה ומכבה את נורית LED כל כך מהר שהעין לא רואה את הבהוב הזה. אם הנורית דולקת חצי מהזמן וחצי מכבה, נראה שהיא חזותית מוארת בחצי בהירותה. זה נקרא אפנון רוחב דופק (PWM או PWM באנגלית). PWM משמש לעתים קרובות למדי, מכיוון שניתן להשתמש בו כדי לשלוט ברכיב ה"אנלוגי "באמצעות קוד דיגיטלי. לא כל סיכות הארדואינו מתאימות למטרות אלה. רק אותם מסקנות שסביבן מסומן ייעוד כזה "~"אתה תראה אותו ליד סיכות 3,5,6,9,10,11.
חבר אחד מנורות הלד שלך לאחת מפלט PWM (עבור המחבר, זהו פין 9). כעת הפעל את ה- LED המהבהב של הסקיצה, אך ראשית שנה את הפקודה digitalWrite () ב analogWrite (). analogWrite () יש לו שני טיעונים: הראשון הוא מספר הסיכה, והשני הוא ערך ה- PWM (0-255), כפי שהוא מיושם על נוריות LED, זו תהיה בהירותם, ולנועים חשמליים מהירות הסיבוב. להלן קוד דוגמה לבהירות LED שונה.
// שנה את בהירות הנורית

int ledPin = 9; // LED המחובר לפין זה
הגדרת ביטול () {
  pinMode (ledPin, OUTPUT); // לאתחל את הסיכה לפלט
}

לולאת חלל () {
  analogWrite (ledPin, 255); // בהירות מלאה (255/255 = 1)
  עיכוב (1000); // הפסקה של 1 שניות
  digitalWrite (ledPin, LOW); // כבה את הנורית
  עיכוב (1000); // הפסקה של 1 שניות

  analogWrite (ledPin, 191); // בהירות ב 3/4 (191/255 ~ = 0.75)
  עיכוב (1000); // הפסקה של 1 שניות
  digitalWrite (ledPin, LOW); // כבה את הנורית
  עיכוב (1000); // הפסקה של 1 שניות

  analogWrite (ledPin, 127); // חצי בהירות (127/255 ~ = 0.5)
  עיכוב (1000); // הפסקה של 1 שניות
  digitalWrite (ledPin, LOW); // כבה את הנורית
  עיכוב (1000); // הפסקה של 1 שניות

  analogWrite (ledPin, 63); // בהירות רבעונית (63/255 ~ = 0.25)
  עיכוב (1000); // הפסקה של 1 שניות
  digitalWrite (ledPin, LOW); // כבה את הנורית
  עיכוב (1000); // הפסקה של 1 שניות
}


נסה לשנות את ערך PWM בפקודה analogWrite ()לראות כיצד זה משפיע על הבהירות.
בשלב הבא, תלמד כיצד להתאים את הבהירות בצורה חלקה ממלואה לאפס. אתה יכול, כמובן, להעתיק פיסת קוד 255 פעמים
analogWrite (ledPin, בהירות);
עיכוב (5); // עיכוב קצר
בהירות = בהירות + 1;

אבל, אתה מבין - זה לא יהיה פרקטי. לשם כך, עדיף להשתמש בלולאת FOR ששימשה בעבר.
הדוגמה הבאה משתמשת בשני מחזורים, אחד להפחתת הבהירות מ 255 ל- 0
עבור (בהירות אינט = 0; בהירות = 0; בהירות -) {

analogWrite (ledPin, בהירות);
עיכוב (5);

}

עיכוב (5) משמש להאטת קצב העלייה והירידה של הבהירות 5 * 256 = 1280 ms = 1.28 שניות.)
בשורה הראשונה משתמשים "בהירות-"כך שערך הבהירות יורד ב -1, בכל פעם שהמחזור חוזר. שים לב שהמחזור יעבוד כל עוד בהירות> = 0החלפת השלט > על השלט >= כללנו 0 בטווח הבהירות. סקיצה זו מדוגמת למטה.
// לשנות את הבהירות בצורה חלקה

int ledPin = 9; // LED מחובר לפין זה

הגדרת ביטול () {
  pinMode (ledPin, OUTPUT); // לאתחל את הסיכה ליציאה
}

לולאת חלל () {
  // להגדיל בהדרגה את הבהירות (0 עד 255)
  עבור (בהירות אינט = 0; בהירות = 0; בהירות -) {
    analogWrite (ledPin, בהירות);
    עיכוב (5);
  }

  עיכוב (1000); // המתן 1 שניות
 // להפחית בצורה חלקה את הבהירות (255 עד 0)
  עבור (בהירות אינט = 255; בהירות> = 0; בהירות -) {
    analogWrite (ledPin, בהירות);
    עיכוב (5);
  }

  עיכוב (1000); // המתן 1 שניות
}
}

זה לא נראה במיוחד, אבל הרעיון ברור.



RGB LED ו- Arduino

נורת ה- RGB הינה למעשה שלוש נורות LED בצבעים שונים בדיור אחד.



כולל נוריות LED שונות עם בהירות שונה, תוכלו לשלב ולקבל צבעים שונים. עבור ארדואינו, שם מספר מדרגות הבהירות הוא 256, אתה מקבל 256 ^ 3 = 16581375 צבעים אפשריים. במציאות, כמובן, יהיו פחות כאלה.
הנורית בה נשתמש היא הקתודה הנפוצה. כלומר כל שלושת נוריות ה- LED מחוברות באופן מבני באמצעות קתודות למסוף אחד. נחבר סיכה זו לסיכת ה- GND. יש לחבר את המסופים הנותרים דרך הנגדים המגבילים למסופי ה- PWM. הכותב השתמש במסקנות 9-11, וכך ניתן יהיה לשלוט על כל נורית LED בנפרד. הסקיצה הראשונה מראה כיצד להדליק כל נורית בנפרד.



// RGB LED - מבחן

// חיבורי סיכות
int אדום = 9;
int ירוק = 10;
int כחול = 11;

הגדרת ביטול () {
  pinMode (אדום, פלט);
  pinMode (כחול, פלט);
  pinMode (ירוק, פלט);
}

לולאת חלל () {
  // הפעל / כבה את הנורית האדומה
  digitalWrite (אדום, גבוה);
  עיכוב (500);
  digitalWrite (אדום, נמוך);
  עיכוב (500);
  
  // הפעל / כבה את הנורית הירוקה
  digitalWrite (ירוק, גבוה);
  עיכוב (500);
  digitalWrite (ירוק, נמוך);
  עיכוב (500);

  // הפעל / כבה את הנורית הכחולה
  digitalWrite (כחול, גבוה);
  עיכוב (500);
  digitalWrite (כחול, נמוך);
  עיכוב (500);
}


הדוגמה הבאה משתמשת בפקודות analogWrite () ולקבל ערכי בהירות אקראיים שונים עבור נוריות LED. תוכלו לראות צבעים שונים משתנים באופן אקראי.
// RGB LED - צבעים אקראיים

// חיבורי סיכות
int אדום = 9;
int ירוק = 10;
int כחול = 11;
הגדרת ביטול () {
  pinMode (אדום, פלט);
  pinMode (כחול, פלט);
  pinMode (ירוק, פלט);
}
לולאת חלל () {
  // בחר צבע אקראי
  analogWrite (אדום, אקראי (256));
  analogWrite (כחול, אקראי (256));
  analogWrite (ירוק, אקראי (256));
  עיכוב (1000); // המתן שנייה
}


אקראי (256)מחזיר מספר אקראי בטווח שבין 0 ל- 255.
בקובץ המצורף יש רישום המדגים מעברים חלקים של צבעים מאדום לירוק, ואז לכחול, אדום, ירוק וכו '. מעברים [373 ב] (הורדות: 386)
דוגמה לשרטוט עובדת, אך יש הרבה קוד כפול. אתה יכול לפשט את הקוד על ידי כתיבת פונקציית העזרה שלך, שתשנה בצורה חלקה צבע אחד למשנהו.
הנה איך זה ייראה: פונקציה [263 ב] (הורדות: 420)
בואו נסתכל על ההגדרה פונקציה בחלקים. פונקציה הנקראת פאדר ויש לו שני טיעונים. כל טיעון מופרד בפסיק ויש לו סוג המוצהר בשורה הראשונה בהגדרת הפונקציה: fader void (int color1, int color2). אתה רואה ששני הטיעונים מוכרזים כ- int, והם מקבלים שמות צבע 1 ו צבע 2 כמשתנים מותנים להגדרת פונקציה. בטל פירושו שהפונקציה לא מחזירה ערכים כלשהם, היא פשוט מבצעת פקודות. אם היה צורך לכתוב פונקציה שהחזירה את תוצאת הכפל, זה היה נראה כך:
מכפיל אינט (int מספר 1, מספר מספר 2) {

מוצר int = מספר 1 * מספר 2;
מוצר להחזיר;

} 

שימו לב איך הכרזנו על סוג int כסוג החזרה במקום זאת
בטל.
בתוך הפונקציה יש פקודות בהן השתמשת כבר בסקיצה הקודמת, רק את מספרי הפינים הוחלפו על ידי צבע 1 ו צבע 2. פונקציה הנקראת פאדר, טענותיו מחושבות כ color1 = אדום ו color2 = ירוק. הגרף המלא בארכיון באמצעות פונקציות פונקציות [392 ב] (הורדות: 320)

כפתור

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

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

המשמעות היא שעד לחיצה על הכפתור הזרם לא זורם דרכו, ואחרי השחרור הכפתור חוזר למקומו המקורי.
במעגל, בנוסף לכפתור, משתמשים בנגד. במקרה זה, זה לא מגביל את הזרם, אלא "מושך" את הכפתור ל 0v (GND). כלומר עד שנלחץ על הכפתור על סיכת הארדואינו אליו הוא מחובר, הרמה תהיה נמוכה. הנגד המשמש במעגל 10 קילו.

// הגדר את לחיצת הכפתור
int buttonPin = 7;
הגדרת ביטול () {
  pinMode (buttonPin, INPUT); // לאתחל את סיכת הקלט
  Serial.begin (9600); // לאתחל את היציאה הסדרתית
}
לולאת חלל () {
  if (digitalRead (buttonPin) == HIGH) {// אם הכפתור נלחץ
    Serial.println ("לחוץ"); // הדפס "לחוץ"
  } אחרת {
    Serial.println ("לא דחוס"); // אחרת "לא דחוס"
  }
}

בסקיצה זו יש כמה צוותים חדשים.
הפקודה הזו לוקחת את הערך גבוה (גבוה) ונמוך (רמה נמוכה) של הפלט שאנחנו בודקים. בעבר, בהתקנה (), יש להגדיר פלט זה לקלט.
; // איפה buttonPin הוא מספר הסיכה שאליו הכפתור מחובר.
היציאה הסדרתית מאפשרת לך לשלוח הודעות Arduino למחשב, ואילו הבקר עצמו מנהל את התוכנית. זה שימושי לניפוי באגים של תוכנית, שליחת הודעות למכשירים או אפליקציות אחרות. כדי לאפשר העברת נתונים דרך היציאה הסדרתית (המכונה גם UART או USART), עליך לאתחל אותם בהתקנה ()

Serial.begin () טענה אחת בלבד היא קצב העברת הנתונים בין הארדואינו למחשב.
סקיצה, הפקודה משמשת להצגת הודעה על המסך ב- IDE של Arduino (כלים >> צג סידורי).
- העיצוב מאפשר לך לשלוט על התקדמות התוכנית על ידי שילוב של כמה צ'קים במקום אחד.
אם (אם) digitalRead מחזיר HIGH, אז המילה "לחוץ" מוצגת על הצג. אחרת (אחרת) המילה "סחוט" מוצגת על הצג. כעת תוכלו לנסות להדליק ולכבות את הלחץ בלחיצת כפתור.
// זיהוי לחץ על כפתור עם פלט LED
int buttonPin = 7;
int ledPin = 8;
הגדרת ביטול () {
  pinMode (buttonPin, INPUT); // הפעם נקבע את סיכת הכפתור ל- INPUT
  pinMode (ledPin, OUTPUT);
  Serial.begin (9600);
}
לולאת חלל () {
  if (digitalRead (buttonPin) == HIGH) {
    digitalWrite (ledPin, HIGH);
    Serial.println ("לחוץ");
  } אחרת {
    digitalWrite (ledPin, LOW);
    Serial.println ("לא דחוס");
  }
}


קלט אנלוגי.

אנלוגי קריאה מאפשר לקרוא נתונים מאחד מהסיכות האנלוגיות של Arduino ומציג ערך בטווח שבין 0 (0V) ל- 1023 (5V). אם המתח בכניסה האנלוגית הוא 2.5 וולט, 2.5 / 5 * 1023 = 512 יודפס
אנלוגי קריאה יש רק טיעון אחד- זהו מספר הקלט האנלוגי (A0-A5). הסקיצה הבאה מספקת קוד לקריאת מתח מפוטנציומטר. לשם כך, חבר חיבור נגד משתנה, הפינים הקיצוניים לסיכות 5V ו- GND, והסיכה האמצעית לכניסה A0.


הרץ את הקוד הבא והסתכל במוניטור הסדרתי כיצד הערכים משתנים בהתאם לסיבוב ידית הנגד.
// קלט אנלוגי

int potPin = A0; // הפלט המרכזי של הפוטנציומטר מחובר לסיכה זו

הגדרת ביטול () {
  // הסיכה האנלוגית מופעלת על ידי קלט כברירת מחדל, לכן אין צורך באתחול
  Serial.begin (9600);
}

לולאת חלל () {
  int potVal = analogRead (potPin); // potVal הוא מספר בין 0 ל 1023
  Serial.println (potVal);
}

הסקיצה הבאה משלבת סקיצה של לחיצת כפתור ורישום בקרת בהירות LED. הנורית נדלקת מהכפתור, והפוטנציומטר ישלט על בהירות הזוהר.
// גילוי לחיצת כפתור עם פלט לד ועוצמה משתנה
int buttonPin = 7;
int ledPin = 9;
int potPin = A0;
הגדרת ביטול () {
  pinMode (buttonPin, INPUT);
  pinMode (ledPin, OUTPUT);
  Serial.begin (9600);
}
לולאת חלל () {
  if (digitalRead (buttonPin) == HIGH) {// אם לחצו על הכפתור
    int analogVal = analogRead (potPin);
    int scaledVal = מפה (analogVal, 0, 1023, 0, 255);
    analogWrite (ledPin, scaledVal); // הפעל led בעוצמה שנקבעה על ידי סיר
    Serial.println ("לחוץ");
  } אחרת {
    digitalWrite (ledPin, LOW); // כבה אם לא נלחץ על הכפתור
    Serial.println ("לא מודגש");
  }
}
8.7
9
9

הוסף תגובה

    • לחייךמחייךxaxaבסדרלא יודעיאהוnea
      בוסשריטהשוטהכןכן כןאגרסיביסודי
      סליחהריקודריקוד 2ריקוד 3סליחהעזרהמשקאות
      עצורחבריםטובטובשריקהלהתנדנדלשון
      עשןמוחא כפייםמשוגעלהכריזלזלזלdon-t_mentionלהוריד
      חוםלא מועילצחוק 1מדמפגשמסגדשלילי
      לא_יפופקורןלהענישלקרואלהפחידמפחידחיפוש
      מתגרהתודהזהלרמזאמניקחריףמסכים
      רעדבורהשחורblum3סומקלהתפארשעמום
      מצונזרהנאהסוד 2לאייםניצחוןיוsun_bespectacled
      שוקכבודחחחקדמהברוך הבאkrutoyya_za
      ya_dobryiעוזרne_huliganne_othodiפלומהאיסורקרוב
4 פירוש
כך זה עובד כמו שצריך - // הגבירו בהדרגה את הבהירות (0 עד 255)
עבור (בהירות אינט = 0; בהירות <= 255; בהירות ++) {
analogWrite (ledPin, בהירות);
עיכוב (5);
בקומפילציה נותן שגיאה ארדואינו: 1.6.5 (Windows 7), לוח "Arduino Nano, ATmega328"

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

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

הסבירו בבקשה.

אנו ממליצים לך לקרוא:

תן אותו לסמארטפון ...