يدعم Arduino UNO عمليات الإدخال والإخراج التناظرية ، مما يتيح لك التفاعل مع أجهزة الاستشعار والمشغلات التي تتطلب قيمًا دقيقة. تعد العمليات التناظرية ضرورية للتحكم في الأجهزة مثل LEDs والمحركات ومدخلات قراءة من أجهزة استشعار مثل أجهزة قياس الجهد أو أجهزة استشعار الضوء. سوف يرشدك هذا البرنامج التعليمي من خلال الإعداد والقراءة التناظرية والكتابة ، واستخدام العمليات المنطقية مثل if
البيانات مع البيانات التناظرية.
ماذا ستحتاج
- Arduino Uno مع كابل USB
- مقياس الجهد (أو أي مقاوم متغير) للإدخال التناظرية
- LED ومقاوم 220 أوم للإخراج التناظرية
- الأسلاك الأسلاك والبلوز
- جهاز كمبيوتر مع Arduino IDE مثبت
الخطوة 1: فهم دبابيس التناظرية على أردوينو
يحتوي Arduino UNO على ستة دبابيس إدخال تمثيلية (A0-A5) يمكنها قراءة الجهد بين 0 و 5V وتحويله إلى قيمة رقمية بين 0 و 1023. بالنسبة للإخراج التناظري ، يستخدم Arduino PWM (تعديل عرض النبض) على بعض الدبابيس الرقمية تحمل علامة ~
(على سبيل المثال ، 3 ، 5 ، 6 ، 9 ، 10 ، 11).
الوظائف المستخدمة
-
المدخلات التناظرية:
analogRead(pin)
- يقرأ الجهد (0-5V) ويعيد قيمة بين 0 و 1023.
-
الإخراج التناظري:
analogWrite(pin, value)
- يخرج إشارة PWM حيث
value
يتراوح من 0 (0 ٪ دورة العمل) إلى 255 (دورة عمل 100 ٪).
- يخرج إشارة PWM حيث
الخطوة 2: إدخال الأسلاك التناظرية (مقياس الجهد)
قم بتوصيل مقياس الجهد إلى دبوس التناظرية Arduino:
دبوس الجهد | اتصال Arduino |
---|---|
1 (دبوس نهاية) | 5V |
2 (الأوسط/الإخراج) | A0 |
3 (دبوس نهاية) | GND |
الخطوة 3: إخراج الأسلاك التناظرية (LED)
قم بتوصيل LED بمقاوم 220 أوم إلى دبوس Arduino PWM (على سبيل المثال ، PIN 9):
LED دبوس | اتصال Arduino |
---|---|
ساق طويلة (+) | دبوس الرقمية 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 سطوع 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 واستخدم المقاوم للحد من التيار.
- الإخراج غير سلس: أضف تأخيرًا صغيرًا أو متوسطًا لقيم الإدخال للاستقرار.
خاتمة
لقد تعلمت كيفية تنفيذ عمليات القراءة والكتابة التناظرية باستخدام Arduino UNO ، وقيم مستشعر الخريطة إلى المخرجات ، والاستخدام if
بيانات المنطق المشروط. هذه المهارات ضرورية لخلق مشاريع تفاعلية مستجيبة. قم بتجربة مزيد من الأشياء من خلال دمج أجهزة الاستشعار والمشغلات التناظرية الأخرى لتوسيع قدراتك!