ה- Arduino UNO תומך בפעולות קלט ופלט אנלוגיות, ומאפשר לך ליצור אינטראקציה עם חיישנים ומפעילים הדורשים ערכים מדויקים. פעולות אנלוגיות חיוניות לבקרת מכשירים כמו נוריות LED, מנועים וקריאת כניסות מחיישנים כמו פוטנציומטרים או חיישני אור. מדריך זה ינחה אותך דרך ההתקנה, הקריאה והכתיבה האנלוגית, ושימוש בפעולות לוגיות כמו if
הצהרות עם נתונים אנלוגיים.
מה תצטרך
- ארדואינו אונו עם כבל USB
- פוטנציומטר (או כל נגד משתנה) לקלט אנלוגי
- LED ונגד 220 אוהם לפלט אנלוגי
- חוטי לחם וגשר
- מחשב עם 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%).
- מוציא אות PWM איפה
שלב 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);
}
יישומים של קריאה/כתיבה אנלוגית
- קריאת חיישנים סביבתיים (למשל, אור, טמפרטורה, לחות)
- התאמת מהירויות המנוע
- שליטה בהירות LED
- עיבוד אותות שמע
- יצירת ממשקי משתמש מבוססי אנלוגיים
פתרון בעיות
- קריאות שגויות מהחיישן: להבטיח חיווט נכון ואמת את חיבורי הפוטנציומטר.
- LED לא מדליק: אשר את כיוון ה- LED והשתמש בנגד כדי להגביל זרם.
- הפלט לא חלק: הוסף עיכוב קטן או ממוצע את ערכי הקלט ליציבות.
מַסְקָנָה
למדת כיצד לבצע פעולות קריאה וכתיבה אנלוגיות באמצעות Arduino UNO, מפה ערכי חיישן לפלטים ולהשתמש if
הצהרות לוגיקה מותנית. מיומנויות אלה הן מכריעות ליצירת פרויקטים אינטראקטיביים ואינטראקטיביים. התנסו עוד יותר על ידי שילוב חיישנים ומפעילים אנלוגיים אחרים כדי להרחיב את היכולות שלכם!