محرك DC (التيار المستمر) أبسط المحركات وأكثرها شيوعاً — يدور بمجرد توصيله بطاقة. لكن الأردوينو لا يستطيع توفير التيار الكافي لتشغيله مباشرة. هنا يأتي دور L298N — جسر H مزدوج يعمل كوسيط بين الأردوينو والمحرك، ويتيح التحكم في الاتجاه والسرعة.
// ===== تحكم محرك DC بـ L298N =====
// توصيلات المحرك A
const int ENA = 9; // PWM للسرعة
const int IN1 = 7;
const int IN2 = 8;
void setup() {
pinMode(ENA, OUTPUT);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
}
// دوران للأمام بسرعة معينة (0-255)
void forward(int speed) {
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
analogWrite(ENA, speed);
}
// دوران للخلف
void backward(int speed) {
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
analogWrite(ENA, speed);
}
// فرملة
void brake() {
digitalWrite(IN1, HIGH);
digitalWrite(IN2, HIGH);
analogWrite(ENA, 0);
}
void loop() {
forward(200); delay(2000);
brake(); delay(500);
backward(150); delay(2000);
brake(); delay(1000);
}
L298N يتحمل حتى 2 أمبير لكل قناة. للمحركات الأكبر (روبوتات ثقيلة) استخدم BTS7960 الذي يتحمل حتى 43 أمبير!