Вот, пробуйте. Подумал, что на станке автозапуск или старт по кнопке энкодера могут быть небезопасны, добавил опции доступности настроек.
Здраствуйте! Попробовал.Пуск вперед и реверс работают как надо.В меню новых настроек на энкодер не нашёл.Запрет работы реверса, в uart также отправляет данные. И чуть не забыл. Версия 0.5 и 0.6 компилятор ругается на отсутствие файла microLiquidCrystal_I2C.После добавления всё хорошо.
В меню новых настроек на энкодер не нашёл.Запрет работы реверса, в uart также отправляет данные.
Состав меню не изменился, настроек не добавилось. Это опции, которые определяют состав прошивки на этапе компиляции. Т.е. идея такая: СпойлерЕсли скетч компилируется со строчкой #define E_AUTORUN 1 то получится прошивка, в интерфейсе которой будет доступно изменение настройки Автозапуск и будет активна реакция скетча на эту настройку; а если #define E_AUTORUN 0 то настройку Автозапуск изменить через интерфейс невозможно (всегда OFF), а код реакции скетча на эту настройку в принципе не включается в прошивку
#define E_REVERSE 1 скорее всего, имеет смысл только при управлении тактовыми кнопками типа SW_BUTTON_CLICK; в случае SW_ROCKER_SWITCH управление реверсом и так на выделенном контакте
Ну и аналогично, если при компиляции: #define E_ENCSWEN 1 то получится прошивка, в которой кнопкой энкодера можно рулить приводом (в смысле запускать и останавливать); а если #define E_ENCSWEN 0 то на кнопке энкодера остается только настройка, а код управления приводом как реакция на клики кнопки энкодера в прошивку не включается;
На ШЛ сердечнике подогнал зазор 3,8мм на 9мГн. Штатный крепеж. Посмотрю потом, будут-ли греться и насколько стяжные болты.
Alex_BB писал(а):
то же свой надо проверить по такой методе!
В каталог по Бульдюку добавил папки по дросселям, там разные фотки и видео прогонов без зазора и проверка индуктивности с зазором. Обновился архив по Бульдюку, файл читать. ЯндыксГугел
Вроде ж обсуждали уже эти пилюли Ардуина в классическом виде даст сделать на stm32 столько же, сколько на avr. Для большего понадобится уже не ардуина, ну и порог вхождения уже повыше. И всё это еще запихать в бюджет флэша 64К ведь обычный ардуиновый blink для "помигать светодиодом" в цифрах выглядит как-то так: Спойлер
Код:
// the setup function runs once when you press reset or power the board void setup() { // initialize digital pin PC13 as an output. pinMode(13, OUTPUT); }
// the loop function runs over and over again forever void loop() { digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(13, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second }
На atmega328: Скетч использует 928 байт (3%) памяти устройства. Всего доступно 30720 байт. Глобальные переменные используют 9 байт (0%) динамической памяти, оставляя 2039 байт для локальных переменных. Максимум: 2048 байт.
На stm32: Sketch uses 11180 bytes (17%) of program storage space. Maximum is 65536 bytes. Global variables use 1432 bytes (6%) of dynamic memory, leaving 19048 bytes for local variables. Maximum is 20480 bytes.
НЕМЕТС сейчас играюсь, учусь, в flprog и тоже абдурина на си ++. Там есть специальный таймер, заточенный под управление двигателем и куча всего другого. С мегой по играться, закинуть в тумбочку и забыть. Или смотреть на изделие, как на память истории. А стмка ещё послужит. На озоне взял stm32f103cb, а не c8, там 128 kb. Пока жалоб на недостаток памяти нет. Там изначально непонятно чем память забили, при увеличении проекта не особо и сильно увеличивается.
Осталось только чтоб НЕМЕТС перенёс свой проект на стм. Я так красиво сделать, как он, не смогу. После asm этот си инопланетный язык, но ни чего, привыкаю потихоньку.
DC-AC, ещё вопрос возник как правильно делать U/f. Практики у вас уже много набралось, думаю можете много полезного рассказать. Тема эта наверное большая, можно тут продолжить:
В Flprog uart не умеет считывать данные которые идут сплошным потоком. Строка должна заканчиваться CR. У меня адекватно читать Uart не получилось.Если у вас получиться, поделитесь скетчем.
BERS, flprog это просто визуальная среда, с набором библиотек, для лентяев, таких как я. Если в ардуине есть возможность считывать сплошной поток, то и с созданием дополнительного пользовательского блока, думаю можно это сделать. Я пока только учусь пару месяцев, в свободное время и с приёмом передачей ещё не работал. Да и камень у меня пока только один, общаться ему не с кем, разьве что с компьютером только.
_________________ „Выживает не самый сильный и не самый умный, а тот, кто лучше всех приспосабливается к изменениям.“ — Чарлз Дарвин
Появилась идея, как можно убрать плавающий высокочастотный потенциал выходных шин DC+ DC- в шестисотом Бульдюке. По простому - вектор напряжения формировать через одну стойку (вывернуть модуляцию), а вторую стойку не ШИМить, а просто переключать 50Гц. Дроссель двухсекционный уже не нужен, нужна одна большая обмотка в фазном проводе, именно в фазном. Всё остальное как и было. И тогда выходные DC-шины будут связаны только с нулевым проводником и с частотой 50Гц. Я сначала соберу конструкцию как есть, системник старый уже разобрал под корпус. Прогружу, а потом буду пробовать модернизировать. Если бутстрепная часть драйвера не вытянет 10мс импульс с 47мкФ, то ёмкость придётся добавить, но всего одну. Почему мне так не нравится плавающий потенциал - он в разы увеличивает утечку на землю через емкости фильтров (Y-конденсаторы), кабелей и двигателя. Через ДИФ 30мА с заземлением включать бесполезно. Если получиться снизить эту утечку - будет вообще здорово.
В Flprog uart не умеет считывать данные которые идут сплошным потоком. Строка должна заканчиваться CR.
Всё относительно, в т.ч. место CR в "сплошном потоке" - для последующего куска данных это начало, для предыдущего - конец. И uart своих принципов не изменяет даже в FLprog.
А давайте я попробую вам показать, что не так страшен тот чёрт. В скетчах управления для HD у меня используется библиотека, не требующая даже особого понимания работы uart. Просто подключаете к своему проекту "черный ящик" и используете - всё (ну почти) уже отлажено за вас. Поехали? СпойлерДля общего понимания библиотек в ардуино отправляю вас полистать А.Гайвера Используем библиотеки Моя поделка на прям полноценную ардуиновскую библиотеку пока не тянет, но пусть будет для простоты библиотека. 1. Итак, "библиотека" состоит из трех файлов, реализующих т.н. "класс" (c++ сначала так и назывался, "Си с классами ") копируем все три файла в папку целевого скетча. - H8KHDtypes.h - H8KHD.h - H8KHD.cpp Библиотека использует библиотеку GyverTimer того же Гайвера, можно взять у меня в архиве со скетчем из видео или у автора на сайте и установить штатным способом Arduino IDE из архива. Со временем вам самим начнет нравиться повторное использование кода, особенно чужого Да, там примитивные таймеры на millis(), но особая точность не нужна, а использовать их просто и наглядно. 2. В основном скетче подключаем библиотеку и создаем объект реализованного в ней класса. Это 2 строки:
Код:
#include "H8KHD.h" H8KHD h8khd;
3. Для удобства работы с данными, которые отдает библиотека, создаем переменную, добавляем еще строку:
Код:
H8KHD_Status driver_status;
4. Для ловли и анализа байтов из "сплошного потока" uart используем соответствующее прерывание, оно описано в Ардуине как serialEvent(), мы просто наполняем обработчик этого прерывания кодом из библиотеки. Описываем, что делать в этом прерывании (в этом месте мы уже начинаем использовать "библиотечный" код), это еще пара строк в скетче:
Код:
void serialEvent() { h8khd.serial_event(); }
5. Добавляем инициализацию объекта в стандартный ардуиновский setup(). 7 - это пин D7 платы ардуино, вход сигнала "Сверхток" (см. схему):
Код:
void setup() { h8khd.init(7); }
6. В основном цикле ардуино как можно чаще вызываем обновление данных из черного ящика, дергая его за функцию tick():
После выполнения этого кода переменная driver_status будет содержать кучу данных, описанную как структура H8KHD_Status в файле H8KHDtypes.h Это и есть текущие (и даже часть предыдущих) данные, полученные от моторного контроллера, разложенные по полкам структуры. Кроме этого, в вашем распоряжении весь набор функций, описанных в файле H8KHD.h, например: - isDataRecieved() возвращает true, если получены данные, - isDataChanged() возвращает true, если текущие данные изменились по сравнению с данными от предыдущего вызова tick(), - isStateChanged() возвращает true, если изменилось состояние - и т.д.Вроде не сильно сложно, а? Во вложении простейший скетч-болванка, в котором добавлены контакты управления с алгоритмом "для токарного". Никакой визуализации там нет, но скетч вполне рабочий, если подключить такое железное к настоящему 8К-HD, то получится крайне урезанное управление с жестко заданными в скетче параметрами привода (частоты и темпы) без возможности регулировки.
Если кому-то вдруг зашло, то в следующей серии прикрутим к этому учебному пособию какой-нибудь простенький экранчик.
Если изначально программист привык к asm то СИ ему покажется инопланетным, также как и наоборот. Переучиться потом сложно но возможно, только нужно всё взвесить нужно ли оно вам. У каждого из этих языков свои плюсы и минусы, asm он пожалуй самый быстрый и больше заточен под железо, Си ближе к человеку, но помедленнее. Зато Си (вернее сам компилятор) умеет вычислять корни, синусы, тангенсы и др. вышку. В asm это осуществить довольно сложно, вернее в Си это записывается одной строкой, а в asm придется расписать десятками инструкций. По поводу fl prog честно для лентяев, и были преценденты с зависаниями и глюками, а также не видно что и как в какой очереди выполняется. По поводу среды arduino вполне хорошая среда но нужно быть осторожным со сторонними библиотеками, были преценденты с висюками глюками и выполнения кучей ненужной ахинеи, что влияет на время выполнения основного цикла. И ещё я заметил библиотеки могут юзать периферию контроллера на своё усмотрение, таймеры например, а если этот таймер нужен лично мне. Я сейчас весь в работе начался сезон, на станке даже некогда точить. Заказал ещё комплект плат драйвера для hd600 где можно будет внешний управляющий контроллер вставлять отдельно. Сделаю свой проект, внешнего управляющего контроллера наконец-то я никуда не спешу.
Для проверки драйверов Бульдюка сделал тест программу, просто генерит импульсы 2,45кГц на все шесть ключей с мертвым временем 2мкс. Так лучше видно импульсы, а то при генерации c иммитацией идёт ШИМ и импульсы неудобно смотреть. Залить проверочную прогу. Запитать БП на 24В от 220В, отсоединив его от DC-шины, силу не запитывать. Включить тумблер сброса, проверить импульсы. Дальше выключить, перешить на рабочую прошивку, посадить БП обратно на DC-шину и запитывать уже штатно силовую часть.
Вот такой блок электроники Бульдюка вышел Будет вставляться в корпус системного блока, там-же внизу будет размещён и дроссель.
Запустил всё на столе. Пока на х-х. Обзор конструкции, включение и разговор о дальнейшей модернизации
Вложения:
Комментарий к файлу: Программа PIC18F1330 для тестирования работы драйверов HD (Бульдюк, Восьмикрут). Генерит 6 импульсов 2,45кГц с мертвым временем 2мкс. TEST HD600.HEX [518 байт]
Скачиваний: 156
в следующей серии прикрутим к этому учебному пособию какой-нибудь простенький экранчик.
Просто код заходит не очень - понимаю. Во вложении демо-скетч с выводом на i2c oled-экран. Перед демонтажом тест-стенда снял небольшое видео работы в железе Для тех, кто дружит со "шпротами", в архиве лежит папка Proteus, в ней проект, скомпилированная прошивка и моделька Pro mini
Переделал прошивку Бульдюка и перекоммутировал дроссель. Высокая частота относительно земли с выходных шин постоянки убрана, теперь они почти не шумят на землю Прогрузил на тэны, норма. КПД Бульдюка получился ~96%. По моим приборам при потреблении 3580Вт в тэны ушло 3440Вт. Шина 558В на нагрузку 90,5Ом. Коэффициент мощности 0.98-0,99. Китайский IGBT модуль FS100R12KT3, который с кристаллами по размеру на 50А работает на удивление нормально.
Архив обновил, прошивки положил - основная и тестовая для драйверов. Файл описания экспериментальной схемы обновлю чуть позже. Ссылка яндекса и гугла
Здравствуйте. Помогите пожалуйста разобраться с китайским ЧП, Zuked HE200 вход 1ф 220в. выход 3ф по 380в. подключил к асинхронному 3 фазному эл.мотору по схеме звезда. Все работает исправно. При работе от корпуса эл.мотора не слабо бьет током. Где то прочитал что корпус эл.мотора нужно заземлить, но как это сделать в квартире где по определению нет никакого заземления. И как поменять показания на дисплее ЧП с Герц на Об/мин. эл.мотора. Есть перевод инструкции для этого ЧП, к сожалению я там не могу разобраться....
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения