არდუინოს დაპროგრამება 02 – შუქდიოდის ჩართვა, შუქნიშანი


ამ ჩანაწერში ვისწავლით შუქდიოდებისგან შუქნიშნის აწყობა და ცვლადების გამოყენებას .

პროექტის შესრულებისთვის დაგვჭირდება:

  1. არდუინოს რომელიმე დაფა (მე ვიყენებ Nano-ს) + USB სადენი
  2. სამაკეტო დაფა (breadboard)
  3. შუქდიოდები 3ც:  წითელი, ყვითელი და მწვანე
  4. 200-ომიანი რეზისტორები 3ც. (რატომ? – დენის შეზღუდვისთვის )
  5. სხვადასხვა სიგრძის მავთულები
საჭირო ნაწილები
საჭირო ნაწილები

შუქნიშნის აწყობა

თითოეული შუქის მოსამზადებლად ვიყენებთ ერთ შუქდიოდს, რეზისტორს და მავთულთა წყვილს მამალ-დედალი შესაერთებლებით. შუქდიოდებს მოვაჭრით ფეხების ზედმეტ სიგრძეს და შევარჭობთ დედალ შესაერთებელში. ანოდის (+) მავთული უერთდება არდუინოს ციფრულ ფეხებს. ამ პროექტში ჩვენ ავირჩიეთ შემდეგი შეერთება:

  1. მწვანე – D4
  2. წითელი – D3
  3. ყვითელი – D2

კათოდიანი (-) მავთულის მეორე მხარე უერთდება რეზისტორს, ის კი მიწას (ground, GND). როცა დიოდზე მივაწვდით +5ვ მუდმივ ძაბვას (+5 Vdc), ის აინთება (შუქდიოდის ჩართვის შესახებ წაიკითხეთ აქ).

შუქდიოდის მომზადება
შუქდიოდის მომზადება

იგივეს ვიმეორებთ დანარჩენი შუქდიოდებისათვის. საბოლოოდ მივიღებთ ასეთ სურათს:

შეერთების სურათი
შეერთების სურათი

“შუქნიშანი” ჩანახატის გარჩევა

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

arduino_ka_traffic_code
ჩანახატი “შუქნიშანი”

როგორ მუშაობს “შუქნიშანი”?

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

/*
=== შუქნიშანი ===
სამი შუქდიოდი: მწვანე, ყვითელი და წითელი,
აინთება სხვადასხვა ხნით, მიბაძავს შუქნიშანს:
მწვანე -> ყვითელი ციმციმებს -> წითელი -> მწვანე და ა..შ
მოცმეული კოდი წარმოადგენს საყოველთაო საკუთრებას.
*/
// მწვანე, წითელი და ყვითელი შუქდიოდები შეერთებულია
// არდუინოს ციფრულ ფეხებზე D4, D3 და D2 შესაბამისად:
int led_green = 4;
int led_red = 3;
int led_yellow = 2;
int time_green = 4000;
int time_red = 3000;
int time_yellow = 500;
// ფუნქცია "setup" შესრულდება მხოლოდ ერთხელ: ჩართვისას, ან "reset" ღილაკის დაჭერისას:
void setup() {
// გადავრთოთ ციფრული ფეხი გამავალ რეჟიმზე "output".
pinMode(led_red, OUTPUT);
pinMode(led_green, OUTPUT);
pinMode(led_yellow, OUTPUT);
}
// ფუნქცია "loop" ციკლურად შესრულდება ისევ და ისევ, სანამ არ შევწყვეტთ კვებას:
void loop() {
digitalWrite(led_green, HIGH); //ავანთოთ მწვანე
delay(time_green); // დაველოდოთ
digitalWrite(led_green, LOW); //გამოვრთოთ მწვანე
digitalWrite(led_yellow, HIGH); // გამაფრთხილებელი ყვითელი, პირველი ციმციმი
delay(time_yellow);
digitalWrite(led_yellow, LOW);
delay(time_yellow);
digitalWrite(led_yellow, HIGH); // გამაფრთხილებელი ყვითელი, მეორე ციმციმი
delay(time_yellow);
digitalWrite(led_yellow, LOW);
delay(time_yellow);
digitalWrite(led_yellow, HIGH); // გამაფრთხილებელი ყვითელი, მესამე ციმციმი
delay(time_yellow);
digitalWrite(led_yellow, LOW);
delay(time_yellow);
digitalWrite(led_red, HIGH); //ავანთოთ წითელი
delay(time_red);
digitalWrite(led_red, LOW); // დაველოდოთ და ჩავაქროთ წითელი
}

view raw
traffic_light_ka.ino
hosted with ❤ by GitHub

ჩანახატის მიმდინარე ნაბიჯები:

  1. ავანთოთ მწვანე რაღაც დროით, მერე ჩავაქროთ
  2. ვაციმციმოთ ყვითელი
  3. ავანთოთ წითელი რაღაც დროით, მერე ჩავაქროთ
  4. გავიმეოროთ

ამ პროექტში ძალიან მცირე ცვლილებებია შეტანილი წინასთან შედარებით:

  1. დამატებულია ორი ცალი სხვადასხვა ფერის დიოდი (ამის გამო გაიზარდა კოდიც)
  2. გამოყენებულია ცვლადები (თუ რა არის ცვლადი, მოგვიანებით ავხსნი)

საკმაოდ რთულია ყოველთვის გვახსოვდეს რომელი დიოდი რომელ ფეხზეა შეერთებული, (მწვანე 4, წითელი 3, ყვითელი 2), განსაკუთრებით როცა მოწყობილობა რთულდება და გაქვს სხვადასხვა სენსორები, ძრავები და ა.შ. ეს არამარტო რთულია, არამედ ზრდის შედცომების დაშვების ალბათობას.

ამიტომ (და ბევრი სხვა მიზეზის გამო) ვიყენებთ ეგრეთწოდებულ “ცვლადებს”. წაიკითხე: რა არის ცვლადი?

მაგალითად: ცვლადში led_red ვინახავთ მთელ რიცხცს 2, რომელიც ჩვენ შემთვევაში შეესაბამება წითელ დიოდზე შეერთებულ ფეხს. იგივენაირად, time_green ცვლადში ვინახავთ მთელ რიცხვს 4000, რომელიც არის დრო მილიწამებში, რომლის განმავლობაში გვინდა რომ მწვანე დიოდი იყოს ანთებული(და ჩამქვრალი).

ერთი ნაბიჯით წინ

როგორც ხედავთ, ჩანახატში გვაქვს ბევრი ერთნაირი კოდი. ბევრჯერ გამეორებულია ერთი და იგივე კოდი: აიღე ფეხი, ააანთე ცოტა ხნით, ჩააქრე ცოტა ხნით. ასეთ შემთხვევაში ხშირად გამოიყენება ე.წ. “ფუნქციები” (function).

ფუნქცია გვაძლევს საშუალებას დავწეროთ ბრძანებათა გარკვეული მიმდევრობა ერთხელ და გამოვიყენოთ ბევრჯერ – სადაც და როგორც გვინდა.

დამატებითი ინფორმაცია აქ:

მომავალში იმედია უფრო დაწვრილებით შემეძლება ახსნა.

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