Проблема с сервоприводом

Vegetable
Offline
Зарегистрирован: 10.09.2017

Имеется arduino и подключенные к ней датчики(х2). Также подключен один сервопривод и мотор. Есть проблема: при инициализации сервопривода, мотор работает только на максимальной скорости(если вообще запускается). Питание беру с кроны. Как это исправить?

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Для начала выкинуть крону (у неё маленькая ёмкость и ток разряда), для сервоприводов и моторов не очень подходит. Лучше запитать от нескольких пальчиковых батареек или аккумуляторов. Или от повербанка.

Vegetable
Offline
Зарегистрирован: 10.09.2017

До того как стояла крона, питание было от 4 батареек АА. Проблема была такая же. Вы предлагаете поставить 6 таких батареек?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Vegetable, обычно программно-аппаратные разработки отлаживаются в последовательности:

1. Исправляем аппаратные пробламы.

2. Исправляем программные проблемы.

Поэтому совет Jeka_M совершенно справедлив: для начала нужно привести к вменяемому виду схему, и только потом заниматься программными проблемами.

И еще: если Вы рассчитываете на серьезное обсуждение, а не на порцию флуда, приводить принципиальную схему и скетч - обязательно.

PS. Кстати, совет Jeka_M - это все, что можно было сказать на вопрос без схемы и скетча.

VMcastrom
Offline
Зарегистрирован: 11.09.2017

Всем здравствуйте. Такая у меня проблема. Собирая управление твердотопливного котла, столкнулся с тем что сервопривод в процессе работы поддергивается, хаотично. опытным путем были исключены проблемы с дуней с питанием подключением сервой и тд. Было установлено что на поддергивание влияет датчики температурв(18b20), сначала грешил на библиотеку Dallas так как при удалении библиотеки и всех ее корней и датчиков из скетча проблема уходит переписал скетч без библиотеки dallas , но с датчиками поддергивания вернулись, при том изменяя задержку времяни на опрос датчика изменяется характер (частота) поддергиваний. ВОПРОС: как это исправить, с чем может быть это связано, это конфликт датчиков создающая помехи на шим ?

VMcastrom
Offline
Зарегистрирован: 11.09.2017

Скетч добавлю вечером.

Vegetable
Offline
Зарегистрирован: 10.09.2017

Программу скину позже. А схема такая: от блока питания параллельно подключены Arduino и драйвер двигателей(L298N). От драйвера двигателей(контакта +5V) подключены сервопривод Sg-90 (используются порт 6 платы Arduino) и 2 ИК датчика Sharp (порты 15, 16). Мотор тоже подключен к драйверу двигателей и управляется через три порта(9,8,7). Вот как-то так.

Vegetable
Offline
Зарегистрирован: 10.09.2017

Мотор подключен к out1 и out2

Vegetable
Offline
Зарегистрирован: 10.09.2017

Вот и сам код:

//#include <SoftwareSerial.h>
#include <Servo.h>
Servo gg;
int v = 255, grad = 0;
int ir1=15, ir2 = 16, dif=0; 
void setup() {
  gg.attach(6);    
  gg.write(90);
  delay(10);
  
pinMode(7,OUTPUT); // задание скорости
  pinMode(8,OUTPUT);
  pinMode(9,OUTPUT);
   digitalWrite(7,HIGH);
  digitalWrite(8,LOW);
  analogWrite(9,v);

 // Serial.begin(9600);
}

void loop() {
// измерение градуса поворота
grad=90+(analogRead(ir1)-analogRead(ir2))/-1;
if(grad>180)
{
grad=180;

}
else
{
  if(grad<0)
  {    
    grad=0;
    
  }
 
}
  gg.write(grad);
 
/*Serial.print(analogRead(ir1));
Serial.print("        ");
Serial.print(analogRead(ir2));
Serial.print("        ");
Serial.println(grad);*/
delay(1);
}  

 

VMcastrom
Offline
Зарегистрирован: 11.09.2017

Проблему решил следующим образом
Поз2- это нужное нам положение сервы
если поз1 ==поз2
То серво.detach();
Если нет
То серво attach(6);
Поз1=поз2;
Делай
Серво(поз1);
Проблема ушла дернанье пропало так как все свободное время серва отключена и включается только когда надо повернуться. Но все равно по-прежнему интересны причины дергания если кто знает пишите.

Vegetable
Offline
Зарегистрирован: 10.09.2017

Не подскажите, что делает функция Servo.dеtach();?

Araris
Offline
Зарегистрирован: 09.11.2012

Vegetable пишет:
Не подскажите, что делает функция Servo.dеtach();?

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

Vegetable
Offline
Зарегистрирован: 10.09.2017

Спасибо

Vegetable
Offline
Зарегистрирован: 10.09.2017

Проблема решена. Оказывается, при подключении сервопривода, на портах 9 и 10 пеестает работать  ШИМ. В этом и была проблема.