сервопривод мешает работе моторов

MRabbit
MRabbit аватар
Offline
Зарегистрирован: 28.07.2021

Всем привет. Хочу сделать робота, который может проходить лабиринты, но столкнулся с проблемой. Когда ардуина доходит до servo.attach, левые двигатели перестают работать.Драйвер L298, левые двигатели управляются in3 и in4, которые подключены к 4 и 5 пинам соответственно, правые - in1 и in2, 2 и 3 пины. С правыми двигателями все нормально. 

#include <Servo.h>
Servo servo;
void setup() {
  pinMode(9, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(5, OUTPUT);
  analogWrite(9, 225);
  analogWrite(6, 225);
  digitalWrite(4, HIGH);
  digitalWrite(2,HIGH);
  digitalWrite(5, LOW);
  digitalWrite(3, LOW);
  
  delay(2000);
 servo.attach(11);
 

}

void loop() {
  // put your main code here, to run repeatedly:

}

что происходит, если загрузить этот код: сначала работают левые и правые двигатели, робот едет вперед. Через две секунды левые двигатели работать перестают, и робот поворачивает влево.

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Где схема?

lilik
Offline
Зарегистрирован: 19.10.2017

Библиотека для сервоприводов нарушает работу ШИМ на некоторых выводах.

http://arduino.ru/Reference/Library/Servo

Да и правильнее наверное для 4 моторов 4 ШИМ выхода, а не 2 использовать :-)

 

MRabbit
MRabbit аватар
Offline
Зарегистрирован: 28.07.2021

Получилось! Из-за этой библиотеки 9 пин переставал работать в режиме ШИМ, по этому и левые движки не работали.  Спасибо большое!
А 4 ШИМ выхода мне подключить некуда. Я же двигатели не на прямую к контроллеру подключаю, а через драйвер, а к нему можно только 2 ШИМ выхода подключить.