Professional Professional
Мудрец
(15954)
21 час назад
Чтобы доработать вашу схему и код для управления двигателями с помощью кнопок, нужно использовать драйвер моторов (например, L298N) для управления направлением вращения двигателей. Вот как можно это сделать:
1. **Схема подключения:**
- Подключите драйвер моторов (L298N) к Arduino.
- Подключите двигатели к выходам драйвера.
- Подключите кнопки к цифровым пинам Arduino.
2. **Код для Arduino:**
```cpp
#include <Servo.h>
// Пины для кнопок
const int leftButtonPin = 2;
const int rightButtonPin = 3;
// Пины для драйвера моторов (L298N)
const int motor1Pin1 = 5;
const int motor1Pin2 = 6;
const int motor2Pin1 = 7;
const int motor2Pin2 = 8;
// Переменные для состояния кнопок
int leftButtonState = 0;
int rightButtonState = 0;
void setup() {
// Настройка пинов кнопок как входов
pinMode(leftButtonPin, INPUT);
pinMode(rightButtonPin, INPUT);
// Настройка пинов драйвера моторов как выходов
pinMode(motor1Pin1, OUTPUT);
pinMode(motor1Pin2, OUTPUT);
pinMode(motor2Pin1, OUTPUT);
pinMode(motor2Pin2, OUTPUT);
}
void loop() {
// Чтение состояния кнопок
leftButtonState = digitalRead(leftButtonPin);
rightButtonState = digitalRead(rightButtonPin);
// Если нажата левая кнопка, двигатели вращаются влево
if (leftButtonState == HIGH) {
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, HIGH);
digitalWrite(motor2Pin1, LOW);
digitalWrite(motor2Pin2, HIGH);
}
// Если нажата правая кнопка, двигатели вращаются вправо
else if (rightButtonState == HIGH) {
digitalWrite(motor1Pin1, HIGH);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, HIGH);
digitalWrite(motor2Pin2, LOW);
}
// Если кнопки не нажаты, двигатели останавливаются
else {
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, LOW);
digitalWrite(motor2Pin2, LOW);
}
}
```
3. **Подключение драйвера моторов (L298N):**
- VCC и GND драйвера подключите к 5V и GND Arduino соответственно.
- IN1, IN2, IN3 и IN4 драйвера подключите к цифровым пинам Arduino (например, 5, 6, 7 и 8).
- OUT1 и OUT2 драйвера подключите к одному двигателю.
- OUT3 и OUT4 драйвера подключите ко второму двигателю.
4. **Подключение кнопок:**
- Один конец кнопки подключите к цифровому пину Arduino (например, 2 и 3).
- Другой конец кнопки подключите к GND.
- Для устойчивой работы кнопок можно использовать подтягивающие резисторы (pull-up или pull-down).
Теперь при нажатии левой кнопки двигатели будут вращаться влево, а при нажатии правой кнопки — вправо. Если кнопки не нажаты, двигатели будут останавливаться.