| Електро-автосам https://electroavtosam.com.ua/forums/ | |
| Роблю собі контролер на Arduino 80/240А https://electroavtosam.com.ua/forums/viewtopic.php?f=34&t=1439 | Сторінка 1 із 3 | 
| Автор: | mr.Dream [ 21 вер 2016, 15:33 ] | 
| Заголовок повідомлення: | Роблю собі контролер на Arduino 80/240А | 
| В цій гілці буду буду описувати процес розробки контролера на базі "ардуіно нано", а вірніше на mega328, а від ардуіно тільки плата і драйвер usb для зручності частої прошивки) Тему трохи давно почав на російському форумі, але руки так і не дійшли до реалізації. Зараз маю трохи більше часу, тому вечорами буду щось колупати ) І так, в контролері передбачив: - блочне управління з псевдо-синусом (через дві фази) на низах для тихішої і ефективнішої роботи - обмеження батарейного і фазного струму - налаштування відклику ручки газу - плавна рекуперація - управління швидкісттю/потужністю/моментом - дисплей з функціями ватметра і спідометра/одометра (опціонально) - робота тільки з датчиками холла - налаштування випередження фаз і корекція холів - модульна архітектура - основна плата окремо, драйвери окремо, ключі окремо (дозволить ентузіастам нарощувати потужність). До 600В, можна буде IGBT-модулі ставити  Проект некомерційний. Так сказати, в підтримку електротранспортного руху в Україні. В моїй конфігурації будуть будуть 24 або 30 irfb4110. Драйвери напівмоста irs2186 (по 4А туди-сюди на кожне плече) на кожні 2 або 4 мосфети (буду дивитись осцилограми). Ключі будуть припаяні до мідної шини (6 таких шин буде), а вони в свою чергу через термоінтерфейс-ізолятор прикручені до основного радіатора, для збільшення термоінерційності і кращого теплообміну. Планую поки що батарею 72В. | |
| Автор: | ss182006 [ 21 вер 2016, 18:27 ] | 
| Заголовок повідомлення: | Re: Роблю собі контролер на Arduino 80/240А | 
| Отличная идея,отечественный аналог контроллера от Адапто? | |
| Автор: | Stalker_W [ 21 вер 2016, 19:04 ] | 
| Заголовок повідомлення: | Re: Роблю собі контролер на Arduino 80/240А | 
| Не написали самое главное - под какой тип двигателя? И максимально возможные предполагаемые токи, напряжения, мощности? | |
| Автор: | mr.Dream [ 21 вер 2016, 19:31 ] | 
| Заголовок повідомлення: | Re: Роблю собі контролер на Arduino 80/240А | 
| ss182006 писав(ла): Отличная идея,отечественный аналог контроллера от Адапто? не зовсім так, скоріше аналог інфінеона. Просто роблю для себе під свої потреби, і можу це зробити дешевше, ніж його ціна. Наразі питання тільки з радіатором, якого на радіоринку не знайшов ) буду замовляти на "вороні". Stalker_W писав(ла): Не написали самое главное - под какой тип двигателя? И максимально возможные предполагаемые токи, напряжения, мощности? Під BLDC з датчиками холла. На даний момент собі під GoldenMotor HPM3000B. 8 магнітів, 12 обмоток (якщо не помиляюсь) 5000 об/хв. Максимальні струми написав в шапці - 80 батарейного, 240 фазного. Хоча думаю, 100/300 без проблем на 24 фетах. Тим більше хочу синхронізувати підпирання внутрішніх діодів каналами польовиків, вже є розробка на папері, для зменшення тепловиділення. Якщо повезе, буду в суботу хвалитись першим запуском) завтра дозамовлю ще мосфетів і їх драйверів, бо трохи вирішив змінити архітектуру і використати апаратні дедтайми (захист від наскрізних струмів) Думаю, на написання примітивного ПЗ піде година, пару годин на розробку і виготовлення друкованих плат. | |
| Автор: | mr.Dream [ 21 вер 2016, 21:27 ] | 
| Заголовок повідомлення: | Re: Роблю собі контролер на Arduino 80/240А | 
| Компоную транзистори на радіаторі. буде таких три фет-збірки  на кожну фазу.  біля кожної пари транзисторів буде конденсатор на 220мФ 100В. і десь там поблизу них драйвер. Сигнальні дроти на драйвер будуть або в екрані, або "вита пара" для компенсації імпульсних перешкод при перехідних процесах. Радіатори буде таких три штуки.  Вирішив таки кріпити транзистори напряму без проміжної мідної шини, чере термосилікон 0,3 мм - 0,4°С/Вт. Слюда має чомусь більше (0,1 мм - 1,2 °С/Вт) і вимагає термопасти - ненавиджу) | |
| Автор: | babac [ 21 вер 2016, 22:10 ] | 
| Заголовок повідомлення: | Re: Роблю собі контролер на Arduino 80/240А | 
| Буде дуже круто якщо зробыте блочну конструкцию! Маю 4 спарених модуля 1000в 600а ото монстра можна собрать  Токоограничение по шунту? А вообще буду слидкувать за проектом, дуже цикаво!!! | |
| Автор: | mr.Dream [ 23 вер 2016, 17:14 ] | 
| Заголовок повідомлення: | Re: Роблю собі контролер на Arduino 80/240А | 
| Сьогодні експериментував з оптимізацією коду. Ось частина, яка буде відповідати за "електронний колектор". Поки що без випередження комутації. Просто читає датчики холла і видає відповідну комбінацію фазних. Спершу думав це все робити у вічному циклі, а потім вирішив використати зовнішні переривання одразу. Тест датчиків через монітор порта працює коректно)) Bxxxxxx00 - ще не підібрана комбінація. Код: #include <avr/interrupt.h> void setup(){ cli(); DDRD = DDRD | B11111100; PORTD = PORTD & B00000011; PCICR |= B00000001; PCMSK0 |= B00011100; sei(); } void loop(){ } ISR(PCINT0_vect){ if ((PINB & 1<<2) and (~PINB & 1<<3) and (~PINB & 1<<4)){ //100 PORTD = PORTD & B00000011; PORTD = PORTD | Bxxxxxx00; } else if ((PINB & 1<<2) and (PINB & 1<<3) and (~PINB & 1<<4)){ //110 PORTD = PORTD & B00000011; PORTD = PORTD | Bxxxxxx00; } else if ((~PINB & 1<<2) and (PINB & 1<<3) and (~PINB & 1<<4)){ //010 PORTD = PORTD & B00000011; PORTD = PORTD | Bxxxxxx00; } else if ((~PINB & 1<<2) and (PINB & 1<<3) and (PINB & 1<<4)){ //011 PORTD = PORTD & B00000011; PORTD = PORTD | Bxxxxxx00; } else if ((~PINB & 1<<2) and (~PINB & 1<<3) and (PINB & 1<<4)){ //001 PORTD = PORTD & B00000011; PORTD = PORTD | Bxxxxxx00; } else if ((PINB & 1<<2) and (~PINB & 1<<3) and (PINB & 1<<4)){ //101 PORTD = PORTD & B00000011; PORTD = PORTD | Bxxxxxx00; } else{ PORTD = PORTD & B00000011; //err } } | |
| Автор: | mr.Dream [ 23 вер 2016, 22:25 ] | 
| Заголовок повідомлення: | Re: Роблю собі контролер на Arduino 80/240А | 
| Не удержался, очень интересно было))) питание 7В от блока питания роутера )))))) вместо драйверов - оптопары с резисторами, в качестве питания оптопар верхних ключей - три свинцовых аккума   Закрутилось! пока что тупо эмулятор коллектора. все остальное управление уже буду допиливать, как соберу рабочий вариант платы. | |
| Автор: | irde [ 24 вер 2016, 01:18 ] | 
| Заголовок повідомлення: | Re: Роблю собі контролер на Arduino 80/240А | 
| mr.Dream, добавьте еще подстройку кривых чувствительности ручки газа , как у Келли , это важно для тех у кого полнопривод, для лучшей " синхронизации " моторов. И еще неплохо бы иметь самоопределение правильности подключения холлы\фазы. И задний ход, с настройкой скорости вращения . Зы , и еще | |
| Автор: | Stalker_W [ 24 вер 2016, 06:29 ] | 
| Заголовок повідомлення: | Re: Роблю собі контролер на Arduino 80/240А | 
| Реакция через прерывание усложняет програмирование угла опережения/отставания для более динамичного разгона/торможения. И усложняет отработку корректной работы при кратковременных потерях связи с датчиком. Делайте шедевр сразу! | |
| Автор: | -=TRO=- [ 24 вер 2016, 12:09 ] | 
| Заголовок повідомлення: | Re: Роблю собі контролер на Arduino 80/240А | 
| Может все же пересмотреть выбор контроллера? Аппаратные три канала ШИМ на одном таймере есть только у древней PWM версии АВРки и у мег начиная с меги 64 и выше. Я делал на 128й меге. У ардуиновской меги 328 есть только по два канала ШИМ на каждый из трех таймеров. Можно конечно синхронизировать два таймера и получить 3 синхронные канала ШИМ, но это требует танцев с бубнами, и лишает одного таймера (который в последствии очень будет не лишним). | |
| Автор: | mr.Dream [ 24 вер 2016, 12:56 ] | 
| Заголовок повідомлення: | Re: Роблю собі контролер на Arduino 80/240А | 
| Не треба забігати вперед, я тільки вчусь )) всі хотілки будуть реалізовані пізніше без пріоритетів, а головна функція - крутіння мотора  ех... на всі хотілки не хватає ніг у контролера, прийдеться викручуватись. Дисплей підключати через i2c, а не напряму і т.д. А може ну його, той дисплей? ) | |
| Автор: | mr.Dream [ 24 вер 2016, 12:59 ] | 
| Заголовок повідомлення: | Re: Роблю собі контролер на Arduino 80/240А | 
| Stalker_W писав(ла): Реакция через прерывание усложняет програмирование угла опережения/отставания для более динамичного разгона/торможения. И усложняет отработку корректной работы при кратковременных потерях связи с датчиком. Делайте шедевр сразу! ускладнює, але не заважає. При корекції кута в перериваннях по холах будуть записуватись значення в таймер, а переключення фаз в перериваннях співпадіння чи переповнення таймера. Поки що для мене то не є валивим )) | |
| Автор: | mr.Dream [ 26 вер 2016, 20:50 ] | 
| Заголовок повідомлення: | Re: Роблю собі контролер на Arduino 80/240А | 
| Радіатор буде таким))   завтра буду щось ліпити помалу) | |
| Автор: | mr.Dream [ 27 вер 2016, 11:49 ] | 
| Заголовок повідомлення: | Re: Роблю собі контролер на Arduino 80/240А | 
| Нарізав різьбу     в сверлильному вертаті ) | |
| Сторінка 1 із 3 | Часовий пояс: UTC + 2 години | 
| Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ | |