[quote=“Sunat, post:1, topic:18168”]
Привествую. Я новичок по ардуино но очень хочется собирать робот с двумя двигателем пожалуйста помогите писать код для этого:
Ардуино уно
2 дс двигатель 12 воль
Акб 12.в
2 драйвер BTS7960
И 4 кнопки
Задача такая чтобы робот двигался с кнопками перед назад направо налево
Спасибо!
// Определение пинов для двигателей (через драйвер L298N)
int enA = 9; // ШИМ-пины для скорости двигателя A (например, левого)
int in1A = 8; // Управляющий пин 1 для двигателя A
int in2A = 7; // Управляющий пин 2 для двигателя A
int enB = 3; // ШИМ-пины для скорости двигателя B (например, правого)
int in1B = 5; // Управляющий пин 1 для двигателя B
int in2B = 4; // Управляющий пин 2 для двигателя B
// Определение пинов для кнопок
int forwardButton = 10; // Кнопка “Вперед”
int backwardButton = 11; // Кнопка “Назад”
int leftButton = 12; // Кнопка “Влево”
int rightButton = 13; // Кнопка “Вправо”
// Инициализация пинов кнопок как входов с подтягивающим резистором
pinMode(forwardButton, INPUT_PULLUP);
pinMode(backwardButton, INPUT_PULLUP);
pinMode(leftButton, INPUT_PULLUP);
pinMode(rightButton, INPUT_PULLUP);
}
void loop() {
// Чтение состояния кнопок
int forwardState = digitalRead(forwardButton);
int backwardState = digitalRead(backwardButton);
int leftState = digitalRead(leftButton);
int rightState = digitalRead(rightButton);
// Логика движения
if (forwardState == LOW) { // Если кнопка “Вперед” нажата (LOW при использовании INPUT_PULLUP)
moveForward();
} else if (backwardState == LOW) { // Если кнопка “Назад” нажата
moveBackward();
} else if (leftState == LOW) { // Если кнопка “Влево” нажата
turnLeft();
} else if (rightState == LOW) { // Если кнопка “Вправо” нажата
turnRight();
} else { // Если ни одна кнопка не нажата
stopMotors();
}
}
// Функции управления двигателями
void moveForward() {
// Вперед
digitalWrite(in1A, HIGH);
digitalWrite(in2A, LOW);
digitalWrite(in1B, HIGH);
digitalWrite(in2B, LOW);
// Устанавливаем максимальную скорость
analogWrite(enA, 255);
analogWrite(enB, 255);
}
void moveBackward() {
// Назад
digitalWrite(in1A, LOW);
digitalWrite(in2A, HIGH