პროექტი №6 – ინტერაქტიული ”მორბენალი” ნათება

ამ გაკვეთილისათვის მე-5 პროექტს დავამატებთ პოტენციომეტრს და სინათლის ”სრიალის” სიჩქარეს შევცვლით პროგრამის შესრულების დროს.

მე-5 პროექტზე დასამატებლად დაგვჭირდება :

4,7KΩ ან ცოტათი მეტი წინაღობის პოტენციომეტრი (მაგ. 5,1)

 

სქემის აწყობა

სურ. 3-2. მე-6 პროექტის სქემა.

 გამოვრთოთ არდუინოდა მე-5 პროექტის სქემას დავამატოთ პოტენციომეტრი. რომლის ერთი კიდურა გამომყვანი მიერთებულია  არდუინოს +5ვოლტიან კონტაქტზე, მეორე კიდურა გამომყვანი მიერთებულია ”მიწაზე”, ხოლო შუა გამომყვანი ანუ ცოცია – კი არდუინოს №2 ანალოგურ კონტაქტზე.

პროგრამული კოდი

მე-5 პროქტის პროგრამულ კოდში შევიტანოთ მცირედი დამატება. ეს ცვლილებები მოყვანილია შესაბამისი კომენტარებით. (მეტი თვალსაჩინოებისთვის მე-5 პროექტის კომენტარები ამოღებულია.)

byte ledPin[] = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13};
int ledDelay;
int direction = 1;
int currentLED = 0;
unsigned long changeTime;
int potPin = 2; // პონტენციომეტრისთვის შემავალი კონტაქტის დანიშვნა

void setup() {
  for (int x=0; x<10; x++) { 
      pinMode(ledPin[x], OUTPUT); 
  }
  changeTime = millis();
}

void loop() {
 ledDelay = analogRead(potPin); // პოტენციომეტრის მნიშვნელობის წაკითხვა
 if ((millis() - changeTime) > ledDelay) {
    changeLED(); changeTime = millis();
 }
}
void changeLED() {
  for (int x=0; x<10; x++) { 
      digitalWrite(ledPin[x], LOW);
  }
  digitalWrite(ledPin[currentLED], HIGH);
  currentLED += direction;
  if (currentLED == 9) {
     direction = -1;
  }
  if (currentLED == 0) {
     direction = 1;
  }
}

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

კოდის განხილვა

 რადგან კოდის ძირითადი ნაწილი გადმოტანილია მე-5 პროექტიდან, ამიტომ განვიხილოთ მხოლოდ ახლად დამატებული სტრიქონები.

int potPin = 2; ამ სტრიქონს განსაკუთრებული ახსნა არ უნდა, პოტერციომეტრი მიერთებულია №2 ანალოგურ კონტაქტთან. ledDelay = analogRead(potPin); // პოტენციომეტრის მნიშვნელობის წაკითხვა ამ სტრიქონის საშუალებით ვკითხულობთ ანუ ვღებულობთწინაღობის მნიშვნელობებს №2 კონტაქტიდან analogRead ბრძანების გამოყენებით. არდუინოს აქვს ექვსი (დამოკიდებულია არდუინოს მოდელზე) ანალოგური შემავალ/გამომავალი კონტაქტი ანალოგურიდან ციფრულში 10ბიტიანი გადამყვანით(analog to digital convertor). რაც ნიშნავს, რომ ანალოგურ კონტაქტს შეუძლია წაიკითხოს შემავალი 0-დან 5 ვოლტამდე ძაბვა როგორც integer ტიპის მნიშვნელობები 0დან(ანუ 0 ვოლტიდან) 1023მდე(ანუ 5 ვოლტამდე). რაც გვაძლევს შემდეგ გარჩევისუნარობას: 5ვოლტი / 1024 ერთეულზე (რადგან 0-იც შედის სათვალავში)ანუ 0,0049 ვოლტი (4,9მილივოლტი)ერთ ერთეულზე. (5/1024=0,00488281250.0049 პრაქტიკული თვალსაზრისით თამამად შეგვიძლია ვთქვათ = 0,0049) პოტენციომეტრიდან მიღებული ანუ წაკითხული მნიშვნელობები პირდაპირ მიენიჭება ledDelay ცვლადს და საბოლოოდ ვღებულობთ დაყოვნებას 0-დან 1023 მილიწამამდე. ledDelay = analogRead(potPin); ციფრული კონტაქტებისაგან განსხვავებით, ანალოგურ კონტაქს არ ჭირდება წინასწარ გასაზღრვრა შემავალია ის თუ გამომავალი. ledDelay = analogRead(potPin); რადგან, ამ სტრიქონს მუდმივად აკონტროლებს მთავარი ციკლი void loop(), ჩვენ მხოლოდ ისღა დაგვრჩენია ვატრიალოთ პოტენციომეტრის სახელური.

პოტენციომეტრის მიკლე აღწერა

 განვიხილოთ პოტენციომეტრი. მაგ. 4K7 (4700Ω) რომელიც გამოყენებულია ჩვენ პროექტში.   ჩვენ უკვე ვიცით თუ რა არის რეზისტორი. პოტენციომეტრი კი უბრალოდ არის რეგულირებადი ანუ ცვლადი რეზისტორი 0-დან მის მაქსიმალურ მნიშვნელობამდე, რომლიც ქარხნული წესით დატანილი რეზისტორის კორპუსზე. ჩვენ შემთხვევაში რეზისტორის კორპუსზე ნახავთ წარწერას 4K7 ან 4700Ω, რაც ნიშნავს 04700ომი დიაპაზონს . პოტენციომეტრს აქვს სამი კონტაქტი. რომელიმე კიდურა და შუა კონტაქტის (ცოცია) გამოყენებით ვღებულოთ ცვლად რეზისტორს, ხოლო სამივე კონტაქტის ჩართვით კი ძაბვის დამყოფს.

One Response to პროექტი №6 – ინტერაქტიული ”მორბენალი” ნათება

  1. scienceasm says:

    წიგნის თარგმანი ქვეყნდება forum.ge – ზე Hinkalino-ს მიერ.
    დამატებითი შეკითხვები თემაში
    ==========================================
    “Arduino ს ინტერფეისი”
    ==========================================
    http://forum.ge/?f=48&showtopic=34393677

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: