Например TDA7294

Форум РадиоКот • Просмотр темы - Как сгладить ШИМ выход на нагрузке ?
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Пт мар 29, 2024 07:38:38

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Как сгладить ШИМ выход на нагрузке ?
СообщениеДобавлено: Вс июн 26, 2022 04:26:45 
Родился

Зарегистрирован: Вс июн 26, 2022 03:56:13
Сообщений: 16
Рейтинг сообщения: 0
с ардуино снимаю шим на освещение свотодиодами
в самом начале когда он медленно загорается оно происходит ступенчато пимерно раз в секунду
далее как становится по ярче эфект пропдает видимо из за невозможности сфокусировать глаз на ярком предмете

если я куплю большой конденсатор и поставлю паралельно нагрузке насколько это поможет сгладить ступеньки на яркости ?
и какой ёмкости покупать ?
как её выщитать ?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Как сгладить ШИМ выход на нагрузке ?
СообщениеДобавлено: Вс июн 26, 2022 08:06:10 
Встал на лапы

Карма: -9
Рейтинг сообщений: 18
Зарегистрирован: Сб июн 04, 2022 05:21:07
Сообщений: 148
Рейтинг сообщения: 0
А сколько этих ваших ступенек?
Есть нелинейность восприятия ступенек яркости. На малой яркости увеличение на одну ступень заметнее, чем на большой яркости. Нужно увеличить число ступенек на малой яркости и уменьшить на большой. То есть, если у вас есть например 5 ступенек в процентах: 20%, 40, 60, 80, 100. А нужно сделать вот так: 5, 10, 15, 20, 30, 40, 60, 80, 100.
Визуально разница между 5% и 10% гораздо заметнее, чем разница между 95% и 100% ШИМ.
Большой конденсатор ничего толкового не даст.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Как сгладить ШИМ выход на нагрузке ?
СообщениеДобавлено: Вс июн 26, 2022 08:27:04 
Родился

Зарегистрирован: Вс июн 26, 2022 03:56:13
Сообщений: 16
Рейтинг сообщения: 0
если по вашему методу то нужно построить параболу из люменов и проицировать на неё время и выдавать конктретный шим в этой точке времени

что бы её построить на ум пока приходит взять фоторезистор и прикрпить его в плотную к светодиоду и снять показания относитеьно шима к ацп
и построить из этих точек нелинйное маштабирование


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Как сгладить ШИМ выход на нагрузке ?
СообщениеДобавлено: Вс июн 26, 2022 10:00:43 
Сверлит текстолит когтями

Карма: 20
Рейтинг сообщений: 288
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1201
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
Попробуйте второй код. Для более сложных проектов я бы экспортировал заранее рассчитанные значения в массив, чтобы не работать с float.

Arduino LED Fader
https://www.electroschematics.com/arduino-led/


Вернуться наверх
 
Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Как сгладить ШИМ выход на нагрузке ?
СообщениеДобавлено: Вс июн 26, 2022 15:05:26 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 2030
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6618
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
а ШИМ там сколько бит?
если 8, то сглаживай-не сглаживай, при малых яркостях будут видны явные градации.
выход - или применять 16 бит ШИМ,
или если таймер больше ни чем не занят, переходить на регулировку яркости на низах изменением периода ШИМ 8 битного генератора (не знаю только, возможно ли это средствами ардуины)
(недостаток первого хетода - аппаратное ограничение -нужен свободный 16 бит таймер, и относительно низкая частота,
недостаток второго - сложное управление, нестабильная частота ШИМ сигнала)

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Как сгладить ШИМ выход на нагрузке ?
СообщениеДобавлено: Вс июн 26, 2022 15:59:54 
Друг Кота
Аватар пользователя

Карма: 1
Рейтинг сообщений: 58
Зарегистрирован: Ср сен 30, 2020 16:51:47
Сообщений: 4348
Откуда: РФ
Рейтинг сообщения: 0
Стас38,
Сглаживают вообще-то напряжение пульсаций. А напряжение шим оно довольно ровное такое, поэтому конденсатор там ничего особо не даст, так что не тратьте деньги на бесполезную покупку, а ищите решение.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Как сгладить ШИМ выход на нагрузке ?
СообщениеДобавлено: Вс июн 26, 2022 17:18:15 
Сверлит текстолит когтями

Карма: 20
Рейтинг сообщений: 288
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1201
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
библиотека TimerOne

Используйте примерной код (напр. FanSpeed), поменяйте строки и заработает (1024 шагов, 25 kHz).
Запускал тестово за вентиляторa.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Как сгладить ШИМ выход на нагрузке ?
СообщениеДобавлено: Вс июн 26, 2022 19:44:18 
Родился

Зарегистрирован: Вс июн 26, 2022 03:56:13
Сообщений: 16
Рейтинг сообщения: 0
у меня 8 бит
шим на выходу я увличиваю равномерно по формуле время/шим
к примеру берём 60 сек / 255 = 235 мс
тоесть я должен получать примерно 4 шага в сек
но на деле даже если смотреть на осцылограф то там длина импульса увеличивается очень странно примерно раз в сек вместо 4 раз в сек
как будто он сначала накпливает 4 шага а потом на выход выкидывает результат

попробовал вместо постоянного времени на шаг задать 50мс на постоянку генератором и в начале шим набирается быстрее 50 мс/шаг и постепенно начинает пропускать импульсы доганяясь под конец остатками шима

плавнее стало но быстрый старт присутствует вместо медленного разгорания собственно это и ожидаемо было
в принципи пойдёт


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Как сгладить ШИМ выход на нагрузке ?
СообщениеДобавлено: Вс июн 26, 2022 20:14:26 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 2030
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6618
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
какой контроллер? какой таймер задействован? ну, и... код в студию!

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Как сгладить ШИМ выход на нагрузке ?
СообщениеДобавлено: Вт июн 28, 2022 15:20:14 
Родился

Зарегистрирован: Вс июн 26, 2022 03:56:13
Сообщений: 16
Рейтинг сообщения: 0
нано

Код:
//Подключаем библиотеку
#include <GyverPWM.h>
struct _poligonInexes
{
    int minIndex;
    int maxIndex;
}
;
int _Poligon_InArray_1[6] = {0, 300, 900, 2000, 4000, 6000};
int _Poligon_OutArray_1[6] = {0, 90, 150, 190, 230, 255};
bool _gen1I = 0;
bool _gen1O = 0;
unsigned long _gen1P = 0UL;
bool _trgrt1 = 0;
bool _trgrt1I = 0;
bool _count1I = 0;
int _count1_Value = 0;
bool _bounseInputD12S = 0;
bool _bounseInputD12O = 0;
unsigned long _bounseInputD12P = 0UL;
void setup()
{
    pinMode(3, OUTPUT);
    pinMode(12, INPUT_PULLUP);
    _bounseInputD12O =  digitalRead(12);
}
void loop()
{
    bool  _bounceInputTmpD12 =  (digitalRead (12));
    if (_bounseInputD12S)
    {
        if (millis() >= (_bounseInputD12P + 40))
        {
            _bounseInputD12O= _bounceInputTmpD12;
            _bounseInputD12S=0;
        }
    }
    else
    {
        if (_bounceInputTmpD12 != _bounseInputD12O)
        {
            _bounseInputD12S=1;
            _bounseInputD12P = millis();
        }
    }
    //Плата:1
    if (!(0))
    {
         if (! _gen1I)
        {
            _gen1I = 1;
            _gen1O = 1;
            _gen1P = millis();
        }
    }
     else
    {
        _gen1I = 0 ;
        _gen1O= 0;
    }
    if (_gen1I)
    {
          if (_isTimer (_gen1P , 25))
        {
             _gen1P = millis();
            _gen1O = ! _gen1O;
        }
    }
    if (!(_bounseInputD12O))
    {
         if (_trgrt1I)
        {
             _trgrt1 = 0;
        }
         else
        {
            _trgrt1 = 1;
            _trgrt1I = 1;
        }
    }
     else
    {
        _trgrt1 = 0;
        _trgrt1I = 0;
    }
    ;
    if (_gen1O)
    {
        if (! _count1I)
        {
            _count1I = 1;
            if (!(_bounseInputD12O))
            {
                if(_count1_Value < 1200)
                {
                    _count1_Value = _count1_Value + 1;
                }
            }
             else
            {
                 if(_count1_Value > 0)
                {
                    _count1_Value = _count1_Value - 1;
                }
            }
        }
    }
     else
    {
        _count1I = 0;
    }
    if ((_trgrt1))
    {
//Устанавливаем на пине  частоту  в режиме 0
        PWM_frequency(3, (2000L), 0);
    }
    //изменить заполнение на пине
    PWM_set (3, ((_poligon((_count1_Value), _Poligon_InArray_1, _Poligon_OutArray_1, 6))));
}
bool _isTimer(unsigned long startTime, unsigned long period)
{
    unsigned long currentTime;
    currentTime = millis();
    if (currentTime>= startTime)
    {
        return (currentTime>=(startTime + period));
    }
     else
    {
        return (currentTime >=(4294967295-startTime+period));
    }
}
int _poligon(int value, int intArray[], int outArray[], int arraySize)
{
    struct  _poligonInexes indexes;
    indexes = _getPoligonIndexes(value, intArray, arraySize);
    return map(value, intArray[indexes.minIndex], intArray[indexes.maxIndex], outArray[indexes.minIndex], outArray[indexes.maxIndex]);
}
struct  _poligonInexes _getPoligonIndexes(int value, int array[], int arraySize)
{
    struct  _poligonInexes result;
    int i;
    result.minIndex = 0;
    result.maxIndex = 0;
    for (i = 0; i < arraySize; i++)
    {
        if (array [result.minIndex] > array[i])
        {
            result.minIndex = i;
        }
        if (array [result.maxIndex] < array[i])
        {
            result.maxIndex = i;
        }
    }
    for (i = 0; i < arraySize; i++)
    {
        if ((array [i] >= value) && (array [result.maxIndex] > array[i]))
        {
            result.maxIndex = i;
        }
    }
    if (result.maxIndex==0)
    {
        result.minIndex = 0;
        result.maxIndex=1;
    }
     else
    {
         result.minIndex = result.maxIndex -1;
    }
    return result;
    return result;
}


Вернуться наверх
 
В сети
 Заголовок сообщения: Re: Как сгладить ШИМ выход на нагрузке ?
СообщениеДобавлено: Вт июн 28, 2022 18:41:32 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2800
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18031
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
Стас38, такую длинную "портянку" нужно прятать под спойлер.
а почему строку
return result;
ты повторил всего 2 раза, а не 8 раз?

_________________
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Как сгладить ШИМ выход на нагрузке ?
СообщениеДобавлено: Ср июн 29, 2022 06:40:58 
Друг Кота
Аватар пользователя

Карма: 58
Рейтинг сообщений: 1958
Зарегистрирован: Чт янв 26, 2012 16:44:29
Сообщений: 16011
Откуда: Таксимо
Рейтинг сообщения: 0
Параллельно светодиодам конденсаторы нельзя ставить


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Как сгладить ШИМ выход на нагрузке ?
СообщениеДобавлено: Ср июн 29, 2022 09:48:35 
Потрогал лапой паяльник
Аватар пользователя

Карма: 2
Рейтинг сообщений: 13
Зарегистрирован: Чт июн 23, 2011 07:55:51
Сообщений: 329
Рейтинг сообщения: 0
Нужно не величину шага менять, а время когда шаг, равный 1, изменится.


Последний раз редактировалось korsaj Ср июн 29, 2022 13:45:29, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Как сгладить ШИМ выход на нагрузке ?
СообщениеДобавлено: Ср июн 29, 2022 10:09:45 
Потрогал лапой паяльник
Аватар пользователя

Карма: -6
Рейтинг сообщений: -1
Зарегистрирован: Вс апр 03, 2022 07:01:29
Сообщений: 362
Рейтинг сообщения: 0
Там дело не в интервале времени, а в интервале шагов. Они неравномерно влияют на видимую яркость.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y