Отговори на тема  [ 46 мнения ]  Отиди на страница 1, 2, 3, 4  Следваща
пулсиране на светоиод 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Яну 01, 2012 7:04 pm
Мнения: 2586
Местоположение: Велико Търново / София
Мнение пулсиране на светоиод
Направих един светодиод да пулсира. Управлението е PWM с някаква честота под 1kHz. Програмата е елементарна няма прекъсвания и т.н. още експериментирам.
Интересното е че когато коефициента е нисък отначало светенето се усилва бързо а когато е голям коефициента е голям не се променя много. Т.е. дали е 90 или 100%. почти не се вижда разлика, докато от 5 до 15% е друго.
Според програмата нарастването и намаляването на PWM е линейно. Обаче аз не възприемам светенето така, а по-скоро логаритмично.
Може би математически трбява някаква формула за определяне на коефициента

Код:
    while(1){
       
        LED0 = ON;
        Delay(duty);
       
        LED0 = OFF;
        Delay(255-duty);
       
        cnt++;
        if(cnt == 1){
            cnt = 0;
            if(!nazad)
                duty++;
            else
                duty--;
           
            if(duty == 255){
                nazad = TRUE;
            }
            if(duty == 0){
                nazad = FALSE;
            }
        }
    }


_________________
https://github.com/slav4ocom/


Пон Мар 25, 2019 5:41 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Май 29, 2007 1:23 pm
Мнения: 3545
Местоположение: Високо в планината
Мнение Re: пулсиране на светоиод
Вебер-Фехнер :)

_________________
Хайде де!


Пон Мар 25, 2019 5:45 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 25, 2005 10:41 am
Мнения: 1664
Мнение Re: пулсиране на светоиод
Тука пак те е ударил гения:

Код:
cnt++;
        if(cnt == 1){
            cnt = 0;


8) 8) 8)


Пон Мар 25, 2019 7:41 pm
Профил ICQ WWW
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Яну 01, 2012 7:04 pm
Мнения: 2586
Местоположение: Велико Търново / София
Мнение Re: пулсиране на светоиод
Аз съм го нагласил да го променям и за пробата го бях намалил докрай :)

_________________
https://github.com/slav4ocom/


Пон Мар 25, 2019 8:24 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 8:21 pm
Мнения: 27997
Местоположение: София
Мнение Re: пулсиране на светоиод
Такъв е живота, гаден и несправедлив, освен ако не си смениш "фърмуера" няма да видиш разликата, то не е и до фърмуер а до сензорите ти :) С две думи, човешкото око няма д анарави разлика между 100% и 90%, от моя опит всичко над 100% е безмислено, ограничавам всички подсветки по машините на 70%, пести доста ток, а визуално не се усеща.


Пон Мар 25, 2019 8:38 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Яну 01, 2012 7:04 pm
Мнения: 2586
Местоположение: Велико Търново / София
Мнение Re: пулсиране на светоиод
Чак пък несправедлив :)
Сега го направих така, степените са 20 и ги давам на квадрат и работи много добре:
Код:
    while(1){
       
        pwm = ((unsigned int)duty*duty);
        LED0 = ON;
        Delay(pwm);
       
        pwm = ((unsigned int)400-(duty*duty));
        LED0 = OFF;
        Delay(pwm);
       
        cnt++;
        if(cnt == 4){
            cnt = 0;
            if(!nazad)
                duty++;
            else
                duty--;
           
            if(duty == 20){
                //duty = 0;
                nazad = TRUE;
            }
            if(duty == 0){
                nazad = FALSE;
            }
        }
    }


Пробвах и със 32 степени но става бавно защото делая стига до 1024 а този PIC16F627A е доста бавен на 4MHz...

_________________
https://github.com/slav4ocom/


Пон Мар 25, 2019 8:48 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Яну 01, 2012 7:04 pm
Мнения: 2586
Местоположение: Велико Търново / София
Мнение Re: пулсиране на светоиод
Ето го 32 степени и на 20 MHz

_________________
https://github.com/slav4ocom/


Пон Мар 25, 2019 9:43 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 8:21 pm
Мнения: 27997
Местоположение: София
Мнение Re: пулсиране на светоиод
Ако искаш да усещаш разликата между степените, промяната не трябва да е линейна.


Пон Мар 25, 2019 11:20 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Яну 01, 2012 7:04 pm
Мнения: 2586
Местоположение: Велико Търново / София
Мнение Re: пулсиране на светоиод
Ами точно това ми беше питането. Как да го направя, защото като инкрементирам коефициента става линейно. Сега съм го направил да го дава на квадрат. Понеже числото става голямо, има само 32 степени :) Въпроса е все пак така ли трябва да се прави математически изчислението ?
Код:
    while(1){
       
        pwm = ((unsigned long)(duty*duty));
        LED0 = ON;
        Delay(pwm);
       
        LED0 = OFF;
        pwm = ((unsigned long)1024-(duty*duty));
        Delay(pwm);
       
        cnt++;
        if(cnt == 10){
            cnt = 0;
            if(!nazad)
                duty++;
            else
                duty--;
           
            if(duty == 32){
                nazad = TRUE;
            }
            if(duty == 0){
                nazad = FALSE;
            }
        }
    }


_________________
https://github.com/slav4ocom/


Пон Мар 25, 2019 11:43 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 8:21 pm
Мнения: 27997
Местоположение: София
Мнение Re: пулсиране на светоиод
Ами и така може, в крайна сметка не знам какво целиш, регулиране или ефект на пулсиране. При регулирането за мен и 32 степени са повече от нужното. Ако е ефект на пулсиране всичко зависи от честотата, но 32 може би пак са ОК. Но ако не искаш да се ограничаваш до 32, просто си смятай по формулата коят си си харесал запълването и после го транслирай в обхвата 0-1024. Въпросът е има ли смисъл, щото ако имаш 1-2 през 0.1 резулата ще е от 1 до 4, пък ти ако искаш и през 0.01 го инкрементвай. И ако трябва да сме точни, квадратната функция не е най-точната апроксимация, по скоро експонента, ама има ли смисъл от това е един друг въпрос.


Вто Мар 26, 2019 12:53 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Яну 20, 2009 10:54 pm
Мнения: 11338
Местоположение: "Занзибар"
Мнение Re: пулсиране на светоиод
Мии dan ти го каза: Вебер-Фехнер
Смяташ 32 стойности с калкулатора и ги записваш. Всъщност 16 са достатъчни. Може и синусоидално усещане да изимитираш, не триъгълно.


Вто Мар 26, 2019 8:45 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 5:52 pm
Мнения: 10368
Местоположение: Добрич
Мнение Re: пулсиране на светоиод
slav4o.com написа:
Въпроса е все пак така ли трябва да се прави математически изчислението ?


Щом квадратичната функция те устройства защо трябва да сменяш математиката?

Повече стойности може да получиш ако си представиш, че интервала не е само целочислени числа, ами имаш и дробни.
Само си го представяш, няма нужда да работиш със запетайки.

Пример, ако вместо 1-20 използваш 1-40 ще имаш два пъти повече стойности. Или иначе казано всяка стойност от първия интервал ти е умножена по две. На колко е равно (2*х)^2? Не е ли х на квадрат по четири?
С две думи ползваш си 1-40, вдигаш на квадрат, делиш на 4 (или шифтваш два пъти резултата)...


Вто Мар 26, 2019 9:36 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Яну 01, 2012 7:04 pm
Мнения: 2586
Местоположение: Велико Търново / София
Мнение Re: пулсиране на светоиод
bongo_x2 написа:
Смяташ 32 стойности с калкулатора и ги записваш. Всъщност 16 са достатъчни. Може и синусоидално усещане да изимитираш, не триъгълно.

Да това е добра идея. Някъде бях гледал някакъв радиомодем с PIC така бяха генерирали синусоида и програмата даже беше на асемблер, а там е лудница да правиш програмно такива сложни сметки. :)
Миро да така е но този софтуерен шим работи бавно ако е с повече от 1024 степени. Бях избрал този контролер с идеята да управлявам повече светодиоди. Той проекта май няма да се прави, но така от любопитство и теоретически интересна е може би темата.

_________________
https://github.com/slav4ocom/


Вто Мар 26, 2019 1:47 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 5:52 pm
Мнения: 10368
Местоположение: Добрич
Мнение Re: пулсиране на светоиод
slav4o.com написа:
Миро да така е но този софтуерен шим работи бавно ако е с повече от 1024 степени


Мисля че питаше как да си разшириш диапазона. Колко бързо работят тия контролери идея си нямам. Но броят на степените не би трябвало да има каквото и да е значение. Поне като гледам, вдигането на квадрат и сметките ги правиш съвсем правилно извън цикъла. Сега ако тоя цикъл не можеш да го врътнеш 1000 пъти в секунда, то наистина що за контролер е това? Да не е ламбов? :D


Вто Мар 26, 2019 2:14 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 8:21 pm
Мнения: 27997
Местоположение: София
Мнение Re: пулсиране на светоиод
Ами то таблично е най-бързо, но зависи колко са ти стойностите, казвам 32 са ти малко, то не че и за 256 не може да направиш таблица... въпреки че те нещата са свързани, ако искаш да ги мениш в еднакъв период, колкото повече стъпки толкова повече сметки и толкова повече има смисъл от таблично, но пък и таблицата набъбва. Едва ли ще има проблем да го смяташ.


Вто Мар 26, 2019 3:19 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 46 мнения ]  Отиди на страница 1, 2, 3, 4  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 10 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни