אנלוגי לקרוא וכתוב באמצעות Arduino Uno

Analog Read and Write Using the Arduino Uno

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


מה תצטרך

  1. ארדואינו אונו עם כבל USB
  2. פוטנציומטר (או כל נגד משתנה) לקלט אנלוגי
  3. LED ונגד 220 אוהם לפלט אנלוגי
  4. חוטי לחם וגשר
  5. מחשב עם Arduino IDE המותקן

שלב 1: הבנת סיכות אנלוגיות על ארדואינו

ל- Arduino UNO יש שישה סיכות קלט אנלוגיות (A0-A5) שיכולות לקרוא מתח בין 0 ל- 5V ולהמיר אותו לערך דיגיטלי בין 0 ל 1023. לפלט אנלוגי, ארדואינו משתמש ב- PWM (אפנון רוחב דופק) על סיכות דיגיטליות מסוימות מסומן עם ~ (למשל, 3, 5, 6, 9, 10, 11).

פונקציות המשמשות

  • קלט אנלוגי: analogRead(pin)
    • קורא מתח (0-5V) ומחזיר ערך בין 0 ל 1023.
  • פלט אנלוגי: analogWrite(pin, value)
    • מוציא אות PWM איפה value נע בין 0 (0% מחזור חובה) ל 255 (מחזור חובה של 100%).

שלב 2: קלט אנלוגי חיווט (פוטנציומטר)

חבר פוטנציומטר לסיכה אנלוגית של ארדואינו:

סיכת פוטנציומטר חיבור ארדואינו
1 (סיכת סיכה) 5V
2 (אמצע/פלט) A0
3 (סיכת סיכה) GND

שלב 3: חיווט פלט אנלוגי (LED)

חבר נורית LED עם נגד 220 אוהם לסיכת PWM של ארדואינו (למשל, סיכה 9):

סיכת LED חיבור ארדואינו
רגל ארוכה (+) סיכה דיגיטלית 9
רגל קצרה (-) GND

שלב 4: קריאת קלט אנלוגי

השתמש ב- analogRead() פונקציה לקריאת נתונים מהפוטנציומטר:

קוד דוגמה: קריאת קלט אנלוגי

#define potPin A0 // Potentiometer connected to A0

void setup() {
  Serial.begin(9600);
  Serial.println("Analog Input Test");
}

void loop() {
  int sensorValue = analogRead(potPin); // Read analog value
  Serial.print("Sensor Value: ");
  Serial.println(sensorValue);
  delay(500); // Wait for half a second
}

הפעל את הקוד וצפה בערכי הפוטנציומטר (0-1023) במוניטור הסידורי.


שלב 5: כתיבת פלט אנלוגי

השתמש ב- analogWrite() פונקציה כדי לשלוט בבהירות של LED:

קוד דוגמה: פלט אנלוגי ל- LED

#define ledPin 9 // LED connected to pin 9

void setup() {
  pinMode(ledPin, OUTPUT); // Set LED pin as output
}

void loop() {
  for (int brightness = 0; brightness <= 255; brightness++) {
    analogWrite(ledPin, brightness); // Increase brightness
    delay(10);
  }

  for (int brightness = 255; brightness >= 0; brightness--) {
    analogWrite(ledPin, brightness); // Decrease brightness
    delay(10);
  }
}

שלב 6: שילוב קלט ופלט אנלוגי

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

קוד דוגמה: פוטנציומטר שולט בהירות LED

#define potPin A0 // Potentiometer connected to A0
#define ledPin 9  // LED connected to pin 9

void setup() {
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  int sensorValue = analogRead(potPin); // Read potentiometer value

  int brightness = map(sensorValue, 0, 1023, 0, 255); // Map to PWM range
  analogWrite(ledPin, brightness); // Set LED brightness

  Serial.print("Sensor Value: ");
  Serial.print(sensorValue);
  Serial.print(" -> Brightness: ");
  Serial.println(brightness);

  delay(100);
}

שלב 7: שימוש if הצהרות עם נתונים אנלוגיים

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

קוד דוגמה: בקרה מותנית

#define potPin A0 // Potentiometer connected to A0
#define ledPin 9  // LED connected to pin 9

void setup() {
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  int sensorValue = analogRead(potPin);

  if (sensorValue > 512) {
    analogWrite(ledPin, 255); // Full brightness if sensor value > 512
    Serial.println("Bright!");
  } else {
    analogWrite(ledPin, 0); // Turn off LED otherwise
    Serial.println("Off");
  }

  delay(500);
}

יישומים של קריאה/כתיבה אנלוגית

  1. קריאת חיישנים סביבתיים (למשל, אור, טמפרטורה, לחות)
  2. התאמת מהירויות המנוע
  3. שליטה בהירות LED
  4. עיבוד אותות שמע
  5. יצירת ממשקי משתמש מבוססי אנלוגיים

פתרון בעיות

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

מַסְקָנָה

למדת כיצד לבצע פעולות קריאה וכתיבה אנלוגיות באמצעות 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.