Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Тема закрыта

Управление серво приводом на AVR

Вс май 13, 2012 11:42:25

Добрый день :)) , хотел бы зделать девайс который бы управлял заслонкой подсоса на карбюраторе с помощью сервопривода, мк attiny2313, управление от темпрературы и оборотов двигателя, я немного слабоват в написание прошивки кто подскажет с чего начать?

Re: Управление серво приводом на AVR

Вс май 13, 2012 11:56:39

Данные для проверки датчика указателя температуры охлаждающей жидкости

Температура, °С
30
50
70
90
110


Напряжение, подводимое к датчику, В
8
7,6
6,85
5,8
4,7

Сопротивление датчика, Ом
1350-1880
585-820
280-390
155-196
87-109

данные сервопривода:
It is Simulating MG946R High Speed Metal Gear Torque Digital Servo ,Stable and Shock Proof.
Dimension: 40.7x19.7x42.9mm
Stall torque: 10.5kg/cm(4.8V),13kg/cm(6V)
Operating voltage: 4.8-7.2V
Operating speed: 0.20sec/60degree(4.8v); 0.17sec/60degree(6.0v)
Temperature range: 0℃--55℃
Dead band width: 10us .
Power Supply: Through External Adapter
Weight: 55g

на кокие выходы мк повешать датчик температуры, обороты двигателя, и сервопривод?

Re: Управление серво приводом на AVR

Вс май 13, 2012 13:48:34

nem-victor писал(а):Температура, °С
30
50
70
90
110

Сопротивление датчика, Ом
1350-1880
585-820
280-390
155-196
87-109

Вот это мне понятно


nem-victor писал(а): Напряжение, подводимое к датчику, В
8
7,6
6,85
5,8
4,7

А вот это - нет
В тазике 7-й модели, к примеру, 2 термодатчика, один подключен к "показомеру" на панели приборов и установлен в блоке цилиндров, а второй управляет включением электровентилятора охлаждения и установлен в радиаторе.
Тот, который в радиаторе, вообще работает по принципу замкнут-разомкнут, изменение состояния происходит при температуре 90градусов.
На тот, который подключен к "показомеру", никакое напряжение не подается. Он, будучи подключенным последовательно с микроамперметром, изменяет свое сопротивление и в зависимости от этого меняется ток, протекающий через головку микроамперметра "показомера", при этом стрелка отклоняется.

Или Вы хотите использовать нештатный датчик? Я не знаю ни одного датчика, на который нужно было бы "подводить" какое-то напряжение, да еще изменяющееся. Кроме, разумеется, цифровых датчиков, которым нужно питание. Термопары сами являются источниками ЭДС, терморезисторы включаются в плечо делителя.

nem-victor писал(а):на кокие выходы мк повешать ... обороты двигателя

Откуда Вы собираетесь брать информацию об количестве оборотов двигателя? С катушки зажигания?
Кроме того, данные на сервопривод, которые Вы привели - совершенно бесполезны для того, кто будет Вам помогать. Они совершенно ничего не говорят о способе управления приводом, об интерфейсе. Можно лишь понять, что у привода цифровое управление. Вы предлагаете помогающему Вам самому искать информацию на привод в сети и разбираться с его интерфейсом? Или Вы выбрали абы какой привод и рассчитываете, что кто-то разберется и расскажет Вам о способах подключения этого привода?

Re: Управление серво приводом на AVR

Пн май 14, 2012 06:39:01

Сервопривод цифровой стандартный, с тремя выходами красный\оранжевый\черный мануал по нему я не нашел

температура будет браться от датчика который соеденен с панелью приборов, а обороты можно брать как от катушки так и с генератора

нашел проекты на AVR такие как измеритель температуры двигателя и цифровой тахометр, а также управление серво приводами как бы теперь все это соединить в одно, с чего начать?

http://www.rlocman.ru/shem/schematics.html?di=111867 управление серво

Re: Управление серво приводом на AVR

Пн май 14, 2012 06:59:48

nem-victor писал(а):Сервопривод цифровой стандартный, с тремя выходами красный\оранжевый\черный мануал по нему я не нашел

А кто будет искать? Без информации об интерфейсе подключения и протоколе обмена ничего не получится. Разве что Вы найдете того, кто уже имел дело с такими приводами.

nem-victor писал(а):а обороты можно брать как от катушки так и с генератора

С генератора не советую, там придется оцифровывать и погрешностей и ошибок не избежать. Проще взять с катушки, там зависимость однозначная - 2 импульса на один оборот коленвала

nem-victor писал(а):нашел проекты на AVR такие как измеритель температуры двигателя и цифровой тахометр, а также управление серво приводами как бы теперь все это соединить в одно, с чего начать?

Честно? С учетом того, что
nem-victor писал(а):я немного слабоват в написание прошивки

я бы порекомендовал изучить язык программирования микроконтроллера и "потренироваться" для начала на более простой конструкции.

Re: Управление серво приводом на AVR

Пн май 14, 2012 07:10:01

Судя по ссылке о сервоприводе, управление там - ШИМ.
Хотя все равно непонятно, соответствует ли тот привод, о котором говорится в ссылке, Вашему.
Но если допустить, что да, тогда желательно сигнал управления взять с того вывода контроллера, на котором сделан выход аппаратного ШИМа с таймер-счетчика. Это решение в дальнейшем даст свободу выбора в типе ШИМа - программном или аппаратном.

Re: Управление серво приводом на AVR

Пн май 14, 2012 18:13:03

Ребята,я не прошу написать за меня программу, просто хотел бы примеры посмотреть, исходники, а там я уж как нибудь сам справлюсь, конечно проще сказать изучайте программирование, я читал и читаю книги но толку, я учюсь в живую на примерах методом проб и ошибок, простите если что не так

Re: Управление серво приводом на AVR

Пн май 14, 2012 18:57:34

nem-victor писал(а):просто хотел бы примеры посмотреть, исходники,

У меня есть исходники управления коллекторным двигателем, но там двигатель подключен к мосту на четырех полевых транзисторах, мост непосредственно управляется микросхемами мелкой логики для исключения подачи запрещенных комбинаций на мост при глюках программы. А уже эта логическая конструкция управляется от контроллера.
Есть также исходники управления драйвером шагового двигателя.
А с таким "чудом", которое решили использовать Вы, я дела не имел. И да, все мои исходники на ассемблере, ибо я считаю извращением программировать 8-ми битные контроллеры на Си.

Re: Управление серво приводом на AVR

Пн май 14, 2012 22:33:53

Alkul писал(а):
nem-victor писал(а):просто хотел бы примеры посмотреть, исходники,

У меня есть исходники управления коллекторным двигателем, но там двигатель подключен к мосту на четырех полевых транзисторах, мост непосредственно управляется микросхемами мелкой логики для исключения подачи запрещенных комбинаций на мост при глюках программы. А уже эта логическая конструкция управляется от контроллера.
Есть также исходники управления драйвером шагового двигателя.
А с таким "чудом", которое решили использовать Вы, я дела не имел. И да, все мои исходники на ассемблере, ибо я считаю извращением программировать 8-ми битные контроллеры на Си.


Если можно помотреть исходнички на управление колекторным двигателем, тем более на асемблере я разбираюсь лучьше на Си, не я выбрал это "чудо" так просто под руку попался, вот подумал присабачит к проекту

Re: Управление серво приводом на AVR

Чт май 17, 2012 06:13:27

nem-victor писал(а):Если можно помотреть исходнички на управление колекторным двигателем

К сожалению, не нашел я эти исходники - этот проект я делал 7 лет назад на предпредыдущей работе.
Но там собственно в управлении нет ничего сложного.
У меня был сделан мост на 4-х MOSFETах. Сигналы на затворы MOSFETов подавались с логической схемы, построенной на 3-х микросхемах мелкой логики. А на логическую схему подавались сигналы с МК. Логическая схема не позволяла подавать запрещенные комбинации сигналов, приводящих, например, к выгоранию MOSFETов.

У меня входы логической схемы были следующими:
Разрешение движения
Выбор направления вращения
Сигнал с нижнего концевика
Сигнал с верхнего концевика
Торможение (для безвыбеговой остановки)

Для вращения нужно было выставить требуемое направление вращения и подать сигнал "Разрешение движения". Двигатель начинает вращаться при условии, что концевик выбранного направления не сработан. С точко зрения программы МК, управление элементарное - установка/сброс бит. Ну, а логика управления, регулирование скорости - это уже индивидуально для каждой задачи, поэтому описывать здесь бессмысленно.

Re: Управление серво приводом на AVR

Чт май 17, 2012 11:26:19

nem-victor писал(а):Ребята,я не прошу написать за меня программу, просто хотел бы примеры посмотреть, исходники, а там я уж как нибудь сам справлюсь, конечно проще сказать изучайте программирование, я читал и читаю книги но толку, я учюсь в живую на примерах методом проб и ошибок, простите если что не так


У меня есть пример (исходники + протеус ) управления сервомашинкой. Правда написан на микропаскале для АВР. Код маленький разобраться легко.

Re: Управление серво приводом на AVR

Чт май 17, 2012 18:51:28

vovksextra писал(а):
nem-victor писал(а):Ребята,я не прошу написать за меня программу, просто хотел бы примеры посмотреть, исходники, а там я уж как нибудь сам справлюсь, конечно проще сказать изучайте программирование, я читал и читаю книги но толку, я учюсь в живую на примерах методом проб и ошибок, простите если что не так


У меня есть пример (исходники + протеус ) управления сервомашинкой. Правда написан на микропаскале для АВР. Код маленький разобраться легко.


можно взглянуть?

Re: Управление серво приводом на AVR

Чт май 17, 2012 19:22:51

Сам код


Код:
//******************************************************************
//**** Example for control servo
//******************************************************************
//Controller:   AVR
//Compiler:     mikroPascal PRO for AVR v.5.6.0
//Author:   Vladimir Bejevetc (Ukraine)
//      www.voov.com.ua
//
//******************************************************************

program servo;

procedure set_duty(f: word);
begin
  OCR1AH := hi(f);
  OCR1AL := lo(f);
end;

begin
  // Делитель=64 (CS11=1 CS10=1)
  // Режим FAST PWM Mode 14 модуль счета ICR1 (WGM11=1 WGM12=1 WGM13 =1)
  // Поведение вывода ОС1A при совпадении - вывод сбрасывается "0" (COM1A1=1)

  TCCR1A := TCCR1A or (1 shl COM1A1) or (1 shl WGM11);
  TCCR1B := TCCR1B or (1 shl WGM13) or (1 shl WGM12) or  (1 shl CS11) or (1 shl CS10);

  // Fpwm = Fcpu/(prescaler*(ICR1+1))
  // ICR1 = (Fcpu/(prescaler*Fpwm)) - 1
  //ICR1=2499;  //Fpwm=50Hz

  ICR1H:=0x09;
  ICR1L:=0xC3;

  DDRD := DDRD or (1 shl DDD5); // настраивает порт на вывод (OC1A)

  while true do
  begin

    set_duty(180);
    delay_ms(2000);

    set_duty(380);
    delay_ms(2000);

  end;


end.


hex и файл протеуса ниже
Вложения
servo.zip
(15.68 KiB) Скачиваний: 423

Re: Управление серво приводом на AVR

Чт июн 07, 2012 23:51:03

Здраствуйте, кое что нашел по серво http://avr.ru/solution/device/dvigatel
почитал книжку по си для AVR :shock: так до конца в ней и неразобрался, решил для примера набросок схемки сделать
shema autopodsos.rar
схема
(274.17 KiB) Скачиваний: 515
.
принцип действия:
1. температуру измеряем с помощью ds18b20 вмонтированного в корпус датчика иемпературы на вазовский двигатель.
2. сигнал тахометра берем с катушки (как писали выше 2 импульса 1 оборот коленвала)
3. управления на серво генерация импульса по схеме:
Изображение
4. Управление - кнопка ON/OFF - переводит мк в спящий режим и обратно в рабочее состояние(а также авто отключение через 10 мин, если контролер не выполняет функцию управления серво)
autostart - запуск от сигналки, start и stop - соответственно запуск и остановка управления заслонкой
5. и 3 светодиода (на схеме их нет) индикаторы состояния - sleep, Run, redy

:( теперь дело осталось за малым написать прогу :cry:
shema autopodsos.rar
схема
(274.17 KiB) Скачиваний: 515
Тема закрыта