2002 работа4х моторов

Материал из УМКИwiki
Перейти к навигации Перейти к поиску
//////////////////////////////////////////////
//     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);
}