Სარჩევი:
- ნაბიჯი 1: რაც დაგჭირდებათ
- ნაბიჯი 2: რა არის 5 მავთულის რეზისტენტული სენსორული პანელი?
- ნაბიჯი 3: გაყვანილობა
- ნაბიჯი 4: პროგრამული უზრუნველყოფის განვითარება
- ნაბიჯი 5: სახელმწიფო აპარატის დახუჭვა
- ნაბიჯი 6: დახუჭე ღილაკი
- ნაბიჯი 7: სერიული კომუნიკაცია
- ნაბიჯი 8: კოორდინატების კითხვა
- ნაბიჯი 9: დასუფთავება
- ნაბიჯი 10: საბოლოო აზრები
ვიდეო: 5 მავთულის რეზისტენტული შეხების სენსორი: 10 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:19
Გამარჯობა გამარჯობა!
უკვე დიდი ხანია რაც ვმუშაობ ამ საიტზე და როგორც ჩანს, ბევრი რამ შეიცვალა! მე საბოლოოდ მზად ვარ საჭესთან დავბრუნდე სხვა პროექტისთვის და ვფიქრობ, რომ დროა ცოტა რამ შევცვალო მე თვითონ!
გარკვეული პერიოდის განმავლობაში მქონდა მხედველობაში 271828 ფირფიტაზე და ბურთზე დაფუძნებული პროექტი, მაგრამ ბევრი რამ მაქვს გასაცნობი სენსორებისა და კონტროლის თეორიის შესახებ, სანამ ის დასრულდება. ვფიქრობდი, რომ სანამ რამეს ან ორს ვსწავლობ, შეიძლება თქვენც წამიყვანოთ თქვენთან ერთად!
ამ მიზნით, ჩემი მიზანი ამ გაკვეთილებისთვის იქნება ერთგვარი ჰიბრიდი ჩემს უფრო გაპრიალებულ გაკვეთილებს შორის და ჩანაწერი თავად პროექტისთვის. თითოეული ინდივიდუალური მეცადინეობა იქნება ერთი ნაბიჯი ამ მოგზაურობაში და მოიცავს დეტალებს, რომლებიც მე წარსულში განვიხილე, როგორიცაა კოდის შემუშავება (უბრალოდ დასრულებული კოდის ნაცვლად) და არასწორი ნაბიჯები, რომლებსაც მე ვიღებ გზაზე.
მე ძალიან აღფრთოვანებული ვარ ამ ახალი პროექტისთვის და აღფრთოვანებული ვარ იმის სანახავად, რამდენად კარგად მუშაობს იგი!
დღეს ჩვენ უბრალოდ მივიღებთ მარტივ 5 მავთულის სენსორულ პანელს DP-32– ით.
Დავიწყოთ!
ნაბიჯი 1: რაც დაგჭირდებათ
იმის გამო, რომ ეს გაკვეთილი ეხება ერთი სენსორის მუშაობას, მიკროკონტროლერისა და სენსორული პანელის მიღმა ბევრი არაფერი დაგჭირდებათ.
-
მიკროკონტროლერი.
მე ვიყენებ ჩემს DP32– ს ჩამონტაჟებული პურის დაფით, რადგან პროტოტიპი წარმოუდგენლად მარტივია
-
მავთულის და კაბელების ასორტიმენტი.
შემეძლო გამომეყენებინა სენსორული პანელის ჩამონტაჟებული ლენტი კაბელი, მაგრამ თუ ის გაანადგურა, მაშინ მთელი პანელი უსარგებლოა. სამაგიეროდ, მე ვიყენებ 6 მავთულის კაბელს, რათა შემცირდეს სტრესი ჩაშენებულ კაბელზე
-
ტიტულიანი 5 მავთულის რეზისტენტული სენსორული პანელი!
მე მქონდა 4 მავთულის რეზისტენტული სენსორული პანელი, მაგრამ ლენტის კაბელი გატეხილი იყო
და ეს არის ის!
ნაბიჯი 2: რა არის 5 მავთულის რეზისტენტული სენსორული პანელი?
თუ წაიკითხეთ ჩემი 4 მავთულის სენსორული პანელის სახელმძღვანელო, გაეცანით რეზისტენტული შეხების სენსორის ზოგად იდეას, მაგრამ 5 მავთულის პანელები და 4 მავთულის პანელები ცოტა სხვანაირად მოქმედებენ.
მე მომწონს ეს პანელი, რადგან თქვენ ხედავთ ყველა მავთულის კვალს, რაც გაადვილებს იმის დანახვას, თუ რას რას აკეთებს. პირველ სურათზე მე თითოეულ კვალს სხვადასხვანაირად ვღებავ. თქვენ ალბათ ხედავთ, რომ ოთხი მავთული (ვარდისფერი, ყვითელი, ნარინჯისფერი და მეწამული) თითოეული ოთხივე კუთხიდან მიდის. შუა მავთული (წითელი) მიდის მოქნილი სენსორული პანელისკენ.
მეორე სურათზე, ჩვენ ოთხი მავთულიდან ორი (ზედა-მარჯვენა და ქვედა-მარჯვენა) დავაყენეთ მაღალ ძაბვაზე (ნაჩვენებია წითლად), ხოლო დანარჩენი ორი (ზედა-მარცხენა და ქვედა-მარცხნივ) დაბალია ძაბვა (ნაჩვენებია ლურჯში). ეს ქმნის ძაბვის გრადიენტს მთელ პანელზე. ამ შემთხვევაში, გრადიენტი მიდის X ღერძის გასწვრივ, ამიტომ უფრო მაღალი ძაბვა წარმოადგენს უფრო მაღალ პოზიციას X ღერძის გასწვრივ.
როდესაც თითს ვეხებით პანელს, ის ამცირებს მოქნილ სენსორს, რომელიც უკავშირდება სადმე X ღერძის გრადიენტის გასწვრივ. ჩვენს მიკროკონტროლერზე ძაბვის სენსორებს შეუძლიათ იგრძნონ ეს ძაბვა და გითხრათ, სად არის თქვენი თითი X- ღერძზე!
მესამე სურათზე თქვენ ხედავთ როგორ იცვლება კონფიგურაცია, რაც გვაძლევს საშუალებას ვიგრძნოთ Y ღერძი. ამრიგად, ჩვენ შეგვიძლია განვსაზღვროთ, თუ სად ეხება 2-D სივრცეში ჩვენი თითი!
ნაბიჯი 3: გაყვანილობა
როგორც თქვენ ალბათ ხედავთ ზემოთ მოცემულ სურათებში, მე ჩემი ოთხი კუთხე დავაკავშირე თითოეულ მათგანს საკუთარი ციფრული გამომავალი პინით. ეს საშუალებას მომცემს მათ ინდივიდუალურად დავაყენო მაღალი ან დაბალი. ჩემი სენსორის პინი უკავშირდება ანალოგიურ შეყვანის პინს. 5 მავთულის სენსორულ ეკრანზე, 4 მავთულისგან განსხვავებით, სასიამოვნოა ის, რომ თქვენ გჭირდებათ მხოლოდ ერთი ანალოგური პინი, ხოლო 4 მავთულისთვის საჭიროა 2.
რა თქმა უნდა, თქვენი გაყვანილობა შეიძლება განსხვავდებოდეს, მაგრამ ჩემი გაყვანილობა შემდეგია:
ანალოგი 0 (პინ 6) უკავშირდება სენსორს (შუა პინ)
ციფრული 3 აკავშირებს ზედა-მარჯვნივ (ყველაზე მეტად პინი)
ციფრული 2 აკავშირებს ზედა-მარცხნივ (მეორე ყველაზე პინი)
ციფრული 1 უკავშირდება ქვედა-მარცხნივ (მეორე ქვედა ყველაზე პინი)
ციფრული 0 უკავშირდება ქვედა-მარჯვნივ (ქვედა ყველაზე პინი)
კიდევ ერთხელ უნდა აღინიშნოს, რომ მე ვიყენებ 6 მავთულის კაბელს მიკროკონტროლერსა და პანელს შორის გასასვლელად. ამ კაბელის ზედა პინი დაუკავშირებელი დავტოვე.
ნაბიჯი 4: პროგრამული უზრუნველყოფის განვითარება
წარსულში, მე ჩვეულებრივ ჩამოვუშვებდი დასრულებულ პროგრამულ ფაილს, რომ გამოგეყენებინათ, შესაძლოა მოკლედ გავარკვიო, რას აკეთებს ყველაფერი. მე არ მომწონს ეს. მინდა, რომ ეს სერია იყოს განვითარებადი პროექტების შესახებ და ამ მიზნით მე ვაპირებ ჩავრთო ამ პროგრამული უზრუნველყოფის რეალური განვითარება თავიდან ბოლომდე.
როგორც ყოველთვის, მე ვიყენებ Arduino IDE– ს, Digilent ბირთვით. თითოეული განყოფილება შეიცავს კოდის ფაილს, ეკრანის სურათს, ასევე დამატებების აღწერას და რისი მიღწევასაც ვცდილობთ.
ახლავე, მე ვიწყებ მარტივი შეფერხების სტილის მოციმციმე პროგრამით, ზუსტად იგივე, რაც თქვენ იპოვით მაგალითების საქაღალდეში. თუ წაიკითხავთ ჩემს მიერ დაწერილ ხანგრძლივ სათაურს, დაინახავთ, რომ ყოველი ნაბიჯი ამ პროცესში შეცვლის პროგრამას, რათა ის მიუახლოვდეს ჩვენს საბოლოო მიზანს.
ნაბიჯი 5: სახელმწიფო აპარატის დახუჭვა
ჩემი პირველი ნაბიჯი არის მოციმციმე ფუნქციის შეცვლა ერთიდან, რომელიც დაფუძნებულია "დაგვიანებაზე ()" სახელმწიფო მანქანაზე.
მათთვის, ვინც არ არის გამოყენებული განცხადებების გადართვა, ის მუშაობს if- განცხადების მსგავსად. ეს (ნარინჯისფერ ყუთში) ამოწმებს ჩვენს "მდგომარეობის" ცვლადს (რომელიც იწყება 0 -დან). შემდეგ ის გადადის საქმეზე ჩვენი ამჟამინდელი მდგომარეობისთვის. თქვენ ნახავთ, რომ საქმე 0 და 2 პასუხისმგებელია LED- ის ჩართვასა და გამორთვაზე (შესაბამისად), ხოლო შემთხვევა 1 და 3 პასუხისმგებელია გადამრთველებს შორის ლოდინზე.
ნაბიჯი 6: დახუჭე ღილაკი
შემდეგი, მინდოდა ღილაკი გამოეყენებინათ შუქის მოციმციმე. იმის ნაცვლად, რომ ეს ზედმეტად გაართულოს, მე უბრალოდ გადავიტანე ყველა მდგომარეობა ერთით ქვემოთ (მდგომარეობა 0 ხდება მდგომარეობა 1 და ა.შ.). ამის გაკეთებისას ფრთხილად იყავით, რომ გაზარდოთ გასასვლელი მდგომარეობები, ისევე როგორც თავად მდგომარეობა (იხ. სურათი 3).
მე ასევე წავშალე მეორე "ლოდინის" მდგომარეობა. ეს ნიშნავს, რომ ღილაკი აანთებს შუქს ერთი წამით და შეგიძლიათ კვლავ დააჭიროთ ღილაკს მისი გამორთვის შემდეგ.
აღსანიშნავია, რომ ეს სისტემა ჩვენთვის ავტომატურად იშლება ღილაკზე, რადგან ჩვენ უნდა დაველოდოთ LED- ის გამორთვას 0 მდგომარეობამდე დაბრუნებამდე, სადაც ღილაკს შეუძლია კვლავ გამოიწვიოს ციკლი.
ნაბიჯი 7: სერიული კომუნიკაცია
ეს განახლება ძალიან მცირეა. სულ მინდოდა სერიული კავშირის დამყარება და შეტყობინებების გაგზავნა. პირველ სურათზე ხედავთ, რომ მე ვიწყებ სერიალს setup () ფუნქციაში. ჩვენი სახელმწიფო აპარატის შიგნით, მე დავამატე ხაზები 1 და 3 მდგომარეობებში, რომლებიც უგზავნიან მარტივ შეტყობინებებს კომპიუტერს სერიული საშუალებით.
ნაბიჯი 8: კოორდინატების კითხვა
კარგია, რომ ბოლო ნაბიჯი ადვილი იყო, რადგან ეს იყო დუზი.
დასაწყისისთვის, მე დავამატე ცვლადები ჩვენი სენსორული პანელისთვის, მათ შორის დროის გარკვეული ცვლადი, როგორც სენსორული პანელისთვის, ასევე ჩვენი ღილაკისთვის. ცოტა ხანში მიხვდებით რატომ.
მე სრულად გადავაწერე სახელმწიფო მანქანა. ცოტა დამაბნეველია კოდის დათვალიერება, ამიტომ მე ჩავრთე ბლოკ დიაგრამა, რომელიც უნდა წარმოაჩინოს რაც გაკეთდა.
რა უნდა აღინიშნოს: ახლა არის სამი "ლოდინის" ნაბიჯი. ერთი სენსორული პანელის თითოეული კონფიგურაციისთვის, რათა დაუშვას ძაბვები გაზომვის დაწყებამდე, და ერთი მისცეს ღილაკს დრო, რათა სწორად მოხდეს დენონსაცია. ეს ლოდინის საფეხურები აი რატომ მინდოდა მიმეცა ღილაკზე და სენსორულ პანელზე საკუთარი დროის ცვლადი.
შენიშვნა: DEBOUNCE_TIME მუდმივი შეიძლება იყოს ცოტა დაბალი. მოგერიდებათ გაზარდოთ იგი.
ნაბიჯი 9: დასუფთავება
ჩვენ მივაღწიეთ ამ პროექტის კოდის საბოლოო ვერსიას!
დასაწყისისთვის, მე დავამატე ფუნქცია სახელწოდებით loop_diff () გასული დროის გამოსათვლელად. შიდა საათი DP32– ისთვის არის ხელმოუწერელი გრძელი და, თუმცა ეს ძალზედ ნაკლებად სავარაუდოა, არსებობს შესაძლებლობა, რომ საათი ოდესმე ამ მარყუჟის დროს გამოჩნდეს*. ამ შემთხვევაში, უბრალოდ დროის გამოკლება btn_time ან panel_time შენახული დროდან მოგვცემს რაღაც უცნაურს, ამიტომ მე დავწერე loop_diff (), რომ გამოვსახოთ როდის მოხდება მარყუჟები და მოვიქცეთ შესაბამისად.
მე ასევე გავაკეთე მცირედი გაწმენდა. მე ამოვიღე ახლა გამოუყენებელი ცვლადი "state_time". მე გადავედი LED_BUILTIN ტეგიდან (რომელიც არის Arduino სტანდარტი) PIN_LED1 ტეგზე (რაც სტანდარტულია chipKit და DP32). მე ასევე ამოვიღე სერიალის საშუალებით ყველა შეტყობინება პროცესის დაწყებისა და დასრულების შესახებ, რაც სერიალში ჩვენს მონაცემებს გაცილებით სუფთა გახდის.
*მე მათემატიკა გავაკეთე წლების წინ და ვფიქრობ, რომ millis () ფუნქციისთვის დასჭირდება დაახლოებით ერთი კვირის მუდმივი მუშაობის ხანგრძლივობა, სანამ ცვლადი მარყუჟდება.
ნაბიჯი 10: საბოლოო აზრები
და ეს არის ის!
თუ თქვენ მიჰყევით, თქვენ უნდა გქონდეთ სამუშაო სენსორული პანელი თქვენს მიკროკონტროლერთან დაკავშირებული! ეს იყო პატარა პროექტი, მაგრამ ის უფრო დიდი პროექტის ნაწილია. მე ვმუშაობ დაახლოებით 271828 წლის ფირფიტისა და ბურთის მიმართულებით და მე დიდი გზა მაქვს გასავლელი, სანამ ეს მოხდება. მე შევეცდები მთელი პროცესი გაგიწიოთ და თითოეული ნაწილი უნდა იყოს თავისი პატარა პროექტი.
ეს ჩემთვის სასწავლო პროცესია, ასე რომ მოგერიდებათ დატოვოთ თქვენი აზრები და წინადადებები ქვემოთ მოცემულ კომენტარებში.
მადლობა, და შემდეგ ჯერზე შევხვდებით!
გირჩევთ:
მარტივი, იაფი და საიმედო შეხების სენსორი მხოლოდ 3 ნაწილით: 3 ნაბიჯი
მარტივი, იაფი და საიმედო შეხების სენსორი მხოლოდ 3 ნაწილით: ყველა სახის ელექტრონული მოწყობილობის კონტროლი თითის შეხებით შეიძლება საკმაოდ სასარგებლო იყოს. ამ გაკვეთილზე მე გაჩვენებთ, თუ როგორ უნდა ავაშენოთ მარტივი, მაგრამ მძლავრი შეხების სენსორი, რომელიც მუშაობს უზადოდ. ყველაფერი რაც თქვენ გჭირდებათ არის სტანდარტული ტრანზისტორი და ორი
როგორ განვახორციელოთ შეხების სენსორი: 7 ნაბიჯი
როგორ განვახორციელოთ შეხების სენსორი: გამარჯობა მეგობარო, დღეს ვაპირებ გავაკეთო მარტივი შეხების სენსორი BC547 ტრანზისტორის გამოყენებით. როდესაც ჩვენ შევეხებით მავთულს მაშინ LED აანთებს და რადგან ჩვენ არ შევეხებით მავთულს მაშინ LED არ იქნება კაშკაშა. Დავიწყოთ
სამი შეხების სენსორული წრე + შეხების ტაიმერის წრე: 4 ნაბიჯი
სამი შეხების სენსორული წრე + შეხების ტაიმერის წრე: შეხების სენსორი არის წრე, რომელიც ჩართულია როდესაც ის შეხებას ამოიცნობს სენსორულ ქინძისთავებზე. ის მუშაობს გარდამავალ საფუძველზე, ანუ დატვირთვა ჩართული იქნება მხოლოდ იმ დროს, როდესაც შეხება ხდება ქინძისთავებზე. აქ, მე გაჩვენებთ სამ განსხვავებულ გზას შეხების სენის გასაკეთებლად
უკაბელო განათებული რეზისტენტული შეხების ღილაკი: 5 ნაბიჯი
უკაბელო განათებული რეზისტენტული შეხების ღილაკი: ეს არის მარტივი პროექტი, რომლის მიზანია შექმნას რეზისტენტული შეხების ღილაკი, რომელიც აერთიანებს RGB Led- ს. როდესაც ამ ღილაკს შეეხებით, ის განათდება და ნათურის ფერი შეიძლება მორგებული იყოს. ის შეიძლება გამოყენებულ იქნას როგორც პორტატული განათებული შეხების ღილაკი
შეხების სენსორი და ხმის სენსორი აკონტროლებს AC/DC განათებებს: 5 ნაბიჯი
შეხების სენსორი და ხმის სენსორი AC/DC განათების კონტროლი: ეს არის ჩემი პირველი პროექტი და ის მუშაობს ორ ძირითად სენსორზე დაყრდნობით, ერთი არის სენსორი და მეორე არის ხმის სენსორი, როდესაც შეხების სენსორზე სენსორულ ღილაკს დააჭერთ AC სინათლე იცვლება ჩართული, თუ მას გაუშვებთ, შუქი გამორთული იქნება და იგივე