מצב ניטור של מתג (סדרת קריאה דיגיטלית) - יסודות ארדואינו

נסה את הכלי שלנו לביטול בעיות





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

סדרת קריאה דיגיטלית

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



מעבר לוועדת Arduino שלך, תצטרך את הפריטים הבסיסיים הבאים:

חוּמרָה

מתג רגעי, כפתור או מתג לדחיפה למצב ON



נגד 10k, 1/4 וואט אוהם

קרש לחם
קישורי חיבור או חוט מגשר.

מבצע מעגל

הפעולה עשויה להיעשות בשלבים הבאים:

קח 3 חתיכות של חוטי מגשר וחבר אותם ללוח הארדואינו שלך. שני החוטים, אדומים ושחורים, עוברים לשתי השורות האנכיות הארוכות בצד קרש הלחם שהופכות לחוטי האספקה ​​של הלוח בכדי לשאת את נדרש 5V DC ללוח.

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

העופרת המסוימת הזו של הכפתור מתחברת גם עם נגד 10k נפתח למעקה האספקה ​​השלילי או לקרקע. המוליך החופשי האחר של המתג מקושר לחיוב של אספקת 5 וולט.

עם החיבורים הנ'ל, המתג מתחלף או מבצע פעולה כפולה במעגל כאשר נותנים לו דחיפה.

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

במצב הלחוץ המתג מבצע גישור רגעי של שני המוליכים שלו, כך שהמוליכים שלו נתונים ל +5 וולט, מה שהופך אותם לרמה HIGH או לוגיקה 1.

בידוד פינות ה- i / o הדיגיטליות משאר הדברים, עלול להכריח את הנורית לדלל ולגרום למצמוץ לא יציב. זאת בשל העובדה שהקלט לא הועבר לשום דבר, או נשמר במצב 'תלוי' - כלומר, הוא אינו מיועד לשום הגיון מוגדר, לא גבוה ולא נמוך (+ 5 וולט או 0 וולט), זו הסיבה מדוע אנו משתמשים נגד נפתח עם המתג.

סכמטי

הבנת הקוד

בתוכנית הבאה שלמטה, אנו מתחילים בתקשורת סדרתית בתוך פונקציית ההתקנה בקצב של 9600 סיביות נתונים בשנייה, זה מתחיל בין לוח הארדואינו למחשב המצורף: Serial.begin (9600)

בשלב הבא אנו מפעילים סיכה 2 דיגיטלית, הסיכה אשר תהיה אחראית על הפלט עם מתג הדחיפה כקלט: pinMode (2, INPUT) זה משלים את 'ההתקנה' שלנו, עכשיו אנחנו מפליגים לולאה הראשית של הקוד שלנו .

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

האמור לעיל הוא מה שאנו מכנים קלט דיגיטלי, המתייחס למצב בו המתג יכול להיות רק במצב מסוים או במצב מופעל (המקובל על ידי הארדואינו כ- '1', או LOGIC HIGH) או במצב כבוי (דמיינו על ידי הארדואינו כ- '0', או LOGIC LOW), ללא שום סאטן לא מוגדר בין לבין.

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

כפי שנדון לעיל כאשר האותות הם בצורה של '1' או '0', אנו משתמשים כאן בסוג נתונים int. אנו יכולים למנות את המשתנה הזה כ- sensorValue, ולתקן אותו כך שיתאים לכל מה שקורא על סיכה דיגיטלית 2. כל אלה ניתן להשיג באמצעות שורת קוד אחת:

int sensorValue = digitalRead (2) לאחר שהארדואינו קרא את הקלט, הדפיס אותו בחזרה למחשב בצורה של ערך עשרוני.

ניתן ליישם זאת בעזרת הפקודה Serial.println () בשורה המסכמת של הקוד: Serial.println (sensorValue)

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

/*
DigitalReadSerial
Reads a digital input on pin 2, prints the result to the serial monitor
This example code is in the public domain.
*/
// digital pin 2 has a pushbutton attached to it. Give it a name:
int pushButton = 2

// the setup routine runs once when you press reset:
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600)
// make the pushbutton's pin an input:
pinMode(pushButton, INPUT)
}
// the loop routine runs over and over again forever:
void loop() {
// read the input pin:
int buttonState = digitalRead(pushButton)
// print out the state of the button:
Serial.println(buttonState)
delay(1) // delay in between reads for stability
}




קודם: בקר זרימת מים מותאם אישית עם מעגל טיימר הבא: המרת אנלוגי לדיגיטלי (אנלוגי לקרוא סדרתי) - יסודות ארדואינו