קריאה דיגיטלית וכתוב באמצעות Arduino Uno

Digital Read and Write Using the Arduino Uno

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


מה תצטרך

  1. ארדואינו אונו עם כבל USB
  2. LED ונגד 220 אוהם (לדוגמאות פלט)
  3. לחצן לחיצה ונגד 10K-OHM (לדוגמאות קלט)
  4. חוטי לחם וגשר
  5. מחשב עם 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 הצהרות לוגיקה מותנית. מיומנויות בסיסיות אלה מאפשרות לך לשלוט במגוון רחב של רכיבי חומרה וליצור פרויקטים אינטראקטיביים ומגיבים. התנסו עוד יותר על ידי שילוב מספר תשומות ותפוקות להתנהגות מורכבת יותר!

השאירו תגובה

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.