1110motor pwm: различия между версиями

Материал из УМКИwiki
Перейти к навигации Перейти к поиску
Нет описания правки
Нет описания правки
 
(не показаны 2 промежуточные версии этого же участника)
Строка 1: Строка 1:
<syntaxhighlight lang="C++">
<syntaxhighlight lang="C++">
  //////////////////////////////////////////////
  //////////////////////////////////////////////
  //    2019.08.05 woronin,  umkiedu@gmail.com
  //    2023.11.28 woronin,  umkiedu@gmail.com
  //    Управление платформой  SmartCar. Контроллер К-6
  //    Управление платформой  SmartCar. Контроллер К-6
  //    движение платформы вперед c ускорением и замедлением
  //    движение платформы вперед c ускорением и замедлением
Строка 9: Строка 9:
  int mL_PWM = 3;  // 3 управляет вращением  левого мотора
  int mL_PWM = 3;  // 3 управляет вращением  левого мотора
  int mR_PWM = 5;  // 5 управляет вращением  правого мотора
  int mR_PWM = 5;  // 5 управляет вращением  правого мотора
void setup() {
void setup() {
   pinMode(mL_PWM, OUTPUT);
   pinMode(mL_PWM, OUTPUT);
Строка 15: Строка 14:
   pinMode(motorR1, OUTPUT);
   pinMode(motorR1, OUTPUT);
   pinMode(motorL1, OUTPUT);
   pinMode(motorL1, OUTPUT);
  //Определяем все контакты , как OUTPUT
}
}
void loop()
void loop()
{
{
   digitalWrite (motorR1, HIGH);
   digitalWrite (motorR1, HIGH);
  // Команда digitalWrite устанавливает на контакте  высокий уровень
  //Для драйвера моторов это означает то, что мотор будет вращаться назад
   digitalWrite (motorL1, HIGH);
   digitalWrite (motorL1, HIGH);
   analogWrite (mR_PWM, 0);
   analogWrite (mR_PWM, 0); // Значение ШИМ равно нулю, двигатель не вращается
   analogWrite (mL_PWM, 0);
   analogWrite (mL_PWM, 0);
  // Значение ШИМ равно нулю, двигатель не вращается
   delay(1000); // действие происходит  1 сек
   delay(1000); // действие происходит  1 сек
  digitalWrite (motorR1, HIGH);
  digitalWrite (motorL1, HIGH);
  analogWrite (mR_PWM, 100);
  analogWrite (mL_PWM, 100);
  // Значение ШИМ 70. Скорость низкая
  delay(1000); //время работы  1 сек.
  analogWrite (mR_PWM, 170);
  analogWrite (mL_PWM, 170);
  // Значение ШИМ 70. Скорость средняя
  delay(1000); //время работы  1 сек.
   analogWrite (mR_PWM, 255);
   analogWrite (mR_PWM, 255);
   analogWrite (mL_PWM, 255);
   analogWrite (mL_PWM, 255);
  // Значение ШИМ 70. Скорость максимальная
   delay(1000); //время работы  1 сек.
   delay(1000); //время работы  1 сек.
   analogWrite (mR_PWM, 170);
   analogWrite (mR_PWM, 170);
   analogWrite (mL_PWM, 170);
   analogWrite (mL_PWM, 170);
   // Значение ШИМ 70. Скорость средняя
   delay(1000); //время работы  1 сек.
  digitalWrite (motorR1, HIGH);
  digitalWrite (motorL1, HIGH);
  analogWrite (mR_PWM, 100);
  analogWrite (mL_PWM, 100);
   delay(1000); //время работы  1 сек.
   delay(1000); //время работы  1 сек.
   analogWrite (mR_PWM, 70);
   analogWrite (mR_PWM, 70);
   analogWrite (mL_PWM, 70);
   analogWrite (mL_PWM, 70);
  // Значение ШИМ 70. Скорость низкая
   delay(1000); //время работы  1 сек.}
   delay(1000); //время работы  1 сек.
}


</syntaxhighlight>
</syntaxhighlight>

Текущая версия от 13:43, 28 ноября 2023

 //////////////////////////////////////////////
 //     2023.11.28 woronin,  umkiedu@gmail.com
 //     Управление платформой  SmartCar. Контроллер К-6
 //     движение платформы вперед c ускорением и замедлением
 //////////////////////////////////////////////
 int motorR1 = 2; // 2 контакт определяет направление вращения  первого правого мотора
 int motorL1 = 4; // 4 контакт определяет направление вращения  первого левого мотора
 int mL_PWM = 3;  // 3 управляет вращением  левого мотора
 int mR_PWM = 5;  // 5 управляет вращением  правого мотора
void setup() {
  pinMode(mL_PWM, OUTPUT);
  pinMode(mR_PWM, OUTPUT);
  pinMode(motorR1, OUTPUT);
  pinMode(motorL1, OUTPUT);
}
void loop()
{
  digitalWrite (motorR1, HIGH);
  digitalWrite (motorL1, HIGH);
  analogWrite (mR_PWM, 0);  // Значение ШИМ равно нулю, двигатель не вращается
  analogWrite (mL_PWM, 0);
  delay(1000); // действие происходит  1 сек
  analogWrite (mR_PWM, 255);
  analogWrite (mL_PWM, 255);
  delay(1000); //время работы  1 сек.
  analogWrite (mR_PWM, 170);
  analogWrite (mL_PWM, 170);
  delay(1000); //время работы  1 сек.
  digitalWrite (motorR1, HIGH);
  digitalWrite (motorL1, HIGH);
  analogWrite (mR_PWM, 100);
  analogWrite (mL_PWM, 100);
  delay(1000); //время работы  1 сек.
  analogWrite (mR_PWM, 70);
  analogWrite (mL_PWM, 70);
  delay(1000); //время работы  1 сек.}