Სარჩევი:
- ნაბიჯი 1: რა არის ეს Watchdog ტაიმერი?
- ნაბიჯი 2: როგორ გავააქტიუროთ Watchdog Timer?
- ნაბიჯი 3: შეინარჩუნეთ თქვენი პროგრამა გაშვებული
- ნაბიჯი 4: გამოყენების მაგალითი
- ნაბიჯი 5: Watchdog ტაიმერის საკითხები
- ნაბიჯი 6: ისიამოვნეთ
ვიდეო: Arduino Hang Guardian - Arduino Watchdog Timer Tutorial: 6 Steps
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:17
Გამარჯობა ყველას, ეს ყველა ჩვენგანს ემართება. თქვენ ააშენებთ პროექტს, ენთუზიაზმით აკავშირებთ ყველა სენსორს და მოულოდნელად, Arduino ჩამოკიდება და არანაირი შეყვანა არ დამუშავდება.
"რა ხდება?", თქვენ ჰკითხავთ და იწყებთ თხრას თქვენს კოდში, მხოლოდ იმის გასაგებად, რომ თქვენ დავრჩით უსასრულო მარყუჟში. მადლობა ღმერთს, არდუინო თქვენს სკამზე იყო და არა შორეულ ადგილას.
დღეს ჩვენ განვიხილავთ, თუ როგორ შეგვიძლია გამოვიყენოთ Arduino– ს სათვალთვალო ტაიმერი ამის თავიდან ასაცილებლად.
ნაბიჯი 1: რა არის ეს Watchdog ტაიმერი?
Arduino საგუშაგო ქრონომეტრი როგორც სახელი გულისხმობს არის ტაიმერი, რომელიც მუშაობს ცალკე დაფაზე არსებული ძირითადი პროცესორისგან. ეს ქრონომეტრი შეიძლება გამოყენებულ იქნას დაფის მდგომარეობის პერიოდული შესამოწმებლად და ისეთ სიტუაციებში, როდესაც დაფა პროგრამულ მარყუჟში ჩერდება ან ტექნიკის გაუმართაობის გამო ჩერდება, დარაჯ ტაიმერს შეუძლია Arduino- ს გადატვირთვა და მისი თავიდან დაწყება.
ნაგულისხმევად, როდესაც არ იყენებთ, ეს ტაიმერი გამორთულია ყველა პროექტზე და მხოლოდ მაშინ, როდესაც ჩვენ მას ჩართავთ, ჩვენ უნდა დავრწმუნდეთ, რომ პერიოდულად უნდა ვუთხრათ, რომ არ გადატვირთოს ჩვენი დაფა, თუ ის კვლავ მუშაობს როგორც მოსალოდნელი იყო.
იმისათვის, რომ შევძლოთ გუშაგის ტაიმერის გამოყენება, ჩვენ ჯერ უნდა ჩავრთოთ avr/wdt.h ფაილი არდუინოს ესკიზში. ეს არის სტანდარტული ბიბლიოთეკა, რომელიც ატარებს მეთვალყურეობის მოქმედებებს.
ნაბიჯი 2: როგორ გავააქტიუროთ Watchdog Timer?
ტაიმერის გასააქტიურებლად ჩვენ ვიყენებთ ფუნქციას "wdt_enable", სადაც უნდა გავიაროთ ბარიერის ინტერვალში, რომლის დროსაც დაფა გადატვირთულია. ჩვენი გამოყენების შემთხვევიდან გამომდინარე, ეს შეიძლება იყოს 15 მილიწამიდან 8 წმ-მდე წინასწარ განსაზღვრულ პარამეტრებში, რომლებიც დაცულია ბიბლიოთეკის ბიბლიოთეკაში.
THRESHOLD - მუდმივი სახელი
15 ms WDTO_15MS 30 ms WDTO_30MS 60 ms WDTO_60MS 120 ms WDTO_120MS 250 ms WDTO_250MS 500 ms WDTO_500MS 1s WDTO_1S 2s WDTO_2S 4s WDTO_4S 8s WDTO_8S
ნაბიჯი 3: შეინარჩუნეთ თქვენი პროგრამა გაშვებული
ახლა, ტაიმერის ჩართვით, რათა თავიდან ავიცილოთ ჩვენი Arduino– ს გადატვირთვა, ჩვენ პერიოდულად უნდა გამოვიძახოთ “wdt_reset” ფუნქცია, რათა გადატვირთოთ watchdog ტაიმერი ბარიერის ინტერვალის ამოწურვამდე.
გადატვირთვის ინტერვალის არჩევისას, მნიშვნელოვანია გავითვალისწინოთ ნებისმიერი ხანგრძლივი ოპერაცია, როგორიცაა მონაცემების წაკითხვა ან გაგზავნა ან გარე სენსორებთან დაკავშირება. გადატვირთვის ბარიერი უნდა იყოს მინიმუმ ერთნახევარჯერ მეტი ვიდრე ეს დრო შემთხვევითი გადატვირთვის თავიდან ასაცილებლად.
ნაბიჯი 4: გამოყენების მაგალითი
მაგალითის პროგრამაში, რომელიც შეგიძლიათ გადმოწეროთ აქ, ჩვენ პირველად დავაყენეთ watchdog ტაიმერი გადატვირთვის ინტერვალით 4 წამი. შემდეგ რომ იცოდეთ, რომ ჩვენ ვართ კონფიგურაციის ფუნქციაში, ჩვენ ვანთებთ LED- ს 3 ჯერ სწრაფად, შემდეგ კი მთავარ მარყუჟში ჩვენ ვტვირთავთ ტაიმერს, ვანთებთ LED პროგრესულად უფრო გრძელი ინტერვალებით და შემდეგ ვთიშავთ მას. მომდევნო მარყუჟი აღადგენს ტაიმერს, სანამ განათების დრო არ აღემატება 4 წამს.
როდესაც ეს მოხდება, გუშაგის ქრონომეტრი აღადგენს დაფას და კონფიგურაცია ხელახლა შესრულდება.
ნაბიჯი 5: Watchdog ტაიმერის საკითხები
თქვენი Arduino- ს ჩამტვირთავი მოწყობილობიდან გამომდინარე, ერთი შესაძლო პრობლემა არის ის, რომ თუ watchdog ტაიმერის ღირებულება ძალიან დაბალია და ჩამტვირთველი არ აღადგენს ტაიმერს ახალი კოდის ატვირთვისას, თქვენ შეიძლება საბოლოოდ დააზიანოთ თქვენი Arduino დაფა ისე, რომ ის ყოველთვის ჩერდება ჩატვირთვის ფაზაში. ჩამტვირთავი შეეცდება დაწყებას, მაგრამ ტაიმერი გააგრძელებს დაფის გადატვირთვას, არასოდეს მისცემს საშუალებას სწორად დაიწყოს. მსგავსი საკითხების თავიდან ასაცილებლად, დარწმუნდით, რომ ყოველთვის გამოიყენეთ ბარიერის ინტერვალი 2 წამი ან მეტი.
ნაბიჯი 6: ისიამოვნეთ
თუ თქვენ გაქვთ მაგალითი იმისა, თუ სად გამოიყენე გუშაგის ტაიმერი რეალურ პროექტში, შემატყობინე კომენტარებში, დარწმუნდი რომ მოგეწონება ვიდეო და არ დაგავიწყდეს გამოწერა.
გაიხარე და მადლობა კითხვის/ყურებისათვის!
გირჩევთ:
Node Mcu Indian Car Central Lock With Rfid and Blynk Timer Unlock: 9 Steps
Node Mcu Indian Car Central Lock With Rfid and Blynk Timer Unlock: მე დღეს გაჩვენებთ ინდური სტილის ავტომობილს სრულად ავტომატიზირებული ცენტრალური საკეტი rfid tag blynk wifi კონტროლით და დროის განბლოკვით. მას ასევე აქვს ნორმალური ცენტრალური საკეტის ყველა მახასიათებელი. ეს მანქანა ცენტრალური საკეტი მუშაობს ოფლაინ აქტივაცია მოითხოვს ქსელის საკეტებს
Raspberry Pi - ADXL345 3 -Axis Accelerometer Python Tutorial: 4 Steps
Raspberry Pi-ADXL345 3 ღერძიანი ამაჩქარებელი პითონის სახელმძღვანელო: ADXL345 არის პატარა, თხელი, ულტრა დაბალი სიმძლავრის, 3 ღერძიანი ამაჩქარებელი მაღალი გარჩევადობის (13 ბიტიანი) გაზომვით ± 16 გ-მდე. ციფრული გამომავალი მონაცემები ფორმატირებულია, როგორც 16 ბიტიანი ორეული და არის ხელმისაწვდომი I2 C ციფრული ინტერფეისის საშუალებით. ზომავს
Steampunked Dream Guardian Night Light: 9 ნაბიჯი (სურათებით)
Steampunked Dream Guardian Night Light: გამარჯობა ყველას ჩემმა ახლო მეგობარმა მთხოვა, შეყვარებულისთვის ნიშნობის საჩუქარი შემექმნა (რა თქმა უნდა, ბეჭდის გარდა!) რამდენიმე კვირის წინ. ორივე მათგანი ჩემნაირია, მოხალისე მეხანძრეები და მათ უყვართ Steampunk Objects. ჩემმა მეგობარმა მოიფიქრა ქ
ადვილი გასაკეთებელი MIDI Hang Drum: 4 ნაბიჯი
MIDI Hang Drum ადვილი გასაკეთებლად: ჩამოკიდებული ბარაბანი, რომელსაც ასევე უწოდებენ ხელჩანთას, სატანკო ბარაბანს ან ფოლადის ენის ბარაბანს, არის ინსტრუმენტი, რომელიც მზადდება პროპანის ავზისგან (რა თქმა უნდა ცარიელია), ლითონში დაჭრილი რამდენიმე ენით. შენიშვნების სიმაღლე დამოკიდებულია ენების ზომასა და წონაზე. ეს პრო
Pi Guardian: 6 ნაბიჯი (სურათებით)
Pi Guardian: გსურდათ ოდესმე იმ ადამიანის დაჭერა, ვინც იპარავს თქვენს ჰელოუინის კანფეტს? ან რა შეიძლება ითქვას იმ გამაღიზიანებელ თანამემამულეზე, რომელიც არ დატოვებს თქვენს მაცივარს მარტო? Raspberry Pi 3, Pi კამერის და PIR სენსორის გამოყენებით, ეს ყველაფერი უკვე შესაძლებელია. მარტივი