ה- Arduino UNO מספק את היכולת לקיים אינטראקציה עם העולם האמיתי באמצעות הסיכות הדיגיטליות שלו. אתה יכול להשתמש בסיכות אלה כדי לשלוט במכשירי LED, מנועים וממסרים, או לקרוא כניסות מחיישנים, כפתורים ומתגים. הדרכה זו תסביר כיצד להגדיר סיכות דיגיטליות, לבצע פעולות קריאה וכתיבה ולהשתמש בהן if
הצהרות להחלטות מבוססות לוגיקה בפרויקטים שלך.
מה תצטרך
- ארדואינו אונו עם כבל USB
- LED ונגד 220 אוהם (לדוגמאות פלט)
- לחצן לחיצה ונגד 10K-OHM (לדוגמאות קלט)
- חוטי לחם וגשר
- מחשב עם Arduino IDE המותקן
שלב 1: הגדרת סיכות דיגיטליות
מצבי סיכה דיגיטליים
לארדואינו אונו יש 14 סיכות דיגיטליות (D0-D13). ניתן להגדיר סיכות אלה כ:
- קֶלֶט: לקריאת אותות מחיישנים או מתגים.
- תְפוּקָה: לשלוט על נוריות LED, מנועים או מפעילים אחרים.
השתמש ב- pinMode()
פונקציה כדי להגדיר את מצב הסיכה ב setup()
פוּנקצִיָה:
pinMode(pinNumber, mode);
-
pinNumber
: הסיכה שברצונך להגדיר (למשל, 2, 3 וכו '). -
mode
: גם כןINPUT
,INPUT_PULLUP
, אוOUTPUT
.
שלב 2: כתיבה לסיכה דיגיטלית
אתה יכול לשלוט במכשירים על ידי כתיבה HIGH
אוֹ LOW
לסיכת פלט באמצעות digitalWrite()
פוּנקצִיָה:
digitalWrite(pinNumber, value);
-
value
: גם כןHIGH
(5V) אוLOW
(0V).
דוגמה: מהבהב LED
כך תוכלו להבהב LED המחובר ל- PIN 13:
#define ledPin 13 // LED connected to pin 13
void setup() {
pinMode(ledPin, OUTPUT); // Set pin 13 as an output
}
void loop() {
digitalWrite(ledPin, HIGH); // Turn the LED on
delay(1000); // Wait for 1 second
digitalWrite(ledPin, LOW); // Turn the LED off
delay(1000); // Wait for 1 second
}
שלב 3: קריאה מסיכה דיגיטלית
כדי לקרוא את מצב הסיכה, השתמש ב digitalRead()
פוּנקצִיָה:
int state = digitalRead(pinNumber);
-
state
: יהיה גם כןHIGH
אוֹLOW
מבוסס על אות הקלט.
דוגמה: קריאת לחצן לחץ
חבר כפתור לחיצה כדי להצמיד 2 עם נגן נפתח (10K-OHM). כאשר לוחצים עליו, הכפתור ישלח א HIGH
אוֹת.
#define buttonPin 2 // Button connected to pin 2
#define ledPin 13 // LED connected to pin 13
void setup() {
pinMode(buttonPin, INPUT); // Set pin 2 as an input
pinMode(ledPin, OUTPUT); // Set pin 13 as an output
}
void loop() {
int buttonState = digitalRead(buttonPin); // Read the button state
if (buttonState == HIGH) {
digitalWrite(ledPin, HIGH); // Turn on the LED if the button is pressed
} else {
digitalWrite(ledPin, LOW); // Turn off the LED otherwise
}
}
שלב 4: שימוש if
הצהרות עם סיכות דיגיטליות
if
הצהרות מאפשרות לך ליצור היגיון מותנה בתוכנית שלך. שלב קריאות דיגיטליות וכותב לביצוע פעולות על בסיס תשומות.
דוגמה: החלף LED בלחץ לחיצה
סקיצה זו מחריפה את מצב ה- LED בכל פעם שלחיצה על הכפתור:
#define buttonPin 2 // Button connected to pin 2
#define ledPin 13 // LED connected to pin 13
bool ledState = false; // Current state of the LED
bool lastButtonState = LOW; // Previous state of the button
void setup() {
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop() {
bool currentButtonState = digitalRead(buttonPin);
if (currentButtonState == HIGH && lastButtonState == LOW) {
ledState = !ledState; // Toggle the LED state
digitalWrite(ledPin, ledState ? HIGH : LOW);
}
lastButtonState = currentButtonState; // Update the button state
delay(50); // Debounce delay
}
שלב 5: שימוש מתקדם בפעולות לוגיות
אתה יכול להשתמש במספר רב if
הצהרות, else if
ומפעילים לוגיים (&&
, ||
וכו ') כדי ליצור התנהגויות מורכבות יותר.
דוגמה: בקרת רב-קלט
שליטה על LED המבוסס על מצבים של שני כפתורים:
#define button1 2 // Button 1 connected to pin 2
#define button2 3 // Button 2 connected to pin 3
#define ledPin 13 // LED connected to pin 13
void setup() {
pinMode(button1, INPUT);
pinMode(button2, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop() {
bool button1State = digitalRead(button1);
bool button2State = digitalRead(button2);
if (button1State == HIGH && button2State == HIGH) {
digitalWrite(ledPin, HIGH); // Turn on LED if both buttons are pressed
} else {
digitalWrite(ledPin, LOW); // Turn off LED otherwise
}
}
פתרון בעיות
-
LED לא נדלק:
- ודא שה- LED מחובר נכון (רגל ארוכה לסיכה החיובית).
- השתמש בנגד 220 אוהם כדי למנוע נזק.
-
כפתור לא מגיב:
- בדוק אם יש חיווט נכון עם נגדי נפתח או נשלף.
- ודא ש- PinMode מוגדר כ-
INPUT
אוֹINPUT_PULLUP
.
-
סוגיות חוביות:
- השתמש בעיכוב קטן או ליישם מנגנון DebUnce תוכנה כדי לטפל ברעש אות מכפתורים מכניים.
מַסְקָנָה
למדת כיצד לבצע פעולות קריאה וכתיבה דיגיטליות עם Arduino UNO, להגדיר מצבי סיכה ולהשתמש if
הצהרות לוגיקה מותנית. מיומנויות בסיסיות אלה מאפשרות לך לשלוט במגוון רחב של רכיבי חומרה וליצור פרויקטים אינטראקטיביים ומגיבים. התנסו עוד יותר על ידי שילוב מספר תשומות ותפוקות להתנהגות מורכבת יותר!