2002 работа4х моторов
Перейти к навигации
Перейти к поиску
//////////////////////////////////////////////
// 2020.01.04 woronin, umkiedu@gmail.com
// работа с четырмя независимыми моторами
// Robot UMKI controller K6_3
// ML1 = D4
// ML2 = D7 (необходимо замкнуть обе ножки SW для 4-х моторов)
// PWM_L1 = D5
// PWM_L2 = D6
// ---------
// MR1 = D2
// MR2 = D8 (необходимо замкнуть обе ножки SW для 4-х моторов)
// PWM_R1 = D3
// PWM_R2 = D9
//////////////////////////////////////////////
int motorR1 = 2; // 2 контакт определяет направление вращения первого правого мотора
int motorR2 = 8; // 6 контакт определяет направление вращения второго правого мотора
int motorL1 = 4; // 4 контакт определяет направление вращения первого левого мотора
int motorL2 = 7; // 7 контакт определяет направление вращения второго левого мотора
int mL1speed = 5; // 3 управляет вращением левого мотора
int mL2speed = 6; // 3 управляет вращением левого мотора
int mR1speed = 2; // 5 управляет вращением правого мотора
int mR2speed = 9; // 5 управляет вращением правого мотора
int speeker = 12; // 12 управляет спикер
void setup()
{
pinMode(mL1speed, OUTPUT); // конфигурим контакты как работающие на выход
pinMode(mR1speed, OUTPUT);
pinMode(motorR1, OUTPUT);
pinMode(motorL1, OUTPUT);
pinMode(motorR2, OUTPUT);
pinMode(motorL2, OUTPUT);
}
void loop()
{
digitalWrite (motorR1, HIGH);// Команда digitalWrite устанавливает на контакте 2 высокий уровень
digitalWrite (motorL1, HIGH);
digitalWrite (motorR2, HIGH);// Команда digitalWrite устанавливает на контакте 2 высокий уровень
digitalWrite (motorL2, HIGH);
digitalWrite (mR1speed, HIGH); // включаем вращение моторов
digitalWrite (mL1speed, HIGH);
digitalWrite (mR2speed, HIGH);
digitalWrite (mL2speed, HIGH);
delay(1000); // Вращаем 1 сек
digitalWrite (mR1speed, LOW); // Низкий уровень запрещает вращение моторов
digitalWrite (mL1speed, LOW);
digitalWrite (mR2speed, LOW);
digitalWrite (mL2speed, LOW);
delay(1000); //останов 1 сек.
digitalWrite (motorR1, LOW);// Команда digitalWrite устанавливает на контакте 2 высокий уровень
digitalWrite (motorL1, LOW);
digitalWrite (motorR2, LOW);// Команда digitalWrite устанавливает на контакте 2 высокий уровень
digitalWrite (motorL2, LOW);
digitalWrite (mR1speed, HIGH); // включаем вращение моторов
digitalWrite (mL1speed, HIGH);
digitalWrite (mR2speed, HIGH);
digitalWrite (mL2speed, HIGH);
delay(1000); // Вращаем 1 сек
digitalWrite (mR1speed, LOW); // Низкий уровень запрещает вращение моторов
digitalWrite (mL1speed, LOW);
digitalWrite (mR2speed, LOW);
digitalWrite (mL2speed, LOW);
}