Სარჩევი:

Arduino Hang Guardian - Arduino Watchdog Timer Tutorial: 6 Steps
Arduino Hang Guardian - Arduino Watchdog Timer Tutorial: 6 Steps

ვიდეო: Arduino Hang Guardian - Arduino Watchdog Timer Tutorial: 6 Steps

ვიდეო: Arduino Hang Guardian - Arduino Watchdog Timer Tutorial: 6 Steps
ვიდეო: The Arduino hang guardian - Arduino watchdog timer tutorial 2024, ნოემბერი
Anonim
Image
Image

Გამარჯობა ყველას, ეს ყველა ჩვენგანს ემართება. თქვენ ააშენებთ პროექტს, ენთუზიაზმით აკავშირებთ ყველა სენსორს და მოულოდნელად, Arduino ჩამოკიდება და არანაირი შეყვანა არ დამუშავდება.

"რა ხდება?", თქვენ ჰკითხავთ და იწყებთ თხრას თქვენს კოდში, მხოლოდ იმის გასაგებად, რომ თქვენ დავრჩით უსასრულო მარყუჟში. მადლობა ღმერთს, არდუინო თქვენს სკამზე იყო და არა შორეულ ადგილას.

დღეს ჩვენ განვიხილავთ, თუ როგორ შეგვიძლია გამოვიყენოთ Arduino– ს სათვალთვალო ტაიმერი ამის თავიდან ასაცილებლად.

ნაბიჯი 1: რა არის ეს Watchdog ტაიმერი?

როგორ გავააქტიუროთ Watchdog Timer?
როგორ გავააქტიუროთ Watchdog Timer?

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

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

იმისათვის, რომ შევძლოთ გუშაგის ტაიმერის გამოყენება, ჩვენ ჯერ უნდა ჩავრთოთ avr/wdt.h ფაილი არდუინოს ესკიზში. ეს არის სტანდარტული ბიბლიოთეკა, რომელიც ატარებს მეთვალყურეობის მოქმედებებს.

ნაბიჯი 2: როგორ გავააქტიუროთ Watchdog Timer?

როგორ გავააქტიუროთ Watchdog Timer?
როგორ გავააქტიუროთ Watchdog Timer?
როგორ გავააქტიუროთ Watchdog Timer?
როგორ გავააქტიუროთ 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: ისიამოვნეთ

მიირთვით
მიირთვით

თუ თქვენ გაქვთ მაგალითი იმისა, თუ სად გამოიყენე გუშაგის ტაიმერი რეალურ პროექტში, შემატყობინე კომენტარებში, დარწმუნდი რომ მოგეწონება ვიდეო და არ დაგავიწყდეს გამოწერა.

გაიხარე და მადლობა კითხვის/ყურებისათვის!

გირჩევთ: