Мазмұны:
- 1 -қадам: бөлшектер
- 2 -қадам: Сымдарды жалғау
- 3 -қадам: код
- 4 -қадам: орнату және қолдану
- 5 -қадам: Қорытынды
Бейне: Жарық диодты жарықтылықты калибрлеу: 5 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:25
Мен ертегі жарығын жасап жатқанда, PWM мәні жарық диодты жарықтылыққа пропорционалды емес екенін түсіндім. Қарапайым тілмен айтқанда, егер PWM мәні екі есе көп болса, жарықтық екі есе емес; әсіресе PWM максимумға жақындағанда, кез келген өзгеріс менің көзіме көрінбейді. Мен бұл қарапайым калибрлеу мәселесі болуы керек деп ойладым! және мен бұл жобаны осылай жасадым! Идея - жарықдиодты жарықтылықты кейбір құрылғылармен өлшеу (жарықтылық сенсоры немесе фоторезистор) және PWM мәні мен жарықтық арасындағы байланысты табады. Кейінірек, егер мен жарықтылықты 50%-ға қойсам, Arduino сәйкес PWM есептейді және сәйкесінше жарық диодты өшіреді.
Сондықтан маған жарықтықты өлшеу үшін жарықтық сенсоры мен жарық диоды қажет. SD картасын қолдана отырып, мен деректерді кейінірек орнату процедурасына сақтаймын. Орнату Excel -де (немесе кез келген басқа бағдарламада) орындалады. Шығару Arduino кодында қолданылады, және бұл! Мұны бір рет жасау керек. Содан кейін сіз калибрлеу параметрін мәңгілікке пайдалана аласыз!
1 -қадам: бөлшектер
1- WEMOS mini D1: Aliexpress 3 €
2- TSL 2561 (Жарықтық сенсоры): Aliexpress 3 €
3- SD картасы модулі: Aliexpress 1 €
4- жарық диоды
5- резистор 220 Ом
6- сымдар
жалпы құны: 8-10 €
2 -қадам: Сымдарды жалғау
SD картасының модулі мен жарықтық сенсорының сымдарын өзгертуге болмайды (олардың көпшілігі). Светодиодты PWM түйреуішіне қосу керек.
3 -қадам: код
Мен үш кодты біріктірдім:
SD картасы: қолданылған мысал> SD> Arduino IDE бағдарламасындағы ReadWrite
TSL 2561: пайдаланылған Adafruit TSL2561 кітапханасының мысалы (sensorapi); Сіз оны мысалдардан таба аласыз, егер сіз кітапхананы орнатсаңыз (Arduino IDE -де кітапхананы қалай орнату керектігін білесіз деп ойлаймын).
Жарықдиодты сөндіру: қолданылған мысалдар> Аналогты> өшу
Код модульдерді инициализациялағаннан кейін жарық диодты өшіріп, жарықтығын оқиды және оны SD картасына сақтайды. осылайша мен калибрлеу үшін кейбір деректерді жинаймын.
Мен әр кодты өз қажеттіліктеріме сәйкес өзгерттім. соңғы код қоса беріледі.
Сигнал қоса берілген суретке ұқсас болуы керек. Өкінішке орай, мен суретке түсіруді ұмытып кеттім, сондықтан мен оны қалай болу керектігін көрсету үшін Excel -де қайта орналастырдым.
ЕСКЕРТПЕ: Мен Arduino орнына wemo mini D1 қолданамын. Мен білмейтін қандай да бір себептермен PWM 0 мен 1023 аралығында. Arduino-да ол 0-255 аралығында болуы керек. Егер сіз arduino кодын қолданғыңыз келсе, оған қамқорлық жасауыңыз керек (90 -жол).
4 -қадам: орнату және қолдану
деректерді жинағаннан кейін мен файлды excel -де ашып, деректерді салдым (суретке қараңыз). бірінші баған - PWM мәні, ал екіншісі - люкс (сенсордың оқылуы, құрылғы маңызды емес). Сондықтан, люкс (y осі) мен PWM (x осі) арасындағы сюжетті құрыңыз. Көріп отырғаныңыздай, жарықтық PWM мәніне пропорционалды. Мен оған сызық қойдым.
Сызықты орнату үшін келесі әрекеттерді орындаңыз:
1- деректерді сызыңыз (кірістіру> шашырау сызығы), сіз қалай білесіз деп ойлаймын.
2- берілген деректерді тінтуірдің оң жақ түймесімен нұқыңыз
3- тренд сызығын басыңыз.
4- (Excel 2013 жылы) оң жағында панель пайда болады. Сызықты таңдаңыз. Төменгі жағында «теңдеуді диаграммада көрсету» таңдаңыз.
Сызықтық қатынас менің қабылдаудан өзгеше. Сондықтан менің қабылдауым мен жарықтық арасында логарифмдік байланыс болуы керек деп ойлаймын (бұл менің ойыма келген ең қарапайым әдіс!). Сондықтан мен фитингтің еңістігін алдым. Қиып алу маңызды емес, себебі ол қоршаған жарықтың ластануына байланысты! орнына мен 1 -ді қостым. Себебі Log10 (0) шексіз. Мәселені шешу үшін маған тосқауыл қажет. Менің жағдайда теңдеу келесідей көрінеді:
y = Log10 (0.08 x +1), y-жарықтық, ал x-PWM мәні (0-1023)
Мен теңдеуді максималды мәнге келтірдім. онда шығыс жиілігі әрқашан 0-100 аралығында болады. осылайша мен максималды абсолюттік жарықтықты ескермей, arduino -дан белгілі бір салыстырмалы жарықтықты сұрай аламын.
y = Log10 (0,08 x +1)*100/1,914
Ардуинода менің кірісім салыстырмалы жарықтық болғандықтан, x (PWM) теңдеуін қайта реттеу керек:
x = (10^(y*1.914 / 100) - 1) / 0.08
кодта осы теңдеуді қолдана отырып, біз жарықтылықтың сызықтық өзгерісін ала аламыз. Сіз arduino-дан 0-100 арасындағы жарықтықты (y) сұрайсыз, ал arduino сәйкес PWM мәнін есептейді. осылайша, егер жарықтық екі есе болса, сіздің қабылдауыңыз да бірдей болады.
егер сіз оны кодта қолданғыңыз келсе, мына жолдарды қосқан дұрыс:
жарықтық = 50; // пайызбен
PWM = pow (10, жарықтық*1,914/100) -1) /0,0793;
analogWrite (ledpin, PWM);
ЕСКЕРТПЕ: нормализация максималды PWM 1023 үшін жасалады (Wemos mini D1 үшін). Arduino үшін PWM 0-255 аралығында. соған сәйкес есептеу керек.
ЕСКЕРТУ2: Мен біздің қабылдау мен PWM мәнінің қалай байланысты екенін көрсету үшін логикалық сызықты сюжетті қостым. оны орнату үшін қолдануға болмайды!
5 -қадам: Қорытынды
калибрлеу мен үшін жақсы жұмыс істейді. PWM мәндері үлкен болған кезде мен айырмашылықты көре аламын. Бұрын үлкен мәндер ретінде күңгірттеудің әсерін көре алмадым. Негізінен өзгерістердің көпшілігі PWM -дің шағын диапазонында болды. қазір ол калибрленген!
әр жарықдиодты, әр түрлі түстер, өзінің калибрлеу параметрлері болуы керек. Бірақ мен көк жарықдиодты калибрледім және ақ жарық диодты параметрді қолдандым, нәтиже қолайлы болды. Мүмкін сіз менің калибрлеу параметрімді өзіңізді мазаламай қолдана аласыз !!
Ұсынылған:
Visuino жарық диодты жарықтылықты өзгерту үшін импульстік ен модуляциясын (PWM) қалай қолдануға болады: 7 қадам
Visuino жарық диодының жарықтығын өзгерту үшін импульстік ен модуляциясын (PWM) қалай қолдануға болады: Бұл оқулықта біз импульстік ені модуляциясын (PWM) пайдаланып оның жарықтығын өзгерту үшін Arduino UNO мен Visuino -ға қосылған жарықдиодты қолданамыз
Жарық диодты жарықтылықты потенциометр мен OLED дисплеймен басқару: 6 қадам
Жарық диодты жарықтылықты потенциометр мен OLED дисплейі арқылы басқару: Бұл оқулықта біз жарық диодты жарықтылықты потенциометрмен басқаруды және OLED дисплейінде мәнді көрсетуді үйренеміз
Жарық диодты жарықтылықты потенциометр мен Arduino көмегімен басқару: 6 қадам
Жарық диодының жарықтығын потенциометр мен Arduino көмегімен басқару: Бұл оқулықта біз потенциометр мен Arduino көмегімен жарық диодты жарықтылықты басқаруды үйренеміз
Жарық диодты жарықтылықты потенциометр көмегімен реттеңіз: 4 қадам
Жарық диодты жарықтылықты потенциометр көмегімен реттеңіз: Алдыңғы мақалада мен ADC мәнін потенцометрден Arduino көмегімен қалай оқу керектігін көрсеттім, бұл жолы мен ADC мәнінің көрсеткішін пайдаланамын
Arduino мен Bluetooth модулін (HC-05) пайдаланып жарық диодты жарықтылықты басқару: 4 қадам
Arduino мен Bluetooth модулін (HC-05) қолданып жарық диодты жарықтылықты басқару: Кіріспе Бұл оқулықта біз Arduino UNO, Bluetooth модулі (HC-05) және Android (Bluetooth терминалы) қосымшасы арқылы жарық диодты жарықтылықты басқарамыз