Სარჩევი:

Arduino CO მონიტორი MQ-7 სენსორის გამოყენებით: 8 ნაბიჯი (სურათებით)
Arduino CO მონიტორი MQ-7 სენსორის გამოყენებით: 8 ნაბიჯი (სურათებით)

ვიდეო: Arduino CO მონიტორი MQ-7 სენსორის გამოყენებით: 8 ნაბიჯი (სურათებით)

ვიდეო: Arduino CO მონიტორი MQ-7 სენსორის გამოყენებით: 8 ნაბიჯი (სურათებით)
ვიდეო: BTT SKR2 - TMC2209 UART with Sensorless Homing 2024, ივლისი
Anonim
Arduino CO მონიტორი MQ-7 სენსორის გამოყენებით
Arduino CO მონიტორი MQ-7 სენსორის გამოყენებით
Arduino CO მონიტორი MQ-7 სენსორის გამოყენებით
Arduino CO მონიტორი MQ-7 სენსორის გამოყენებით

ორიოდე სიტყვა რატომ შეიქმნა ეს სასწავლო: ერთ დღეს ჩემი შეყვარებულის დედამ დაგვირეკა შუა ღამეს, რადგან ის მართლაც ცუდად იყო - მას ჰქონდა თავბრუსხვევა, ტაქიკარდია, გულისრევა, არტერიული წნევა, ის უცნობი დროით გონებამახვილიც კი გახდა (ალბათ 5 ფუნტი წუთი, მაგრამ სათქმელი არ არსებობს), ყოველგვარი აშკარა მიზეზის გარეშე. ის ცხოვრობს პატარა სოფელში, საავადმყოფოებისგან მოშორებით (ჩვენი ადგილიდან 60 კმ, უახლოეს საავადმყოფოში 30 კმ, 10 კმ ყოველგვარი ნორმალური გზის გარეშე), ამიტომ ჩვენ მასთან მივედით და სასწრაფო დახმარების შემდეგ მალევე მივედით. ის საავადმყოფოში გადაიყვანეს და დილით თავი თითქმის კარგად იგრძნო, მაგრამ ექიმებმა ვერ დაადგინეს ამის მიზეზი. მეორე დღეს ჩვენ გვქონდა იდეა: ეს შეიძლება იყოს CO მოწამვლა, რადგან მას აქვს გაზის წყლის ქვაბი (ფოტოზე) და მთელი საღამო იჯდა მასთან, როდესაც ეს მოხდა. ჩვენ ცოტა ხნის წინ შევიძინეთ MQ-7 CO სენსორი, მაგრამ არასოდეს მქონდა დრო, რომ შემეგროვებინა ეს სქემა, ასე რომ ეს იყო სრულყოფილი დრო ამის გასაკეთებლად. ინტერნეტში რაიმე ინსტრუქციის ძიების შემდეგ მივხვდი, რომ ვერ ვპოულობ გზამკვლევს, რომელიც ამავდროულად მიჰყვება სენსორის მწარმოებლის მითითებებს, რომელიც მოცემულია მის მონაცემთა ფურცელში და საერთოდ ხსნის არაფერს (ერთ მაგალითს საკმაოდ კარგი კოდი ჰქონდა, მაგრამ ეს არ იყო ნათელი როგორ გამოვიყენო, სხვები ზედმეტად გამარტივებულნი იყვნენ და კარგად არ იმუშავებდნენ). ასე რომ, ჩვენ დავხარჯეთ დაახლოებით 12 საათი სქემების შემუშავებისთვის, 3D კეისის შესაქმნელად და დასაბეჭდად, სენსორის შესამოწმებლად და დაკალიბრებისთვის და მეორე დღეს მივედით საეჭვო ქვაბთან. აღმოჩნდა, რომ იქ CO დონე ძალიან მაღალი იყო და შეიძლება ფატალური ყოფილიყო, თუ CO ზემოქმედების დრო უფრო გრძელი იქნებოდა. ასე რომ, მე მჯერა, რომ ნებისმიერ ადამიანს, ვისაც მსგავსი სიტუაცია აქვს (მაგალითად, გაზის ქვაბი ან სხვა წვა საცხოვრებელ სივრცეში) უნდა მიიღოს ასეთი სენსორი, რათა თავიდან აიცილოს რაიმე ცუდი.

ყველაფერი რაც მოხდა ორი კვირის წინ, მას შემდეგ მე საკმაოდ გავაუმჯობესე სქემა და პროგრამა, და ახლა ის გონივრულად კარგი და შედარებით მარტივი ჩანს (არა კოდის 3 სტრიქონი მარტივი, მაგრამ მაინც). მიუხედავად იმისა, რომ ვიმედოვნებ, რომ ზუსტი CO მრიცხველი მომცემს გამოხმაურებას ნაგულისხმევი დაკალიბრების შესახებ, რომელიც ჩავდე ესკიზში - ეჭვი მაქვს, რომ ეს შორს არის კარგიდან. აქ არის სრული სახელმძღვანელო რამდენიმე ექსპერიმენტული მონაცემებით.

ნაბიჯი 1: მასალების შედგენა

მასალების ბილი
მასალების ბილი

დაგჭირდებათ: 0. არდუინოს დაფა. მე მირჩევნია არდუინო ნანოს ჩინური კლონი მისი გამორჩეული ფასი 3 დოლარი, მაგრამ ნებისმიერი 8 ბიტიანი არდუინო აქ იმუშავებს. ესკიზი იყენებს ტაიმერების ზოგიერთ მოწინავე ოპერაციას და ტესტირებულია მხოლოდ atmega328 მიკროკონტროლერზე - თუმცა, ალბათ, ის სხვებზეც კარგად იმუშავებს. MQ-7 CO სენსორი. ყველაზე ხშირად ხელმისაწვდომია მფრინავი თევზის სენსორული მოდულით, მას უნდა ჩაუტარდეს მცირე მოდიფიკაცია, დეტალები შემდეგ ეტაპზე, ან შეგიძლიათ გამოიყენოთ გამყოფი MQ-7 სენსორი.

2. NPN ბიპოლარული ტრანზისტორი. პრაქტიკულად ნებისმიერი NPN ტრანზისტორი, რომელსაც შეუძლია 300 mA ან მეტი გაუმკლავდეს აქ იმუშავებს. PNP ტრანზისტორი არ იმუშავებს ხსენებული მფრინავი თევზის მოდულთან (რადგან მას აქვს გამათბობელი, რომელიც შეხებულია სენსორის გამომუშავებაზე), მაგრამ მისი გამოყენება შესაძლებელია დისკრეტული MQ-7 სენსორით.

3. რეზისტორები: 2 x 1k (0.5k– დან 1.2k– მდე მშვენივრად იმუშავებს), და 1 x 10k (ეს საუკეთესოდ არის დაცული ზუსტი - თუმცა თუ თქვენ აბსოლუტურად უნდა გამოიყენოთ სხვა მნიშვნელობა, ესკიზში შესაბამისად შეასწორეთ reference_resistor_kOhm ცვლადი).

4. კონდენსატორები: 2 x 10uF ან მეტი. საჭიროა ტანტალი ან კერამიკული პირობა, ელექტროლიტური არ იმუშავებს კარგად ESR– ის გამო (ისინი ვერ შეძლებენ უზრუნველყონ საკმარისი დენი მაღალი დენის ტალღის შესამცირებლად).5. მწვანე და წითელი LED- ები მიუთითებს CO– ს მიმდინარე დონეს (ასევე შეგიძლიათ გამოიყენოთ ერთი ორმაგი ფერის LED 3 ტერმინალით, როგორც ჩვენ ვიყენებდით ჩვენს ყვითელ ყუთის პროტოტიპს).6. Piezo buzzer მიუთითოს მაღალი CO დონე.7. პურის დაფა და მავთულები (თქვენ ასევე შეგიძლიათ ყველაფერი მიამაგროთ ნანოს ქინძისთავებს ან ჩაწეროთ Uno სოკეტებში, მაგრამ შეცდომა ადვილია ამ გზით).

ნაბიჯი 2: მოდულის მოდიფიკაცია ან დისკრეტული სენსორის გაყვანილობა

მოდულის მოდიფიკაცია ან დისკრეტული სენსორის გაყვანილობა
მოდულის მოდიფიკაცია ან დისკრეტული სენსორის გაყვანილობა

მოდულისთვის, თქვენ უნდა ჩამოაშოროთ რეზისტორი და კონდენსატორი, როგორც ეს ნაჩვენებია ფოტოში. სურვილისამებრ, შეგიძლიათ გათიშოთ ყველაფერი - მოდულის ელექტრონიკა სრულიად უსარგებლოა, ჩვენ ვიყენებთ მას მხოლოდ როგორც სენსორის დამჭერი, მაგრამ ეს ორი კომპონენტი ხელს შეგიშლით სწორი კითხვების მიღებაში, თუ თქვენ იყენებთ დისკრეტულ სენსორს, მიამაგრეთ გამათბობლის ქინძისთავები (H1 და H2) 5 ვ და ტრანზისტორის კოლექტორს შესაბამისად. მიამაგრეთ ერთი მგრძნობიარე მხარე (ნებისმიერი A ქინძისთავები) 5V- ზე, მეორე მგრძნობიარე მხარე (ნებისმიერი B ქინძისთავები) 10k რეზისტორზე, ისევე როგორც მოდულის ანალოგური პინი სქემატიკაში.

ნაბიჯი 3: ოპერაციის პრინციპი

ოპერაციის პრინციპი
ოპერაციის პრინციპი
ოპერაციის პრინციპი
ოპერაციის პრინციპი

რატომ გვჭირდება ყველა ეს გართულება, რატომ არ უნდა დავამატოთ 5V, მიწა და უბრალოდ მივიღოთ კითხვები? ისე, სამწუხაროდ, თქვენ ვერაფერს მიიღებთ ამ გზით. სამწუხაროდ, MQ-7 მონაცემთა ცხრილის თანახმად, სენსორმა უნდა გაიაროს მაღალი და დაბალი გათბობის ციკლები სათანადო გაზომვების მისაღებად. დაბალი ტემპერატურის ფაზის დროს, CO შეიწოვება ფირფიტაზე, რაც ქმნის მნიშვნელოვან მონაცემებს. მაღალი ტემპერატურის ფაზის დროს, შეწოვილი CO და სხვა ნაერთები აორთქლდება სენსორის ფირფიტიდან, ასუფთავებს მას მომდევნო გაზომვისთვის.

ასე რომ, ზოგადად ოპერაცია მარტივია:

1. გამოიყენეთ 5V 60 წამის განმავლობაში, არ გამოიყენოთ ეს მაჩვენებლები CO გაზომვისთვის.

2. გამოიყენეთ 1.4V 90 წამის განმავლობაში, გამოიყენეთ ეს მაჩვენებლები CO გაზომვისთვის.

3. გადადით ნაბიჯი 1 -ზე.

მაგრამ აქ არის პრობლემა: Arduino ვერ უზრუნველყოფს საკმარის ენერგიას ამ სენსორის ამოსაყვანად მისი ქინძისთავებიდან - სენსორის გამათბობელს სჭირდება 150 mA, ხოლო Arduino pin– ს შეუძლია უზრუნველყოს არაუმეტეს 40 mA, ასე რომ, თუ პირდაპირ მიმაგრებულია, Arduino pin დაიწვის და სენსორი მაინც გაიმარჯვებს არ მუშაობს ასე რომ, ჩვენ უნდა გამოვიყენოთ რაიმე სახის მიმდინარე გამაძლიერებელი, რომელიც იღებს მცირე შეყვანის დენს დიდი გამომავალი დენის გასაკონტროლებლად. კიდევ ერთი პრობლემა არის 1.4V- ის მიღება. ერთადერთი გზა, რომ საიმედოდ მიიღოთ ეს მნიშვნელობა ბევრი ანალოგური კომპონენტის დანერგვის გარეშე არის PWM (პულსის სიგანის მოდულაცია) მიდგომის გამოყენება უკუკავშირით, რომელიც გააკონტროლებს გამომავალ ძაბვას.

NPN ტრანზისტორი წყვეტს ორივე პრობლემას: როდესაც ის მუდმივად ჩართულია, ძაბვა სენსორზე არის 5V და ის თბება მაღალი ტემპერატურის ფაზისთვის. როდესაც ჩვენ ვიყენებთ PWM მის შეყვანას, დენი პულსირებს, შემდეგ ის გათბება კონდენსატორის მიერ და საშუალო ძაბვა შენარჩუნებულია მუდმივი. თუ ჩვენ ვიყენებთ მაღალი სიხშირის PWM (ესკიზში მას აქვს სიხშირე 62.5KHz) და საშუალოდ ბევრ ანალოგურ კითხვას (ესკიზში ჩვენ საშუალოდ ~ 1000 -ზე მეტ კითხვას ვგულისხმობთ), მაშინ შედეგი საკმაოდ საიმედოა.

ძალიან მნიშვნელოვანია კონდენსატორების დამატება სქემის მიხედვით. აქ გამოსახულებები ასახავს სიგნალის განსხვავებას C2 კონდენსატორთან და მის გარეშე: მის გარეშე PWM ტალღა აშკარად ჩანს და ის მნიშვნელოვნად ამახინჯებს კითხვას.

ნაბიჯი 4: სქემა და პური

სქემა და პურის დაფა
სქემა და პურის დაფა
სქემა და პურის დაფა
სქემა და პურის დაფა
სქემა და პურის დაფა
სქემა და პურის დაფა

აქ არის სქემატური და breadboard ასამბლეის.

გაფრთხილება! საჭიროა სტანდარტული გარღვევის მოდულის მოდიფიკაცია! მოდიფიკაციის გარეშე მოდული უსარგებლოა. მოდიფიკაცია აღწერილია მეორე ეტაპზე

მნიშვნელოვანია LED- ებისათვის გამოიყენოთ D9 და D10 ქინძისთავები, ვინაიდან იქ გვაქვს Timer1 აპარატურის შედეგები, რაც საშუალებას მისცემს შეუფერხებლად შეცვალოს მათი ფერები. ქინძისთავები D5 და D6 გამოიყენება ზუზერისთვის, რადგან D5 და D6 არის Timer0 აპარატურის შედეგები. ჩვენ დავაკონფიგურირებთ, რომ ისინი ერთმანეთის შებრუნებული იყოს, ასე რომ ისინი გადადიან (5V, 0V) და (0V, 5V) მდგომარეობებს შორის, რითაც წარმოქმნიან ხმას ზუზერზე. გაფრთხილება: ეს გავლენას ახდენს Arduino– ს მთავარ დროის შეწყვეტაზე, ამიტომ ყველა დროზე დამოკიდებული ფუნქცია (როგორიცაა millis ()) არ გამოიღებს სწორ შედეგებს ამ ესკიზში (ამის შესახებ მოგვიანებით). Pin D3– ს აქვს ტექნიკური Timer2 გამომავალი მასთან დაკავშირებული (ასევე D11 - მაგრამ ნაკლებად მოსახერხებელია მავთულის დაყენება D11– ზე ვიდრე D3) - ამიტომ ჩვენ ვიყენებთ მას PWM ძაბვის მაკონტროლებელი ტრანზისტორისათვის. რეზისტორი R1 გამოიყენება LED- ების სიკაშკაშის გასაკონტროლებლად. ის შეიძლება იყოს 300 -დან 3000 Ohm- მდე, 1k საკმაოდ ოპტიმალურია სიკაშკაშის/ენერგიის მოხმარებაში. რეზისტორი R2 გამოიყენება ტრანზისტორის საბაზისო დენის შეზღუდვის მიზნით. ის არ უნდა იყოს 300 Ohms- ზე დაბალი (არდუინოს პინის გადატვირთვისთვის) და არაუმეტეს 1500 Ohms. 1k არის უსაფრთხო არჩევანი.

რეზისტორი R3 გამოიყენება სერიაში სენსორის ფირფიტით ძაბვის გამყოფის შესაქმნელად. სენსორის გამომავალი ძაბვა უდრის R3 / (R3 + Rs) * 5V, სადაც Rs არის მიმდინარე სენსორის წინააღმდეგობა. სენსორის წინააღმდეგობა დამოკიდებულია CO კონცენტრაციაზე, ამიტომ ძაბვაც შესაბამისად იცვლება. კონდენსატორი C1 გამოიყენება MQ -7 სენსორზე PWM ძაბვის შესამცირებლად, რაც უფრო მაღალია მისი ტევადობა მით უკეთესი, მაგრამ ასევე უნდა ჰქონდეს დაბალი ESR - ასე კერამიკული (ან ტანტალი) კონდენსატორი სასურველია აქ, ელექტროლიტური არ მუშაობს კარგად.

კონდენსატორი C2 გამოიყენება სენსორის ანალოგური გამოსვლის გასაუმჯობესებლად (გამომავალი ძაბვა დამოკიდებულია შეყვანის ძაბვაზე - და ჩვენ გვაქვს საკმაოდ მაღალი დენის PWM, რომელიც გავლენას ახდენს ყველა სქემაზე, ამიტომ ჩვენ გვჭირდება C2). უმარტივესი გამოსავალია გამოიყენოთ იგივე კონდენსატორი, როგორც C1. NPN ტრანზისტორი ან ატარებს დენს ყველა დროის განმავლობაში, რათა უზრუნველყოს მაღალი დენი სენსორის გამათბობელზე, ან მუშაობს PWM რეჟიმში და ამცირებს გათბობის დენს.

ნაბიჯი 5: Arduino პროგრამა

არდუინოს პროგრამა
არდუინოს პროგრამა

გაფრთხილება: სენსორი მოითხოვს მექანიკურ კალიბრაციას ნებისმიერი პრაქტიკული გამოყენებისათვის. კალიბრაციის გარეშე, თქვენი განსაკუთრებული სენსორის პარამეტრებიდან გამომდინარე, ეს ჩანახატი შეიძლება ჩართოთ სიგნალი სუფთა ჰაერზე ან არ გამოავლინოთ ნახშირბადის ნახშირბადის მონოქსიდის კონცენტრაცია

კალიბრაცია აღწერილია შემდეგ ნაბიჯებში. უხეში დაკალიბრება ძალიან მარტივია, ზუსტი საკმაოდ რთული.

ზოგადად, პროგრამა საკმაოდ მარტივია:

პირველ რიგში, ჩვენ ვაკალიბრებთ ჩვენს PWM- ს, რათა გამოვიღოთ სტაბილური 1.4V სენსორით (სწორი PWM სიგანე დამოკიდებულია ბევრ პარამეტრზე, როგორიცაა ზუსტი რეზისტორული მნიშვნელობები, ამ კონკრეტული სენსორის წინააღმდეგობა, ტრანზისტორის VA მრუდი და ა.შ. და ა.შ. და გამოვიყენოთ ის, რომელიც საუკეთესოდ ჯდება). შემდეგ, ჩვენ განუწყვეტლივ გავდივართ 60 წამიანი გათბობის და 90 წამიანი გაზომვის ციკლში. განხორციელებისას ის გარკვეულწილად რთულდება. ჩვენ უნდა გამოვიყენოთ აპარატურის ქრონომეტრები, რადგან ყველაფერს, რაც აქ გვაქვს, სჭირდება მაღალი სიხშირის სტაბილური PWM, რათა სწორად ფუნქციონირებდეს. კოდი აქ არის მიმაგრებული და შეიძლება გადმოწერილი იყოს ჩვენი github– დან, ასევე სქემატური წყარო Fritzing– ში. პროგრამაში არის 3 ფუნქცია, რომელიც ამუშავებს ქრონომეტრებს: setTimer0PWM, setTimer1PWM, setTimer2PWM. თითოეული მათგანი ადგენს ტაიმერს PWM რეჟიმში მოცემული პარამეტრებით (კომენტარში არის კოდი) და ადგენს პულსის სიგანეს შეყვანის მნიშვნელობების მიხედვით. გაზომვის ფაზები იცვლება ფუნქციების გამოყენებით start გაუმკლავდეს ყველაფერს შიგნით. და დააყენეთ ქრონომეტრის შესაბამისი მნიშვნელობები 5V- დან 1.4V- მდე გათბობისთვის. LED- ების მდგომარეობა დადგენილია ფუნქციით setLEDs, რომელიც იღებს მწვანე და წითელ სიკაშკაშეს მის შეყვანაზე (ხაზოვანი 1-100 მასშტაბით) და გარდაქმნის მას ტაიმერის შესაბამის პარამეტრში.

ბუზერის მდგომარეობა კონტროლდება ფუნქციების გამოყენებით buzz_on, buzz_off, buzz_beep. ჩართვის/გამორთვის ფუნქციები ხმის ჩართვას და გამორთვას, ბიპის ფუნქცია აწარმოებს სპეციფიკურ სიგნალს 1,5 წამის განმავლობაში, თუ მას პერიოდულად ეძახიან (ეს ფუნქცია მაშინვე ბრუნდება ისე, რომ არ აჩერებს მთავარ პროგრამას - მაგრამ თქვენ კვლავ და ისევ უნდა დარეკოთ სიგნალის გამომუშავების მიზნით).

პროგრამა პირველად გაუშვებს ფუნქციას pwm_adjust, რომელიც აღმოაჩენს PWM ციკლის სწორ სიგანეს, რათა მიაღწიოს 1.4 ვ გაზომვის ფაზაში. შემდეგ ის რამდენჯერმე იძახის იმის მანიშნებლად, რომ სენსორი მზად არის, გადადის გაზომვის ფაზაში და იწყებს მთავარ მარყუჟს.

მთავარ მარყუჟში, პროგრამა ამოწმებს, გავატარეთ თუ არა საკმარისი დრო მიმდინარე ფაზაში (გაზომვის ფაზაში 90 წამი, გათბობის ფაზაში 60 წამი) და თუ კი, მაშინ იცვლება მიმდინარე ეტაპი. ასევე ის მუდმივად აახლებს სენსორულ კითხვებს ექსპონენციალური გლუვის გამოყენებით: new_value = 0.999*old_value + 0.001*new_reading. ასეთი პარამეტრებით და საზომი ციკლით, ის საშუალოდ სიგნალს გასცემს დაახლოებით ბოლო 300 მილიწამზე. გაფრთხილება: სენსორი მოითხოვს მექანიკურ კალიბრაციას ნებისმიერი პრაქტიკული გამოყენებისათვის. კალიბრაციის გარეშე, თქვენი განსაკუთრებული სენსორის პარამეტრებიდან გამომდინარე, ეს ჩანახატი შეიძლება ჩართოთ სიგნალი სუფთა ჰაერზე ან არ გამოავლინოთ ნახშირბადის ნახშირბადის მონოქსიდის კონცენტრაცია.

ნაბიჯი 6: პირველი გაშვება: რას უნდა ველოდოთ

პირველი გაშვება: რას უნდა ველოდოთ
პირველი გაშვება: რას უნდა ველოდოთ

თუ ყველაფერი სწორად ააწყვეთ, ესკიზის გაშვების შემდეგ სერიულ მონიტორში ნახავთ მსგავს რამეს:

მორგება PWM w = 0, V = 4.93

მორგება PWM w = 17, V = 3.57PWM შედეგი: სიგანე 17, ძაბვა 3.57

და შემდეგ რიგი რიცხვები, რომლებიც წარმოადგენენ მიმდინარე სენსორის კითხვას. ეს ნაწილი აწესრიგებს PWM სიგანეს, რათა გამოიმუშაოს სენსორის გამათბობელი ძაბვა რაც შეიძლება ახლოს 1.4 ვ -მდე, გაზომილი ძაბვა გამოიქვითება 5V- დან, ამიტომ ჩვენი იდეალური გაზომილი ღირებულებაა 3.6V. თუ ეს პროცესი არასოდეს მთავრდება და არ მთავრდება ერთი ნაბიჯის შემდეგ (რის შედეგადაც სიგანე ტოლია 0 ან 254) - მაშინ რაღაც არასწორია. შეამოწმეთ არის თუ არა თქვენი ტრანზისტორი ნამდვილად NPN და სათანადოდ არის დაკავშირებული (დარწმუნდით, რომ სწორად გამოიყენეთ ბაზა, კოლექტორი, გამცემი ქინძისთავები - ბაზა მიდის D3– ში, კოლექტორი MQ -7– ში და გამცემი მიწაზე, ნუ დაეყრდნობით Fritzing breadboard view– ს - ეს არის არასწორია ზოგიერთი ტრანზისტორი) და დარწმუნდით, რომ თქვენ დაუკავშირდით სენსორის შეყვანას Arduino– ს A1 შეყვანისას. თუ ყველაფერი კარგადაა, თქვენ უნდა ნახოთ სერიული Plotter– დან Arduino IDE– ს მსგავსი სურათი. 60 და 90 წამის სიგრძის გათბობისა და გაზომვის ციკლები გადის ერთმანეთის მიყოლებით, CO ppm იზომება და განახლდება ყოველი ციკლის ბოლოს. თქვენ შეგიძლიათ აიღოთ ღია ცეცხლი სენსორთან ახლოს, როდესაც გაზომვის ციკლი თითქმის დასრულებულია და ნახოთ როგორ იმოქმედებს იგი კითხვებზე (ალის ტიპზეა დამოკიდებული, მას შეუძლია აწარმოოს 2000 ppm– მდე CO კონცენტრაცია ღია ცის ქვეშ - ასე რომ, მიუხედავად იმისა, რომ მხოლოდ მცირე ნაწილი ის რეალურად გადადის სენსორში, ის კვლავ ჩართავს სიგნალს და ის არ ჩაქრება მომდევნო ციკლის ბოლომდე). მე ვაჩვენე ის სურათზე, ასევე პასუხი სანთებელაზე ცეცხლზე.

ნაბიჯი 7: სენსორის დაკალიბრება

სენსორის კალიბრაცია
სენსორის კალიბრაცია
სენსორის კალიბრაცია
სენსორის კალიბრაცია

მწარმოებლის მონაცემთა ფურცლის თანახმად, სენსორი უნდა მუშაობდეს გათბობა-გაგრილების ციკლზე ზედიზედ 48 საათის განმავლობაში, სანამ დაკალიბრდება. და თქვენ უნდა გააკეთოთ ეს, თუ აპირებთ მის დიდხანს გამოყენებას: ჩემს შემთხვევაში, სუფთა ჰაერზე სენსორის კითხვა 10 საათის განმავლობაში შეიცვალა დაახლოებით 30% -ით. თუ ამას არ გაითვალისწინებთ, შეგიძლიათ მიიღოთ 0 ppm შედეგი იქ, სადაც რეალურად არის 100 ppm CO. თუ არ გსურთ 48 საათის ლოდინი, შეგიძლიათ აკონტროლოთ სენსორის გამომუშავება გაზომვის ციკლის ბოლოს. როდესაც ერთ საათზე მეტი დრო არ შეიცვლება 1-2 პუნქტზე მეტით - შეგიძლიათ იქ შეაჩეროთ გათბობა.

უხეში დაკალიბრება:

სუფთა ჰაერზე მინიმუმ 10 საათის განმავლობაში ესკიზის გაშვების შემდეგ, მიიღეთ ნედლი სენსორის მნიშვნელობა გაზომვის ციკლის ბოლოს, გათბობის ფაზის დაწყებამდე 2-3 წამი და ჩაწერეთ იგი sensor_reading_clean_air ცვლადში (სტრიქონი 100). Ის არის. პროგრამა შეაფასებს სენსორის სხვა პარამეტრებს, ისინი არ იქნება ზუსტი, მაგრამ უნდა იყოს საკმარისი იმისათვის, რომ განასხვავოს 10 და 100 ppm კონცენტრაცია.

ზუსტი დაკალიბრება:

მე გირჩევთ, იპოვოთ დაკალიბრებული CO მრიცხველი, გააკეთოთ 100 ppm CO ნიმუში (ეს შეიძლება გაკეთდეს შპრიცში გრიპის აირის აღებით - CO კონცენტრაცია ადვილად შეიძლება იყოს რამდენიმე ათასი ppm– ის ფარგლებში და ნელ -ნელა ჩაყაროთ დახურულ ქილაში დაკალიბრებული მეტრი და MQ-7 სენსორი), მიიღეთ ამ კონცენტრაციის უხეში სენსორის კითხვა და განათავსეთ იგი sensor_reading_100_ppm_CO ცვლადში. ამ ნაბიჯის გარეშე, თქვენი ppm გაზომვა შეიძლება რამდენჯერმე იყოს არასწორი ორივე მიმართულებით (მაინც კარგია, თუ თქვენ გჭირდებათ სიგნალიზაცია საშიში CO კონცენტრაციისთვის სახლში, სადაც ჩვეულებრივ არ უნდა იყოს CO საერთოდ, მაგრამ არ არის კარგი ნებისმიერი სამრეწველო გამოყენებისთვის).

რადგან მე არ მქონდა CO მრიცხველი, მე გამოვიყენე უფრო დახვეწილი მიდგომა. პირველად მე მოვამზადე CO– ს მაღალი კონცენტრაცია წვის გამოყენებით იზოლირებულ მოცულობაში (პირველი ფოტო). ამ ნაშრომში აღმოვაჩინე ყველაზე სასარგებლო მონაცემები, მათ შორის ნახშირორჟანგის გამომუშავება ალის სხვადასხვა ტიპებისთვის - ეს არ არის ფოტოში, მაგრამ საბოლოო ექსპერიმენტში გამოყენებულია პროპანის გაზის წვა, იგივე კონფიგურაციით, რის შედეგადაც p 5000 ppm CO კონცენტრაცია. შემდეგ განზავებულია 1:50, რათა მიაღწიოს 100 ppm- ს, როგორც ეს მოცემულია მეორე ფოტოში და გამოიყენება სენსორის საცნობარო წერტილის დასადგენად.

ნაბიჯი 8: ზოგიერთი ექსპერიმენტული მონაცემი

ზოგიერთი ექსპერიმენტული მონაცემი
ზოგიერთი ექსპერიმენტული მონაცემი

ჩემს შემთხვევაში, სენსორი საკმაოდ კარგად მუშაობდა - ის არ არის ძალიან მგრძნობიარე მართლაც დაბალი კონცენტრაციებისთვის, მაგრამ საკმარისად კარგია 50ppm– ზე მაღალი რამის გამოვლენისთვის. ვცდილობდი თანდათან გავზარდო კონცენტრაცია, გავზომო და შევადგინე სქემები. არსებობს 0 წთ / წთ ხაზის ორი ნაკრები - სუფთა მწვანე CO– ს ექსპოზიციამდე და ყვითელი მწვანე შემდეგ. როგორც ჩანს, სენსორი ოდნავ ცვლის მის სუფთა ჰაერის წინააღმდეგობას ექსპოზიციის შემდეგ, მაგრამ ეს ეფექტი მცირეა. როგორც ჩანს, მას არ შეუძლია მკაფიოდ განასხვავოს 8 და 15, 15 და 26, 26 და 45 ppm კონცენტრაციები-მაგრამ ტენდენცია ძალიან ნათელია, ასე რომ მას შეუძლია გითხრათ არის თუ არა კონცენტრაცია 0-20 თუ 40-60 ppm დიაპაზონში რა უფრო მაღალი კონცენტრაციებისთვის დამოკიდებულება გაცილებით გამორჩეულია - როდესაც ღია ცეცხლის გამონაბოლქვი ექვემდებარება, მრუდი თავიდან ადის ყოველგვარი დაცემის გარეშე და მისი დინამიკა სულ სხვაა. ასე რომ, მაღალი კონცენტრაციებისთვის ეჭვი არ მეპარება, რომ ის საიმედოდ მუშაობს, თუმცა მე არ შემიძლია მისი სიზუსტის დადასტურება, რადგან მე არ მაქვს შეფასებული CO მრიცხველი. ასევე, ექსპერიმენტების ეს ნაკრები გაკეთდა 20k დატვირთვის რეზისტორის გამოყენებით - და ამის შემდეგ გადავწყვიტე რეკომენდაცია 10k როგორც ნაგულისხმევი მნიშვნელობა, ეს უნდა იყოს უფრო მგრძნობიარე ამ გზით. ეს არის ის. თუ თქვენ გაქვთ საიმედო CO მრიცხველი და თქვენ შეიკრიბებით ეს დაფა, გთხოვთ გაგვიზიაროთ უკუკავშირი სენსორის სიზუსტესთან დაკავშირებით - კარგი იქნება სხვადასხვა სენსორების შესახებ სტატისტიკის შეგროვება და ნაგულისხმევი ესკიზის ვარაუდების გაუმჯობესება.

გირჩევთ: