Управление мощностью ТЭНа

  • В этой теме 422 ответа, 52 участника, последнее обновление 3 года сделано Андрей.
Просмотр 15 сообщений - с 241 по 255 (из 422 всего)
  • Автор
    Сообщения
  • #45800
    Dark
    Участник
    • Ответов: 864
    @dark

    Мне по коду не наравятся несколько переменных OCR1A одна из них, но это уже для более детального анализа кода и думаю по поводу вынесения расчетов из тела if. так вроде операция должна чуток быстрее происходить.

    Да! Я с виду шут, но в душе король, и ни кто как я не может...

    #45801
    Dark
    Участник
    • Ответов: 864
    @dark

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

    Я пробовал так делать, еще на весеннюю выставку привозил блок именно с таким функционалом. Не понравилось что можно нечаянно ручку крутануть и запороть процесс.

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

    Да! Я с виду шут, но в душе король, и ни кто как я не может...

    #45803
    Dark
    Участник
    • Ответов: 864
    @dark

    Так я “дырки” специально оставил, так сразу в глаза бросается отсутствие значения на заставке. Значит что то пошло не так в схеме.

    Черт, надо знать что задумал автор, а так и правда по коду можно это и выкинуть.

    Да! Я с виду шут, но в душе король, и ни кто как я не может...

    #45808
    Sergey_r
    Участник
    • Ответов: 2934
    @serjrv

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

    Ну если только через промежуточное меню, тогда можно. Кому не нужен данный функционал просто не будут это использовать. Тем более что в самом LackyBox обратную связь уже делал и все работало прекрасно.

    #45809
    Sergey_r
    Участник
    • Ответов: 2934
    @serjrv

    Так я “дырки” специально оставил, так сразу в глаза бросается отсутствие значения на заставке. Значит что то пошло не так в схеме.

    Черт, надо знать что задумал автор, а так и правда по коду можно это и выкинуть.

    Ну не у всех же есть осциллограф для проверки как раз главного узла – детектора нуля, вот я и решил хоть так для проверки работоспособности реализовать )))

    #45818
    Андрей
    Участник
    • Ответов: 76
    @san76

    Друзья, подскажите “чайнику” – конденсаторы на сколько вольт выбирать?

     

    #45821
    Sergey_r
    Участник
    • Ответов: 2934
    @serjrv

    Друзья, подскажите “чайнику” – конденсаторы на сколько вольт выбирать?

    Керамика (0.1, 0.22 мкФ) на 25 – 50 вольт, вряд ли на меньшее напряжение найдете. Электролиты и на 6.3 вольта подойдут. Естественно можно и с большим напряжением ставить.

    #46442
    Dark
    Участник
    • Ответов: 864
    @dark

    Рано с утра, пока темно
    Пока темно – пока темно
    Рано с утра, пока темно
    И мир еще в постели
    Чтобы понять, куда идти
    Чтобы понять, зачем идти
    Без колебаний прими сто грамм
    И ты достигнешь цели.

    Нарисовал схему в EasyEDA, получил список компонентов (правда из-за условий заказа компонентов там примерно на 15 плат), и был не много удивлен 10 плат плюс smd запчасти суммарно получились в 8 американских енотов (без учета доставки, корпуса, контроллера и экрана). И тут я сделал огромную ошибку, оптимизировал схему для себя. И таки да удалил предыдущий проект, о чем потом очень сильно пожалел. Так как похоже, схема по которой я делал первую плату чуток отличается от новой схемы, которая была у меня в архиве. К чему это я пишу, пусть новый проект с запчастями будет стоить 10 енотов, монитор корпус и контроллер еще пусть будет 20 плюс доставка, то получается что себестоимость регулятора ТЭНа будет где-то в районе 50 вечно зеленых рублей (хотя думаю где-то в районе 40 а то и меньше). И вот вернемся к вопросу про Скрудж набор для самостоятельной сборки думаю что если цена за набор будет в районе 50-70 енотов то желающие приобрести будут.

    PS. Сергей, пожалуйста отдыхайте, наслаждайтесь отпуском.

    Да! Я с виду шут, но в душе король, и ни кто как я не может...

    #46443
    Sergey_r
    Участник
    • Ответов: 2934
    @serjrv

    Сергей, пожалуйста отдыхайте, наслаждайтесь отпуском.

    Уже вернулся с отдыха (((
    Завтра прикуплю корпус под монтаж всех блоков и на выходных проверю на 3 кВт ТЭНе. По результатам отпишусь, думаю и видео сниму если все удачно будет.

    p.s. Правда не очень удобно разъем программирования получился, т.е. корпус придется с DIN рейки сдергивать чтобы пере прошить если что то поменять надо. Развернул бы модуль изначально разъемом к краю корпуса (где внешние разъемы у корпуса D4MG предполагаются), все было бы вообще супер, делал то все равно на макетке и расположить можно было как угодно. В общем ступил в торопях. Так что учитывайте данный момент при разработке платы.

    #46445
    Dark
    Участник
    • Ответов: 864
    @dark

    Вот еще маленький вопросик в схеме энкодер подключается через сопротивления 4.7, хотя на просторах интернета все делают подключение через 10кОм.

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

    Да! Я с виду шут, но в душе король, и ни кто как я не может...

    #46455
    Sergey_r
    Участник
    • Ответов: 2934
    @serjrv

    Вот еще маленький вопросик в схеме энкодер подключается через сопротивления 4.7, хотя на просторах интернета все делают подключение через 10кОм. Если не критично, на просторах интернета есть энкодер на плате, правда надо использовать стороннюю библиотеку, зато код чтения состояния энкодера почти в половину меньше.

    Сопротивления можно и 10кОм поставить, совершенно не критично. Те энкодеры что распаяны на плате, уже имеют подтяжку (резисторы) на самой плате, вот только конденсаторы для защиты от дребезга не факт что стоят. Стороннюю библиотеку очень не рекомендую использовать, т.к. быстрее выполнение и короче код (чем реализовано) даже и не представляю как сделать. Вот код, что касается энкодера, и его обработка идет в прерывании от таймера:

    if (*portInputRegister(digitalPinToPort(11)) & 8) encoder_CLK = 1;
    else encoder_CLK = 0;
    if (*portInputRegister(digitalPinToPort(9)) & 2) encoder_DT = 1;
    else encoder_DT = 0;
    if ((!encoder_CLK) && (encoder_CLK_prev))
    {
    if (encoder_DT) encoder_Data++;
    else encoder_Data–;
    }
    encoder_CLK_prev = encoder_CLK;

    Остальное связанное с ним, только обработка в соответствующих окнах/алгоритмах и от применения сторонней библиотеки не изменится. Хуже того, если сторонняя библиотека будет использовать таймер 1, то вся работа полетит к чертям.

    #46459
    Dark
    Участник
    • Ответов: 864
    @dark

    Вот нашел его https://iarduino.ru/shop/Expansion-payments/enkoder-s-pamyatyu-trema-modul-v2-0.html

    Кажись усе распаяно )
    if(digitalRead(pinT)){ /
    if(digitalRead(pinR)){i–;}
    else {i++;}
    delay(2);
    pinMode(pinT, OUTPUT);
    digitalWrite(pinT, 0);
    pinMode(pinT, INPUT);
    Serial.println(i);
    } //
    if(digitalRead(pinK)){
    Serial.println(“Key”);
    }

    и тоже без библиотеке

    Да! Я с виду шут, но в душе король, и ни кто как я не может...

    #46468
    Sergey_r
    Участник
    • Ответов: 2934
    @serjrv

    Вот нашел его https://iarduino.ru/shop/Expansion-payments/enkoder-s-pamyatyu-trema-modul-v2-0.html

    digitalRead(pinT) или digitalWrite(pinT, 0) это библиотечные функции и выполняют десятки лишних инструкций, они же написаны универсально для любого контроллера, т.е. не оптимально. Все эти библиотеки работают приемлемо, если кроме энкодера практически ничего в программе больше нет, иначе конкретные грабли выскакивают. Я обращаюсь напрямую к регистру порта и проверяю нужный бит: *portInputRegister(digitalPinToPort(11)) & 8, а это всего одна инструкция на ассемблере которая займет максимум три такта процессора и если if сработал или нет еще одна или две инструкции на ассемблере, т.е. + 1 или 2 такта.

    p.s. Программирование контроллеров кардинально отличается от программирования на ПК, т.к. требует учета именно принципа работы самого железа (внутренних регистров, приоритетов выполнения, в нашем случае четких временных интервалов и много чего еще).

    #46484
    Dark
    Участник
    • Ответов: 864
    @dark

    Черт лет этак 15 назад ещё помнил количество тактов на разных командах, и код программ оптимизировал, сейчас уже не считаю (

    Да! Я с виду шут, но в душе король, и ни кто как я не может...

    #46491
    Sergey_r
    Участник
    • Ответов: 2934
    @serjrv

    Черт лет этак 15 назад ещё помнил количество тактов на разных командах, и код программ оптимизировал, сейчас уже не считаю (

    К сожалению мне до сих пор такты считать приходится, в автоматизации некоторых критичных ко времени процессов до сих пор ассемблерные вставки использую. Данный блок к данной категории кстати тоже отчасти относится, к примеру прерывание от INT0 и от TMR1 надо выполнить не более чем за 100 микросекунд, иначе будет не стабилизация мощности а пляска по холмам.

    p.s. Лет 20 – 25 назад вообще про Си не думал, только на ассемблере все.

Просмотр 15 сообщений - с 241 по 255 (из 422 всего)
  • Для ответа в этой теме необходимо авторизоваться.