Вопрос по управлению двигателем - Форум Picbasic.ru
Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: ivan_fd 
Форум Picbasic.ru » Программирование МК » PicBasicPro » Вопрос по управлению двигателем
Вопрос по управлению двигателем
tolyan249 Дата: Пн, 09.08.2010, 07:42  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 166
Репутация: 0   ±
Замечания:   ±
На сайте с 11.10.2007

Статус: Offline

Суть такая. Вышла из строя машинка стиральная автомат,блок упраления. хочу сделать свой блок управления,написать программу проблем почти нет. Проблема только в одном управление двигателем на симисторе. Собрал схему на транзисторах работает,отлично вместе стаходатчиком.
Вопрос как написать программу для управления двигателем с таходатчиком на симисторе и PIC? не использовать свою схему на транзисторах.
Просто нужно чтобы можно было управлять скоростью двигателя програмно а не переменным резистором. Писать нужно наверно Фазовое управление или ШИМ точно не знаю. Может кто что подскажет по этому поводу. А то стираться руками хреново. Блок управления новый стоит 4-5т.р
Но суть не в этом хочу свое сделать. Спасибо всем за ответы и советы.
Прикрепления: 2015117.jpg(36Kb)


если знаешь,помоги.
Сообщение отредактировал tolyan249 - Пн, 09.08.2010, 09:51
ЯНДЕКС Дата: 09.08.2010
demanik Дата: Пн, 09.08.2010, 10:43  |                                                                                                                Сообщение # 2
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 451
Репутация: 10   ±
Замечания:   ±
На сайте с 11.12.2007

Статус: Offline

Есть програмка управления яркостью лампы с кнопок. думаю ее можно переделать и пристроить к вашей задаче. cool
Прикрепления: LampDim.bas(6Kb)


Попробуй всё и вся... может быть пол...

tolyan249 Дата: Пн, 09.08.2010, 15:33  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 166
Репутация: 0   ±
Замечания:   ±
На сайте с 11.10.2007

Статус: Offline

Схему бы еще к этой программе,надо наверно брать импульсы сети и синхронизироваться по ним.

если знаешь,помоги.
brown Дата: Пн, 09.08.2010, 15:50  |                                                                                                                Сообщение # 4
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 335
Репутация: 10   ±
Замечания:   ±
На сайте с 18.09.2007

Статус: Offline

Я так понимаю:
Если нужно жестко контролировать обороты движка через таходатчик, то это САР и без ПИД регулятора не обойтись с вытекающей от сюда сложностью задачи (лично для меня).
А если нужно просто прямое регулирование, то это как предлагает demanik.


Век живи - век учись! К концу жизни поймешь, что ничего не знаешь...
demanik Дата: Пн, 09.08.2010, 19:53  |                                                                                                                Сообщение # 5
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 451
Репутация: 10   ±
Замечания:   ±
На сайте с 11.12.2007

Статус: Offline

Quote (tolyan249)
Схему бы еще к этой программе,надо наверно брать импульсы сети и синхронизироваться по ним

Схемы нет я ее гдето нарыл в интернете.
Импульсы нужны обязательно:
ACLine_in var GPIO.4 ' Input for the FullWave rectify AC line


Попробуй всё и вся... может быть пол...

tolyan249 Дата: Вт, 10.08.2010, 06:48  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 166
Репутация: 0   ±
Замечания:   ±
На сайте с 11.10.2007

Статус: Offline

вот нашел пример,но он написан на си.

Симмисторный регулятор мощности

Полученная схема симисторного регулятора c гальванической развязкой цепей регулирования от сетевого напряжения мощности показана ниже:

Диоды VD3-VD6 - защитные (от повышенного напряжения на входе и напряжения обратной полярности).

Цепь на транзисторной оптопаре DA2 предназначена для захвата "нуля" сетевого напряжения и гальванической развязки от нее. При наличии "полуволны" происходит шунтирование вывода 5 микроконтроллера на землю. Диод VD2 защищает оптопару от полуволны обратного напряжения. Резистор R1 - гасящий, мощностью 2Вт для питания светодиода оптопары.

Если Вы хотите применить для регилирования мощности переменный резистор, то включить его можно как указано на схеме R7. Учитывая входное сопротивление АЦП микросхемы преобразователя (10кОм) сопротивление переменного резистора желательно применить в диапазоне от 1 до 10 кОм, при этом ограничительный резистор R5 следует исключить из схемы. Также можно исключить их схемы и защитные диоды.

Вывод 4 микросхемы DD1 используется для включения и выключения микроконтроллера (регулятора). При напряжении +5В микроконтроллер включен. Если отдельный вывод включения не требуется, то правый вывод резистора R6 следует соединить с плюсом питания (+5В), при этом защитные диоды VD5, VD6 можно исключить.

Блокировочные керамические конденсаторы по 0,1мк служат для подавления пульсаций питающего напряжения.

Алгоритм управления симистором - фазоимпульстный, т.е. регирирование мощности на нагрузке выполняется изменением времени открытия симистора от начала полпериода сетевого напряжения. При мощности 100% импульс открывания симистора приходит сразу после появления сигнала от дачика перехода сетевого напряжения через "ноль", что приводит к пропусканию всей полуволны сетевого напряжения (10 мс). При мощности 10% происходит задержка включения симистора на 9 мс и в нагрузку уходит лишь оставшаяся 1 мс сетевого напряжения.

Микроконтроллер PIC12F675 может работать как с внутренним так и внешним кварцевым резонатором. В моем варианте МК работал с внутренним генератором (4МГц). При изменении частоты необходимо подкорректировать константы (ShimShagMax та ShimShagDiv). ShimShagMax указывает количество прерываний таймера на один полупериод при частоте сети 50 Гц - 10мс. Прерывание таймера каждые 256 мкс(при частоте 4МГц), тогда константа будет иметь значение 10мс/256мкс=39. Принимаем 40, на всякий пожарный). ShimShagDiv=255/ShimShagMax=6.375

Ниже представлена программа для PIC12F675, написанная на языке Си:

#include <12F675.h>
#device adc=8

#FUSES NOWDT //No Watch Dog Timer
//#FUSES INTRC_IO //Внутрішній генератор
#FUSES XT //Зовнішній генератор
#FUSES NOCPD //No EE protection
#FUSES NOPROTECT //Code not protected from reading
#FUSES MCLR //Master Clear pin enabled
#FUSES PUT //Power Up Timer
#FUSES BROWNOUT //Reset when brownout detected

#byte ADCON0 = 0x1F
#byte GPIO = 0x05

#use fast_io(A) // Работа с портами без переключения
// каждый раз регистров TRIS

#use delay(clock=4000000)

#define ShimShagMax 40
// 255/ShimShagMax
#define ShimShagDiv 6.375

unsigned char Shim, ShimVal;

#int_RTCC
void RTCC_isr()
{
Shim++; //Увеличиваем зачения счетчика ШИМ

if (Shim>ShimShagMax) Shim=0;//Период ШИМ порядка 20 мс (50Гц)

if ((ShimShagMax-Shim)<ShimVal) //Провреняем, не пришло ли время
OUTPUT_HIGH(PIN_A0);//если да, то лог "1"
else
OUTPUT_LOW(PIN_A0); //если нет, то "0"

if ((input_a() & 0b00000100))
Shim=0; //Синхронизируем с ~220В.
}

void Pause255(unsigned char Ret)
{ unsigned char Pause=0;
while(Ret>0)
{
while (Pause<255) Pause++;
Pause=0;
Ret--;
}
}

void main()
{
setup_adc_ports(sAN1|VSS_VDD);
setup_adc(ADC_CLOCK_DIV_16);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_comparator(NC_NC);
setup_vref(FALSE);
enable_interrupts(INT_RTCC);
enable_interrupts(GLOBAL);

set_adc_channel( 1 );

SET_TRIS_A(0b00000110);
ShimVal=0;

{unsigned char InpVolt;

while(1)
{
Pause255(254);
// ADCON0 |= 4; // Начинаем АЦПяпить
Pause255(254);

while (ADCON0 & 0b00000010); //Ожидаем завершение преобразования

InpVolt=READ_ADC()/ShimShagDiv; //

//Плавное изменение температуры
if ((InpVolt>ShimVal)&&(ShimVal<ShimShagMax)) ShimVal++;
if ((InpVolt<ShimVal)&&(ShimVal>0)) ShimVal--;

}
}
}

Для работы с обеими полупериодами, следует транзисторную оптопару DA2 подключать через диодный мостик, чтобы иметь на выходе импульсы при любой полярности полупериода.

Вот еще.

Поскольку переменное напряжение выпрямляется диодным выпрямителем, то мы получаем 100 Гц импульсной положительной полуволны. Мощность нагрузки регулируется путем отбрасывания некоторого количества положительных полуволн. Автор для расчетов выбрал базис 12 импульсов. При вычитании заданного количества целых положительных полуволн из каждых 12 импульсов сети получим регулировку мощности.

288

Глава 11

Путем выбора заданной мощности микроконтроллер отсчитывает по определенному алгоритму 12 импульсов сети, исключая некоторые полуволны в указанном порядке (см. рис. 11.5). Для повышения дискретности регулирования мощности необходимо увеличивать базис (например, выбрать минимальный шаг 1 из 25 или 1 из 100). Однако увеличение шага регулировки потребует больших ресурсов микроконтроллера. Этот метод имеет преимущество перед фазоимпульсным управлением, поскольку не создает импульсных помех в сети. Впрочем, один из недостатков подобного регулирования — это появление звуковых колебаний в нагрузке. Хотя, если тепловой элемент находится в герметичной изоляции, то звуковые колебания не слышны.

Прикрепления: 5826355.gif(9Kb) · 3855360.png(18Kb) · 0036974.gif(23Kb)


если знаешь,помоги.
Сообщение отредактировал tolyan249 - Вт, 10.08.2010, 06:54
brown Дата: Вт, 10.08.2010, 20:40  |                                                                                                                Сообщение # 7
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 335
Репутация: 10   ±
Замечания:   ±
На сайте с 18.09.2007

Статус: Offline

Quote (tolyan249)
Поскольку переменное напряжение выпрямляется диодным выпрямителем, то мы получаем 100 Гц импульсной положительной полуволны. Мощность нагрузки регулируется путем отбрасывания некоторого количества положительных полуволн. Автор для расчетов выбрал базис 12 импульсов. При вычитании заданного количества целых положительных полуволн из каждых 12 импульсов сети получим регулировку мощности.

Называется алгоритмом Брезенхема, если не ошибаюсь. Такое с двигателем, по моему, не пройдет
Применяется для нагревателей:
Quote (tolyan249)
Хотя, если тепловой элемент находится в герметичной изоляции, то звуковые колебания не слышны.


Век живи - век учись! К концу жизни поймешь, что ничего не знаешь...
tolyan249 Дата: Пт, 13.08.2010, 07:00  |                                                                                                                Сообщение # 8
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 166
Репутация: 0   ±
Замечания:   ±
На сайте с 11.10.2007

Статус: Offline

Есть другой Вариант ,есть микросхема TDA1085C управление двигателем,там регулируеться напряжением,надо будет тогда делать ЦАП , регулироваться должно от 0в до 10в ,кто что посоветует,как это организовать если пик 5-вольт больше не даст,или какую то микросхему ЦАП нужно ставить,что бы подать 10в на нее и управлять желательно 8-бит паралельно,использовать буду 877-пик, так что ног у него много.

если знаешь,помоги.
anatol Дата: Сб, 14.08.2010, 20:02  |                                                                                                                Сообщение # 9
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 535
Репутация: 13   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

Решение заменить блок управления на самодельный похвальное, но есть множество подводных камней. Неплохо бы найти сервисную инструкцию на свою стиралку и разобраться со всеми датчиками и исполнительными механизмами, тем более что применяемый процессор как правило питается от 5 вольт, и попытаться встроить ПИК вместо его. Далее очень важны циклы работы (режимы стирки и отжима) - для некоторых машин можно найти в сети, но они строго индивидуальны для каждого типа стиралки (зависят от конструкции). Проверь процессор, если живой то лучше ремонтируй или купи новый блок управления (кстати причина выхода из строя определилась?). Если много свободного времени, то ручками с секундомером и другими приборами измеряй длительности замачивания. первичной раскладки белья в барабане, прямой ход, остановка, обратный ход и т.д.

Добавлено (14.08.2010, 20.02.01)
---------------------------------------------
Это звучит смешно. но после моих советов накрылась сами понимаете чем моя стиралка ARDO T-80. Разрушение стирального барабана. Электроника цела.

tolyan249 Дата: Пт, 01.10.2010, 17:52  |                                                                                                                Сообщение # 10
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 166
Репутация: 0   ±
Замечания:   ±
На сайте с 11.10.2007

Статус: Offline

Да применяем всего 2-режима из 9,они описаны в паспорте на машинку.

Спасибо всем за ответы и помощь.
схемы цап примерно нашел,но не собирал еще посто на операционнике ,на входе стоят резисторы в формате
1-2-4-8-16-32-64-128,подключить к контроллеру и написать программу для этой матрицы проблем нет.типа выход со счетчиков. напряжение на выходе от 0..15в. 255 значений думаю хватит для регулировки скорости.пока выписал микрохемы жду.пишу пока саму программу на пик.

Добавлено (01.10.2010, 17.52.42)
---------------------------------------------
Все Машинка работаает .СПАСИБО ВСЕМ ЗА ПОМОЩЬ.

Прикрепления: 1234.pdf(41Kb)


если знаешь,помоги.
Сообщение отредактировал tolyan249 - Вс, 15.08.2010, 12:57
Форум Picbasic.ru » Программирование МК » PicBasicPro » Вопрос по управлению двигателем
Страница 1 из 11
Поиск: