Суббота, 30.11.2024, 07:58
| RSS
[SEARCH_TITLE]
[SEARCH_FORM]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Архив - только для чтения
Нужен совет обладателей сервочек
ALHIMIKДата: Суббота, 02.05.2009, 13:55 | Сообщение # 1








Язык программированя: C - вот Истинная вера для МК
Зарегистрирован 23.12.2008
Группа: Опытные
Сообщений: 83
Город: СПб
Статус: Offline
Доброе время суток !
Чем лучше смазывать редуктор СГ5510 и МГ995 ?
Первая крутит нормально но шумит
Вторая нехочет нормально крутится , делает резкие рывки cray
Прога нормальная - медленно поварачивает валом senile
Спасибо
 
Bass85Дата: Суббота, 02.05.2009, 19:38 | Сообщение # 2








Зарегистрирован 12.02.2009
Группа: Опытные
Сообщений: 422
Статус: Offline
Вопервых они все шумят sad А чтобы не дергалась поиграйте с временными параметрами сигнала я когода первый раз включал сервы на проверялку собранную на 555 таймере то бывало такое что на одной нормально а на пилотажевской чото гнало, но когда с контроллера то вроди все путем. Но когда пробывал задавать быструю смену значений то тоже было похоже на ваш случай зделал помедленней и все ок. И коль вы уже пишите что плавно двигаете сервой то у меня к вам тож вопрос сколько вы при этом делаете положений сервы и как их меняете если не жалко то киньте кусочек кода я так понял пишите вы на си wink
 
ALHIMIKДата: Суббота, 02.05.2009, 21:45 | Сообщение # 3








Язык программированя: C - вот Истинная вера для МК
Зарегистрирован 23.12.2008
Группа: Опытные
Сообщений: 83
Город: СПб
Статус: Offline
Да я пишу на Истинной Вере dirol
То что они шумят я знаю но одно дело шумят( вобщемто приятно ) а другое ШУМЯТ и не хотят нормально поварачивать(мгшка подазрения падают на плохое питание)
Естественно делаю на своеёй любимеце меге 16
Код (двольно простой и не очень спортивный но для проверки работоспособности сойдёт) -
Code

#include <mega16.h>  

interrupt[TIM1_COMPA] void Timer1_COMPA (void)
{
  PORTB|=((1<<0)|(1<<1));                    // Ïîñóòè îäíà ñåðâà
}                    

interrupt[TIM1_COMPB] void Timer1_COMPB(void)
{
  PORTB&=(~((1<<0)|(1<<1)));
}

void main(void)
{
unsigned int servo_pos = 1500;
ACSR = 0x80;
#asm("wdr");
WDTCR|=((1<<4)|(1 << 3));
WDTCR = 0x00;
PORTB = 0xFE;
DDRB = ((1<<0)|(1<<1));
PORTA = 0xFF;
DDRA = 0x00;
PORTC = 0xFF;
DDRC = 0x00;
PORTD = 0xFF;
DDRD = 0x00;
TCNT1H = 0x00;
TCNT1L = 0x00;
OCR1A = 20000;
OCR1B = (servo_pos);
TCCR1A = 0x00;
TCCR1B = ((1<<3)|(1<<1)); // Ðåæèì ñòñ ðåääåëèòåëü 8
TIMSK = ((1<<4)|(1<<3));// Ðàçðåøåííû ïåðûâàíèÿ îò áëîêà ñðàâíåíèÿ à è á
TCNT0 = 0x00;
OCR0 = 0x00;  
TCCR0 = ((1<<2)|(1<<0));
#asm("sei");
while(1)
{
  for(servo_pos = 1500;servo_pos <= 2400;servo_pos+=10)
  {
   OCR1B = (servo_pos);
   while(!(TIFR&(1<<0)));
   TIFR|=(1<<0);                      
  };
  for(servo_pos = 2400;servo_pos >= 600;servo_pos-=10)
  {
   OCR1B = (servo_pos);
   while(!(TIFR&(1<<0)));
   TIFR|=(1<<0);
   };
  for(servo_pos = 600;servo_pos<=1500;servo_pos+=10)
  {
   OCR1B = (servo_pos);
   while(!(TIFR&(1<<0)));
   TIFR|=(1<<0);
  };    
};
}        

Конечные значения подбирал эксперемертально так что поворот не полный (160 градусов примерно)
 
Bass85Дата: Суббота, 02.05.2009, 21:56 | Сообщение # 4








Зарегистрирован 12.02.2009
Группа: Опытные
Сообщений: 422
Статус: Offline
На сколько я понимаю серва должна отработать предидущую команду только потом она сможет обработать следующую(возможно ошибаюсь) поэтому если у вас +10 происходит раньше то вот и получится глюк.
 
ALHIMIKДата: Суббота, 02.05.2009, 22:28 | Сообщение # 5








Язык программированя: C - вот Истинная вера для МК
Зарегистрирован 23.12.2008
Группа: Опытные
Сообщений: 83
Город: СПб
Статус: Offline
величина инкримент и дикримент в форах задаёт скорость
Timer0 своеобразная защита от дёрганья(Дополнение к стандартной) yes3

Добавлено (02.05.2009, 22:07)
---------------------------------------------
Вот по этому у меня стоит задержка в форе
Чуть не забыл тактовая частота 8MHz
Уважаемый Bass85 Проблема не в проге тк на свежих сервах она отлично работает
проблема в серве - шестирёнки латунные а смазки мыш прослезилась sad

Добавлено (02.05.2009, 22:28)
---------------------------------------------
Пожертвовал смазкой новой сервы wacko теперь мг просто мурлычит
Да кстати видимо "Мёртвое" приращение сигнала для мг больше 10мкС angry

 
Bass85Дата: Суббота, 02.05.2009, 23:18 | Сообщение # 6








Зарегистрирован 12.02.2009
Группа: Опытные
Сообщений: 422
Статус: Offline
По поводу смазки в пилотаже можно посмотреть я когдато видел smile3
 
ALHIMIKДата: Пятница, 08.05.2009, 17:26 | Сообщение # 7








Язык программированя: C - вот Истинная вера для МК
Зарегистрирован 23.12.2008
Группа: Опытные
Сообщений: 83
Город: СПб
Статус: Offline
Товарищи на сколькоя понял нормалного ДС на эти сервы нет кто с ними играл поделитеся пожалуйста информацией об управляющих импульсах

Добавлено (08.05.2009, 17:26)
---------------------------------------------
Нащупал для сг для полнлго поворота 500-2500 мкС

 
  • Страница 1 из 1
  • 1
Поиск: