Страница 1 из 1
Управление серво приводом на AVR
Добавлено: Вс май 13, 2012 11:42:25
nem-victor
Добрый день

, хотел бы зделать девайс который бы управлял заслонкой подсоса на карбюраторе с помощью сервопривода, мк attiny2313, управление от темпрературы и оборотов двигателя, я немного слабоват в написание прошивки кто подскажет с чего начать?
Re: Управление серво приводом на AVR
Добавлено: Вс май 13, 2012 11:56:39
nem-victor
Данные для проверки датчика указателя температуры охлаждающей жидкости
Температура, °С
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
Alkul
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
nem-victor
Сервопривод цифровой стандартный, с тремя выходами красный\оранжевый\черный мануал по нему я не нашел
температура будет браться от датчика который соеденен с панелью приборов, а обороты можно брать как от катушки так и с генератора
нашел проекты на AVR такие как измеритель температуры двигателя и цифровой тахометр, а также управление серво приводами как бы теперь все это соединить в одно, с чего начать?
http://www.rlocman.ru/shem/schematics.html?di=111867 управление серво
Re: Управление серво приводом на AVR
Добавлено: Пн май 14, 2012 06:59:48
Alkul
nem-victor писал(а):Сервопривод цифровой стандартный, с тремя выходами красный\оранжевый\черный мануал по нему я не нашел
А кто будет искать? Без информации об интерфейсе подключения и протоколе обмена ничего не получится. Разве что Вы найдете того, кто уже имел дело с такими приводами.
nem-victor писал(а):а обороты можно брать как от катушки так и с генератора
С генератора не советую, там придется оцифровывать и погрешностей и ошибок не избежать. Проще взять с катушки, там зависимость однозначная - 2 импульса на один оборот коленвала
nem-victor писал(а):нашел проекты на AVR такие как измеритель температуры двигателя и цифровой тахометр, а также управление серво приводами как бы теперь все это соединить в одно, с чего начать?
Честно? С учетом того, что
nem-victor писал(а):я немного слабоват в написание прошивки
я бы порекомендовал изучить язык программирования микроконтроллера и "потренироваться" для начала на более простой конструкции.
Re: Управление серво приводом на AVR
Добавлено: Пн май 14, 2012 07:10:01
Alkul
Судя по ссылке о сервоприводе, управление там - ШИМ.
Хотя все равно непонятно, соответствует ли тот привод, о котором говорится в ссылке, Вашему.
Но если допустить, что да, тогда желательно сигнал управления взять с того вывода контроллера, на котором сделан выход аппаратного ШИМа с таймер-счетчика. Это решение в дальнейшем даст свободу выбора в типе ШИМа - программном или аппаратном.
Re: Управление серво приводом на AVR
Добавлено: Пн май 14, 2012 18:13:03
nem-victor
Ребята,я не прошу написать за меня программу, просто хотел бы примеры посмотреть, исходники, а там я уж как нибудь сам справлюсь, конечно проще сказать изучайте программирование, я читал и читаю книги но толку, я учюсь в живую на примерах методом проб и ошибок, простите если что не так
Re: Управление серво приводом на AVR
Добавлено: Пн май 14, 2012 18:57:34
Alkul
nem-victor писал(а):просто хотел бы примеры посмотреть, исходники,
У меня есть исходники управления коллекторным двигателем, но там двигатель подключен к мосту на четырех полевых транзисторах, мост непосредственно управляется микросхемами мелкой логики для исключения подачи запрещенных комбинаций на мост при глюках программы. А уже эта логическая конструкция управляется от контроллера.
Есть также исходники управления драйвером шагового двигателя.
А с таким "чудом", которое решили использовать Вы, я дела не имел. И да, все мои исходники на ассемблере, ибо я считаю извращением программировать 8-ми битные контроллеры на Си.
Re: Управление серво приводом на AVR
Добавлено: Пн май 14, 2012 22:33:53
nem-victor
Alkul писал(а):nem-victor писал(а):просто хотел бы примеры посмотреть, исходники,
У меня есть исходники управления коллекторным двигателем, но там двигатель подключен к мосту на четырех полевых транзисторах, мост непосредственно управляется микросхемами мелкой логики для исключения подачи запрещенных комбинаций на мост при глюках программы. А уже эта логическая конструкция управляется от контроллера.
Есть также исходники управления драйвером шагового двигателя.
А с таким "чудом", которое решили использовать Вы, я дела не имел. И да, все мои исходники на ассемблере, ибо я считаю извращением программировать 8-ми битные контроллеры на Си.
Если можно помотреть исходнички на управление колекторным двигателем, тем более на асемблере я разбираюсь лучьше на Си, не я выбрал это "чудо" так просто под руку попался, вот подумал присабачит к проекту
Re: Управление серво приводом на AVR
Добавлено: Чт май 17, 2012 06:13:27
Alkul
nem-victor писал(а):Если можно помотреть исходнички на управление колекторным двигателем
К сожалению, не нашел я эти исходники - этот проект я делал 7 лет назад на предпредыдущей работе.
Но там собственно в управлении нет ничего сложного.
У меня был сделан мост на 4-х MOSFETах. Сигналы на затворы MOSFETов подавались с логической схемы, построенной на 3-х микросхемах мелкой логики. А на логическую схему подавались сигналы с МК. Логическая схема не позволяла подавать запрещенные комбинации сигналов, приводящих, например, к выгоранию MOSFETов.
У меня входы логической схемы были следующими:
Разрешение движения
Выбор направления вращения
Сигнал с нижнего концевика
Сигнал с верхнего концевика
Торможение (для безвыбеговой остановки)
Для вращения нужно было выставить требуемое направление вращения и подать сигнал "Разрешение движения". Двигатель начинает вращаться при условии, что концевик выбранного направления не сработан. С точко зрения программы МК, управление элементарное - установка/сброс бит. Ну, а логика управления, регулирование скорости - это уже индивидуально для каждой задачи, поэтому описывать здесь бессмысленно.
Re: Управление серво приводом на AVR
Добавлено: Чт май 17, 2012 11:26:19
vovksextra
nem-victor писал(а):Ребята,я не прошу написать за меня программу, просто хотел бы примеры посмотреть, исходники, а там я уж как нибудь сам справлюсь, конечно проще сказать изучайте программирование, я читал и читаю книги но толку, я учюсь в живую на примерах методом проб и ошибок, простите если что не так
У меня есть пример (исходники + протеус ) управления сервомашинкой. Правда написан на микропаскале для АВР. Код маленький разобраться легко.
Re: Управление серво приводом на AVR
Добавлено: Чт май 17, 2012 18:51:28
nem-victor
vovksextra писал(а):nem-victor писал(а):Ребята,я не прошу написать за меня программу, просто хотел бы примеры посмотреть, исходники, а там я уж как нибудь сам справлюсь, конечно проще сказать изучайте программирование, я читал и читаю книги но толку, я учюсь в живую на примерах методом проб и ошибок, простите если что не так
У меня есть пример (исходники + протеус ) управления сервомашинкой. Правда написан на микропаскале для АВР. Код маленький разобраться легко.
можно взглянуть?
Re: Управление серво приводом на AVR
Добавлено: Чт май 17, 2012 19:22:51
vovksextra
Сам код
Код: Выделить всё
//******************************************************************
//**** 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 и файл протеуса ниже
Re: Управление серво приводом на AVR
Добавлено: Чт июн 07, 2012 23:51:03
nem-victor
Здраствуйте, кое что нашел по серво
http://avr.ru/solution/device/dvigatel
почитал книжку по си для AVR

так до конца в ней и неразобрался, решил для примера набросок схемки сделать
.
принцип действия:
1. температуру измеряем с помощью ds18b20 вмонтированного в корпус датчика иемпературы на вазовский двигатель.
2. сигнал тахометра берем с катушки (как писали выше 2 импульса 1 оборот коленвала)
3. управления на серво генерация импульса по схеме:

4. Управление - кнопка ON/OFF - переводит мк в спящий режим и обратно в рабочее состояние(а также авто отключение через 10 мин, если контролер не выполняет функцию управления серво)
autostart - запуск от сигналки, start и stop - соответственно запуск и остановка управления заслонкой
5. и 3 светодиода (на схеме их нет) индикаторы состояния - sleep, Run, redy

теперь дело осталось за малым написать прогу
