Სარჩევი:
- ნაბიჯი 1: ნაწილები
- ნაბიჯი 2: გაყვანილობა
- ნაბიჯი 3: კოდი
- ნაბიჯი 4: მორგება და გამოყენება
- ნაბიჯი 5: დასკვნა
ვიდეო: LED სიკაშკაშის დაკალიბრება: 5 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:18
სანამ ზღაპრულ შუქს ვაკეთებდი, მივხვდი, რომ PWM მნიშვნელობა არაწრფივი პროპორციულია LED- ის სიკაშკაშესთან. მარტივად რომ ვთქვათ, თუ PWM მნიშვნელობა ორმაგია, სიკაშკაშე არ არის ორმაგი; განსაკუთრებით მაშინ, როდესაც PWM მაქსიმუმთან ახლოს არის, ნებისმიერი ცვლილება არ არის ცნობადი ჩემი თვალით. ვფიქრობდი, რომ ეს უნდა იყოს მარტივი დაკალიბრების საკითხი! და ეს როგორ გავაკეთე ეს პროექტი! იდეა არის გავზომოთ LED სიკაშკაშე ზოგიერთი მოწყობილობით (სიკაშკაშის სენსორი ან ფოტორეზისტორი) და ვიპოვოთ კორელაცია PWM მნიშვნელობასა და სიკაშკაშეს შორის. შემდეგ მოგვიანებით, თუ სიკაშკაშე 50%-ზე დავაყენე, არდუინო გამოთვლის შესაბამის PWM- ს და შესაბამისად დაბნელდება LED.
ამიტომ, მე მჭირდება სიკაშკაშის სენსორი და LED სიკაშკაშის გასაზომად. SD ბარათის გამოყენებით, მე შევინახავ მონაცემებს მოგვიანებით დამონტაჟების პროცედურისთვის. მორგება მოხდება Excel- ში (ან ნებისმიერ სხვა პროგრამაში). Out out გამოყენებული იქნება Arduino კოდში და ეს არის ის! ეს ერთხელ უნდა გაკეთდეს. მაშინ სამუდამოდ შეგიძლიათ გამოიყენოთ კალიბრაციის პარამეტრი!
ნაბიჯი 1: ნაწილები
1- WEMOS mini D1: Aliexpress 3 €
2- TSL 2561 (სიკაშკაშის სენსორი): Aliexpress 3 €
3- SD ბარათის მოდული: Aliexpress 1 €
4- LED
5- რეზისტორი 220 ომი
6- მავთულები
საერთო ღირებულება: 8 -10 €
ნაბიჯი 2: გაყვანილობა
SD ბარათის მოდული და სიკაშკაშის სენსორის მავთულები არ უნდა შეიცვალოს (მათი უმეტესობა). Led უნდა იყოს დაკავშირებული PWM პინთან.
ნაბიჯი 3: კოდი
მე გავაერთიანე სამი ცალი კოდი:
SD ბარათი: გამოყენებული მაგალითი> SD> ReadWrite Arduino IDE- ში
TSL 2561: გამოყენებული Adafruit TSL2561 ბიბლიოთეკის მაგალითი (სენსორაპი); თქვენ ნახავთ მას მაგალითებში, თუ დააინსტალირებთ ბიბლიოთეკას (მე ვთვლი რომ თქვენ იცით როგორ დააინსტალიროთ ბიბლიოთეკა Arduino IDE– ში).
LED ქრებოდა: გამოყენებული მაგალითები> ანალოგი> ქრებოდა
კოდი, მოდულების ინიციალიზაციის შემდეგ, დაბნელებს led- ს და წაიკითხავს სიკაშკაშეს და შეინახავს SD ბარათში. ამ გზით მე ვაგროვებ მონაცემებს კალიბრაციისთვის.
მე შევცვალე თითოეული კოდი ჩემი საჭიროებების შესაბამისად. საბოლოო კოდი ერთვის.
სიგნალი უნდა გამოიყურებოდეს თანდართულ სურათზე. სამწუხაროდ, დამავიწყდა ფოტოს გადაღება, ამიტომ გადავიღე იგი ექსელში, რათა გაჩვენოთ როგორ უნდა იყოს.
შენიშვნა: მე ვიყენებ wemo mini D1- ს არდუინოს ნაცვლად. რატომღაც, რაც მე არ ვიცი, PWM არის 0-დან 1023-მდე. არდუინოში ის უნდა იყოს 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-ს შორისაა. ამ გზით შემიძლია არდუინოს ვთხოვო გარკვეული ნათესავი სიკაშკაშე, მაქსიმალური აბსოლუტური სიკაშკაშის გარეშე.
y = Log10 (0.08 x +1)*100/1.914
იმის გამო, რომ არდუინოში ჩემი შეყვანა არის ფარდობითი სიკაშკაშე, მე უნდა განვაახლო განტოლება x- ისთვის (PWM):
x = (10^(y*1.914 / 100) - 1) / 0.08
კოდში ამ განტოლების გამოყენებით ჩვენ შეგვიძლია მივიღოთ წრფივი სიკაშკაშის ცვლილება. თქვენ ითხოვთ arduino– ს სიკაშკაშეს (y) 0-100 – ს შორის, და arduino ითვლის შესაბამის PWM მნიშვნელობას. ამ გზით, თუ გაორმაგდება სიკაშკაშე, თქვენი აღქმაც იგივეა.
თუ გსურთ გამოიყენოთ იგი თქვენს კოდში, უმჯობესია დაამატოთ ეს ხაზები:
სიკაშკაშე = 50; // პროცენტულად
PWM = ძალა (10, სიკაშკაშე*1.914/100) -1) /0.0793;
analogWrite (ledpin, PWM);
შენიშვნა: ნორმალიზება ხდება მაქსიმალური PWM 1023 (Wemos mini D1– ისთვის). Arduino– სთვის PWM არის 0-255 – ს შორის. თქვენ უნდა გამოთვალოთ იგი შესაბამისად.
შენიშვნა 2: მე დავამატე ჟურნალი-წრფივი ნაკვეთი იმის საჩვენებლად, თუ როგორ არის დაკავშირებული ჩვენი აღქმა და PWM მნიშვნელობა. არ უნდა გამოიყენოთ იგი შესაკრავად!
ნაბიჯი 5: დასკვნა
კალიბრაცია კარგად მუშაობს ჩემთვის. როდესაც PWM მნიშვნელობები დიდია, მე ვხედავ განსხვავებას. ადრე, როგორც დიდი ღირებულებები, მე ვერ ვხედავდი დაბნელების ეფექტს. ძირითადად ცვლილებების უმეტესობა განხორციელდა PWM– ის მცირე დიაპაზონში. ახლა ის დაკალიბრებულია!
თითოეულ LED- ს, სპეციალურად განსხვავებულ ფერს, უნდა ჰქონდეს საკუთარი კალიბრაციის პარამეტრები. თუმცა მე დავაკალიბრე ლურჯი LED და გამოვიყენე პარამეტრი თეთრი LED- ისთვის და შედეგი მისაღები იყო. ასე რომ თქვენ შეგიძლიათ გამოიყენოთ ჩემი დაკალიბრების პარამეტრი საკუთარი თავის შეწუხების გარეშე !!
გირჩევთ:
Visuino როგორ გამოვიყენოთ პულსის სიგანის მოდულაცია (PWM) LED სიკაშკაშის შესაცვლელად: 7 ნაბიჯი
Visuino როგორ გამოვიყენოთ პულსის სიგანის მოდულაცია (PWM) LED სიკაშკაშის შესაცვლელად: ამ გაკვეთილში ჩვენ გამოვიყენებთ Arduino UNO– სა და Visuino– სთან დაკავშირებულ LED– ს, რათა შეცვალოთ მისი სიკაშკაშე Pulse Width Modulation (PWM) გამოყენებით. ნახეთ სადემონსტრაციო ვიდეო
ტენიანობის სენსორის დაკალიბრება: 7 ნაბიჯი
ტენიანობის სენსორის დაკალიბრება: მე მაქვს 3 სენსორი, რომელსაც შეუძლია ჰაერის ფარდობითი ტენიანობის გაზომვა: BME280, SHT21, DHT22. მათ განაცხადეს გაზომვის უნარი სიზუსტით +/- 3% დიაპაზონიდან 20-დან 80% -მდე. თუმცა, როდესაც ერთსა და იმავე მდგომარეობაში ვამოწმებდი 3 სენსორს, მე მივიღე 3 განსხვავებული შედეგი. იქნებ ო
როგორ დაკალიბრება და გამოყენება MQ9 გაზის სენსორი W/ Arduino: 8 ნაბიჯი
როგორ დაკალიბრება და გამოყენება MQ9 გაზის სენსორი W/ Arduino: თქვენ შეგიძლიათ წაიკითხოთ ეს და სხვა საოცარი გაკვეთილები ElectroPeak– ის ოფიციალურ ვებ – გვერდზე მიმოხილვა ამ გაკვეთილში თქვენ ისწავლით თუ როგორ დაკალიბრებთ და იყენებთ MQ9 გაზის სენსორს არდუინოს დაფაზე. რას გაიგებთ: რა გაზის სენსორი არის და როგორ მუშაობს. კომ
6 ღერძიანი სენსორული მოდული FSP200 დაკალიბრება და ტესტირება: 6 ნაბიჯი
6 ღერძიანი სენსორული მოდული FSP200 დაკალიბრება და ტესტირება: FSP200 არის 6 ღერძიანი ინერციული საზომი ერთეულის პროცესორი, რომელიც უზრუნველყოფს სათაურისა და მიმართულების გამომუშავებას. ის ასრულებს ამაჩქარებლისა და გიროსენსორების შერწყმას სტაბილური და ზუსტი მიმართულების და მიმართულებისათვის. FSP200 შესაფერისია რობოტიზატორებისთვის
DS18B20 სენსორის დაკალიბრება Arduino UNO– ით: 3 ნაბიჯი (სურათებით)
DS18B20 სენსორის დაკალიბრება Arduino– ით UNO: უარყოფა: მოწყობილობა, რომელსაც ხედავთ სურათებში, გამოიყენება სხვა პროექტში, როგორც თერმოსტატი ფილმის შემუშავების პროცესისთვის. თქვენ შეგიძლიათ ნახოთ ეს პროექტი აქ. სენსორის, ან ერთზე მეტის დაკალიბრების მიზნით, დაგჭირდებათ ის, რასაც ამ პროექტში ნახავთ