AVR_timer

ამოცანა:

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

ჩართული და გამორთული მდგომარეობების ხანგრძლიობა უნდა რეგულირდებოდეს 1 დან 999 წამამდე ღილაკების საშუალებით. ძაბვის გათიშვის შემთხვევაში წინათ დაყენებული მონაცემები უნდა შეინახოს მეხსიერებაში.

ავირჩიოთ მიკროკონტროლერი ATtiny2313.

ინდიკაციისათვის ოთხციფრიანი შვიდსეგმენტიანი ნდიკატორი.

პრინციპული სქემა:

 

 

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

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

 

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

 

პირველ ღილაკზე ერთჯერ დაჭერისას კონტროლერი უნდა გადავიდეს დაყენების რეჟიმში. მარცხენა თანრიგში გამოჩნდეს სიმბოლო "E." და აინთოს მძიმე ( ეს იქნება ჩართული მდგომარეობის დაყენების რეჟიმის ინდიკაცია). დანარჩენ სამ თანრიგში გამოჩნდეს წყნათ დამახსოვრებული რიცხვი. მეორე "+" და მესამე "-" ღილაკით მოხდეს მომატება ან დაკლება. თუ რიცხვი გადაცდა 999-ს, მაშინ ათვლა დაიწყოს 1-იდან და თუ დაკლებისას ჩაცდა 1-ს გადახტეს 999-ხე.

 

პირველ ღილაკზე მეორედ დაჭერისას გადავიდეთ პაუზის დაყენების რეჟიმში. "P."

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

პროგრამული უზრუნველყოფა.

მე ვიყენებ ორ პროგრამულ პაკეტს. ესენია