// Управление двигателем PWM2
unsigned long last_time, last_time2, last_time3;
const int motor1Pin1 = 5; // номер контакта для IN1 драйвера двигателя
const int motor1Pin2 = 18; // номер контакта для IN2 драйвера двигателя
const int buttonPin = 22; // номер контакта для кнопки
int buttonState = 0; // переменная для хранения статуса кнопки:
// задаем свойства ШИМ-сигнала:
const int freq = 5000; // Частота
const int ledChannel = 0; // Канал,генерирующий PWM-сигнал для motor1Pin2
const int ledChannel_1 = 1;// Канал,генерирующий PWM-сигнал для motor1Pin1
const int resolution = 8; // Разрешение
int dutyCycle;
int dutyCycle_1;
void setup() {
ledcSetup(ledChannel, freq, resolution); // настраиваем ШИМ-сигнал согласно свойствам, заданным выше
ledcSetup(ledChannel_1, freq, resolution);
pinMode(motor1Pin1, OUTPUT);
pinMode(motor1Pin2, OUTPUT);
pinMode(buttonPin, INPUT);
ledcAttachPin(motor1Pin1, ledChannel_1); // где: motor1Pin1 - контакт для вывода PWM, ledChannel - канал,генерирующий PWM-сигнал для motor1Pin1
ledcAttachPin(motor1Pin2, ledChannel);
}
void loop(){
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
MotorStart();
}
}
void MotorStart(){
if (millis() - last_time > 1000) {
last_time = millis();
dutyCycle_1 = 10; // pin5
dutyCycle = 10; // pin18
ledcWrite(ledChannel_1, dutyCycle_1);
ledcWrite(ledChannel, dutyCycle);
}if (millis() - last_time2 > 3000) {
last_time = millis();
dutyCycle_1 = 30; // pin5
dutyCycle = 30; // pin18
ledcWrite(ledChannel_1, dutyCycle_1);
ledcWrite(ledChannel, dutyCycle);
}if (millis() - last_time3 > 5000) {
last_time = millis();
dutyCycle_1 = 50; // pin5
dutyCycle = 50; // pin18
ledcWrite(ledChannel_1, dutyCycle_1);
ledcWrite(ledChannel, dutyCycle);
}
}