პროექტი №1 მოციმციმე შუქდიოდი (LED Flasher)

მაშ ასე, ვიწყებთ სხვადასხვა პროექტების შესწავლას. პირველ ოთხ პროექტში განხილულია შუქ დიოდების გამოყენების ვარიანტები. შევისწავლით არდუინოს გამომავალ და შემავალ სიგნალებს. შევისწავლით შესაბამის ბრძანებებს. ელექტრონიკის მხრივ კი განვიხილავთ შუქ დიოდს(LED), ღილაკს(button), და წინაღობას(resistor). აგრეთვე პლუს-წინაღობას (pull up) და ნულ-წინაღობას(pull down) (თარგმანი ჩემია, ზუსტი თარგმანი არ ვიცი, თუ ვინმეს უკეთესი ვარიანტი გაქვთ გთხოვთ გამოაქვეყნოთ ფორუმზე), რომელთა დანიშნულებაა სქემაში, წრედში შემავალი სიგნალის(ინფორმაციის) ცალსახად, მართებულად, ფლუქტუაციის გარეშე მიღება, გნებავთ ”წაკითხვა”.

პროექტი  №1 – მოციმციმე შუქდიოდი (LED Flasher)

ამ პროექტში გამეორებულია იგივე ეფექტი რაც იყო მოცემული შესავალ ნაწილში არდუინოს შემოწმების დროს. მაგრამ იმ განსხვავებით, რომ არდუინოზე დამონტაჟებული №13 შუქდიოდის ნაცვლად გამოყენებულია არდუინოს ერთ-ერთი ციფრულ კონტაქტზე მიერთებული გარეთა შუქდიოდი.გავეცნობით სამოტაჟო დაფაზე სქემის აწყობას, ელექტრონიკის და კოდირების ანუ პროგრამირების(C-ს ვარიანტი) საწყისებს.

ამ გაკვეთილისთვის დაგჭირდება შემდეგი: (იხ. აგრეთვე დამატებითი ინფორმაცია გაკვეთილის ბოლოს)

სამონტაჟო-სამაკეტო დაფა:

შუქდიოდი 5მმ დიამეტრი.

წინაღობა*100Ω r.

სამონტაჟო მავთულები.

*წინაღობის ზუსტი მნიშვნელობა დამოკიდებულია გამოყენებულ შუქდიოდზე, ახსნა მოყვანილია ქვემოთ.

განხილული პროექტების უმრავლესობისათვის გამოყენებულია 840 ნახვრეტიანი სამონტაჟო-სამაკეტო დაფა(სურ.2-6.), ზომით 16,5×5,5 სმ. ამ დაფას გვერდებზე აქვს ბუდეები და ნაწიბურები, რომლებიც გამოიყენება რამდენიმე დაფის ერთმანეთზე შესაერთებლად, ხოლო დაფას ქვემოდან მიმაგრებული აქვს წებოვანი ლენტი, რაიმე ზედაპირზე მისამაგრებლად. სამონტაჟო დაფა ასევე შეგიძლიათ გამოიყენოთ სხვა სქემების აწყობა-მოდელირებისათვის. შუქდიოდი სასურველია იყოს პატარა, 5მმ დიამეტრის(რადგან არ მოიხმარს დიდ დენს) ნებისმიერი ფერის. აუცილებლად დაგჭირდებათ გამოყენებული შუქდიოდის შემდეგი მახასიათებლები ”პირდაპირი დენი” და ”ძაბვის ვარდნა”, რომელთა საშუალებით გამოითვლება(მოცემულია ქვემოთ) დენის შემზღუდავი, ”ბალასტური” წინაღობის სიდიდე. (ნებისმიერი ელექტრო დეტალის მახასიათებლების(datasheet) მოძიება შეიძლება ინტერნეტში). სამონტაჟო მავთულებად შეგიძლიათ გამოიყენოთ სხვადასხვა სიგრძის უკვე გამზადებული ფერადი გამტარები სპეციალური ბოლოებით(სურ.2-7) ან მის გარეშე(სურ.2-9). ხოლო ყველაზე იაფი და მარტივი გამოსავალია შეიძინოთ ორი-სამი ფერის 22awg (ცხრილი.2-2) სამონტაჟო მავთულის(სურ.2-8) გორგალი, გადაჭრათ საჭირო ზომაზე და მოაცილოთ იზოლაცია 6მმ-ზე, სპეციალური ინსტრუმენტით (სურ.2-10 და 2-11).

საჭირო ინსტრუმენტების ოპტიმალური ნაკრები შეგიძლიათ იხილოთ ამ საიტზე: http://www.ladyada.net/library/equipt/kits.html#basic

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

პირველ რიგში გამორთეთ არდუინოდან USB კაბელი და სანამ არ იქნება სპეციალურად მითითებული არ ჩართოთ! შემდგომში USB კაბელის ან დამტებითი კვების წყაროს მიერთებამდე ყურადღებით შეამოწმეთ ყველა შეერთების სიწორე!

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

შეამოწმეთ, რომ შუქდიოდის ანოდი, მისი გრძელი ფეხი მიერთებულია №10 ციფრულ კონტაქტთან(Digital Pin 10). შუქდიოდის გრძელი ფეხი არის ანოდი და ყოველთვის უნდა მიუერთდეს +5ვოლტს. მოკლე ფეხი არის კათოდი და ყოველთვის უნდა შეუერთდეს ”მიწას” Gnd. სადმე +5ვოლტს, შუქ დიოდსა და მიწას შორის აუცილებლად მიდევრებით უნდა ჩაირთოს დენის შემზღუდავი, ”ბალასტი” წინაღობა. კათოდთან კორპუსის ქვედა ნაწილი არის ბრტყელი. სურ. 2-5.

თუ დარწმუნებული ხართ, რომ ყველა შეერთებები სწორია შეაერთეთ USB კაბელი.

 

სურ. 2-1. პირველი პროექტის შეერთების ესკიზი.

კოდის შეყვანა

გახსენით არდუინოს IDE აკრიფეთ ქვემოთ მოცემული კოდი(Listing 2-1.)

Listing 2-1. Code for Project 1

// Project 1 – LED Flasher
int ledPin = 10;
void setup() {
             pinMode(ledPin, OUTPUT);
}
void loop() {
            digitalWrite(ledPin, HIGH); delay(1000);
            digitalWrite(ledPin, LOW); delay(1000);
}

დააჭირეთ IDE ზედა ნაწილში განლაგებულ Verify/Compile ღილაკს აკრეფილი კოდის შესამოწმებლად. თუ კოდი სწორია, მაშინ დააჭირეთ Upload ღილაკს და კოდი ჩაიტვირთება არდუინოში. თუ ყველაფერი უშეცდომოდ გააკეთეთ მაშინ შუქდიოდი დაიწებს ერთ წამიან ნათებას ერთი წამიანი ინტერვალით.

პროექტი №1-მოციმციმე შუქდიოდი – კოდის განხილვა

კოდის პირველი სტრიქონია:
// Project 1 - LED Flasher int

კოდის პირველი სტრიქონია ეს არის ერთ სტრიქონიანი კომენტარი (comment). რომელიც იწყება ორი დახრილი ხაზით//და ნებისმიერი ტექსტი ამ სიმბოლოდან სტრიქონის ბოლომდე იქნება იგნორირებული კომპილატორის მიერ. კომენტარები პროგრამული კოდის აუცილებელი და სასარგებლო შემადგენელი ნაწილია, კომენტარების საშუალებით ადვილი გასაგებია კოდის დანიშნულება, შინაარსი და მუშაობის პრინციპი. განსაკუთრებით როდესაც პროგრამული კოდი დიდია. კოდის შექმნიდან რაღაც დროის გასვლის შემდეგ ძნელი გასახსენებელია და ზოგჯერ შეუძლებელია იმის გარკვევა თუ როგორ მუშაობს ესა თუ ის კოდი. თქვენი პროგრამული კოდების კომენტარები  სხვა მომხმარებელსაც გაუადვილებს მის გაგებას. კომენტარები შეიძლება წარმოდგენილი იქნეს სხვა ფორმატშიც მაგ. /*და*/ სიმბოლოების გამოყენებით.

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

IDE ავტომატურად გადაიყვანს კომენტარის ტექსტს ნაცრისფერში.

შემდეგი სტრიქონის არის

int ledPin = 10;

ეს არის ცვლადი (variable). მისი დანიშნულებაა მონაცემის შენახვა. აქ ცვლადის ტიპი არის მთელი int (integer). მთელს შიძლება მიენიჭოს მნიშვნელობები -32768 დან 32767 მდე. შემდეგ, მთელი ტიპის ცვლადს მინიჭებული აქვს სახელი ledPin და მისი მნიშვნელობა არის 10. ცვლადისთვის სახელის შერჩევაში არ ვართ შეზღუდული და არ არის აუცილებელი, რომ გამოვიყენოთ სახელი ledPin. მაგრამ მოსახერხებელია როდესაც ცვლადის სახელი ასახავს იმ დანიშნულებას რისთვისაც ის შემოგვყავს პროგრამაში. ჩვენს შემთხვევაში გამოყენებული ledPin ნიშნავს, რომ საქმე გვაქვს შუქდიოდთან (led), რომელიც შეერთებული კონტაქტთან (Pin) და გამოყენებული ციფრული კონტაქტის ნომერია 10. სტრიქონის ბოლოში დგას წერტილ-მძიმე. რაც მიუთითებს კომპილატორს, რომ ჩვენს მიერ შედგენილი განსაზღვრება დასრულებულია.

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

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

საბოლოოდ, მას იმიტომაც დაერქვა ცვლადი, რომ შეიძლება მისი მნიშვნელობის შეცვლა.

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

შემდეგ სტრიქონში არის setup() ფუნქცია:

void setup() {
         pinMode(ledPin, OUTPUT);
}

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

void setup()

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

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

int myFunc(int x, int y)

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

დავუბრუნდეთ ისევ ჩვენს პროექტს. მოცემულ setup ფუნქციის კუთვნილი კოდი მოქცეულია ფიგურულ ფრჩხილებში. { სიმბოლო წინ უძღვის პროგრამული კოდის ბლოკს, ხოლო } სიმბოლო ასრულებს ამ ბლოკს. ჩვენს პროგრამაში გაქვს ორი ფუნქცია. პირველი როგორც ვთქვით არის setup. მისი დანიშნულებაა გაამზადოს ანუ ”მომართოს” რაც საჭიროა მანამ სანამ მთავარი loop(ციკლი) ფუნქცია დაიწყებს მოქმედებას. (ტერმინი მთავარი loop ნიშნავს, რომ არსებობს მეორე, მესამე და ა.შ. რიგის loop-ები.).

void setup() {
     pinMode(ledPin, OUTPUT);
}

ეს setup ფუნქცია იძლევა მხოლოდ ერთ მითითებას. ეს მითითება არის pinMode, რაც ეუბნება არდუინოს, რომ ჩვენ გვინდა კონტაქტმა (pin) რომლის სახელია ledPin იმუშაოს სიგნალის გამოყვანის ანუ გამოსვლის(OUTPUT) რეჟიმში(mode). როგორც ვიცით ფუნქცია setupმდე ledPin-ს მივანიჭეთ 10.საბოლოოდ ზემოთ მოყვანილი გამარტება მიუთითებს არდუინოს, რომ ციფრულმა კონტაქტმა №10 უნდა იმუშაოს სიგნალის გამოსვლის რეჟიმში.რადგან setup() ფუნქცია გაეშვება ერთხელ, შემდეგ არდუინო იწყებს მთავარი ციკლის, loop ფუნქციის შესრულებას:

void loop() {
     digitalWrite(ledPin, HIGH);
     delay(1000);
     digitalWrite(ledPin, LOW);
     delay(1000);
}

loop() არის მთავარი პროგრამული ფუნქცია, რომელიც სრულდება მანამ, სანამ არდუინოს მიეწოდება კვება. მასში მოცემული ყველა ინსტრუქცია სრულდება ნაბიჯ-ნაბიჯ, ზემოდან ქვემოთ, და ყველაფერი ისევ იწყება თავიდან.

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

digitalWrite(ledPin, HIGH);

ამ ბრძანებით ledPin რომლის ნომერი არის 10 მიენიჭება მნიშვნელობა HIGH(ან გნებავთ გადადის მდგომარება HIGH-ში), რაც ნიშნავს +5ვოლტის მიწოდებას. შუქდიოდი აინთება. შემდეგი ბრძანებაა:

delay(1000);

რაც ნიშნავს 10000 მილიწამით, ანუ 1 წამით დაყოვნებას, შუქდიოდი ანათებს ერთი წამის განმავლობაში. ამ დაყოვნებას მოსდევს შემდეგი ბრძანება:

digitalWrite(ledPin, LOW);

ამ ბრძანებით ledPinმიენიჭება მნიშვნელობა LOW, რაც ნიშნავს მე-10 ციფრული კონტაქტიდან ძაბვის გამორთვას და შესაბამისად შუქდიოდიც ჩაქრება. შემდეგ ისევ იქნება 1 წამიანი დაყოვნება და შუქდიოდი ამ 1 წამის განმავლობაში ჩამქრალია. მაგრამ რადგან loop() არის ციკლური ფუნქცია ყველაფერი ისევ დაიწყება თავიდან.

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

// Project 1 - LED Flasher 
int ledPin = 10;
void setup() {
     pinMode(ledPin, OUTPUT);
}
void loop() {
     digitalWrite(ledPin, HIGH); 
     delay(1000);
     digitalWrite(ledPin, LOW); 
     delay(1000);
}

შემოგვაქვს მთელი ცვლადი და ვარქმევთ მას ledPin, ვანიჭებთ მნიშვნელობას 10. შემდეგ გადავდივართ setup() ფუნქციაში, სადაც მე-10 ციფრულ კონტაქტს ვაყენებთ გამოსვლის რეჟიმში. პროგრამის მთავარ ციკლში მე-10 კონტაქტზე ვაგზავნით +5ვ. შემდეგ ველოდებით 1 წამს და გამოვრთავთ +5ვოლტს. ისევ ვიცდით 1 წამს. შემდეგ კი ციკლი გადადის საწყის მდგომარეობაში და ყველაფერი მეორდება თავიდან. და როგორც ზემოთ აღვნიშნეთ ასე განმეორდება მანამ, სანამ არდუინოს მიეწოდება დენი.

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

მაგალითად: შუქდიოდი ანთია 2 წამის განმავლობაში, ხოლო ჩამქრალია ნახევარი წამის ხანგრძლივობით. შესაბამისი კოდი:

void loop() {
     digitalWrite(ledPin, HIGH); delay(2000);
     digitalWrite(ledPin, LOW); delay(500);
}

აქ შუქდიოდი გამორთულია 5 წამით და ანათებს მეოთხედი წამის განმავლობაში:

void loop() {
     digitalWrite(ledPin, HIGH);
     delay(250);
     digitalWrite(ledPin, LOW); 
     delay(5000);
}

ამ კოდის შესაბამისად კი შუქდიოდი სწრაფად ციმციმებს:

void loop() {
     digitalWrite(ledPin, HIGH);
     delay(50);
     digitalWrite(ledPin, LOW);
     delay(50);
}

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

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

სურ. 2-2. სამაკეტო-სამონტაჟო დაფაში გამტარების განლაგება.

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

სურ. 2-3. მიკროსქემის გამომყვანების განლაგებაა სამონტაჟო დაფის ნახვრეტებში.

შემდეგი კომპონენტია წინაღობა, ანუ რეზისტორი. მისი დანიშნულებაა წინააღმდეგობა გაუწიოს, შეზღუდოს მასში გამავალი დენი, თავის თავზე ”აიღოს” ძაბვის რაღაც ნაწილი. მისი საშუალებით შეიძლება შევამციროთ ძაბვა მასთან მიმდევრობით ჩართლ ელემენტზე და შესაბამისად შემცირდეს მოცემულ ელემენტში გამავალი დენიც. წინაღობის ერთეულია ომი და აღინიშნება ბერძნული ასოთი Ω (ომეგა).

ჩვენს შემთხვევაში არდუინოს №10 ციფრული კონტაქტი იძლევა მუდმივ +5ვოლტს, გამომავალი დენის მაქსიმალური მნიშვნელობა კი შეიძლება იყოს 40მა(mA) (მილიამპერი). ამ პროექტში გამოყენებული შუქდიოდისთვის კი საჭიროა 2და მაქსიმუმ 35მა (ამიტომ იყო არჩეული პროექტის დასაწყისში, მცირე ზომის შუქ დიოდი). ამისთვის საჭიროა 5ვ ჩამოყვანა 2ვ-მდე და დენის ძალის შემცირება 40მა-დან 35მა-მდე. თუ გვინდა, რომ შუქ დიოდმა სრულად არ იკაშკაშოს მაშინ დენის ძალა კიდევ უფრო უნდა შემცირდეს. მაგრამ მოდით გათვლები გავაკეთოთ შუქდიოდის მაქსიმალურად დასაშვები დენისთვის.

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

წინაღობის საჭირო სიდიდე ასე გამოითვლება:

R = (VS-VL)/ I

სადაცVS არის არდუინოს კონტაქტზე მოდებული ძაბვა, VL არის შუქდიოდზე ძაბვის ვარდნა და I შუქდიოდში გამავალი (მაქსიმალურად დასაშვები)* დენი. ჩვენს პირობებში VS=5ვ, VL=2ვ და I =35მა=0,035ა მივიღებთ:

R = (5 – 2) / 0.035=85,71(ომი)

ამ სიდიდის ქარხნული წესით დამზადებული წინაღობა კი არ არსებობს. წინაღობები მზადდება სტანდარტულად განსაზღვრული გრადაციით. უახლოესი სტანდარტული მნიშვნელობა კი არის 100Ω. წინაღობის არჩევისას ყოველთვის აიღეთ გამოთვლილი სიდიდეზე მეტი უახლოესი სტანდარტული მნიშვნელობის წინაღობა მხოლოდ. ამით თავიდან აიცილებთ სქემის გადატვირთვა-დაზიანებას.

*მაქსიმალურად დასაშვები დენი არის ისეთი სიდიდის დენი რომლის დროს შუქ დიოდი გარანტირებულად არ გამოვა მწყობრიდან (არ გადაიწვება) პასპორტით განსაზღვრული დროის გასვლამდე.

საჭირო წინაღობის არჩევა ხდება მასზე დატანილი 4 ფერადი რგოლის საშუალებით. იხ. ცხრილი 2-1 და სურ. 2-14.

ფერი

1-ლი რგოლი

მე-2 რგოლი

მე-3 რგოლი, მამრავლი

მე-4 რგოლი ცდომილება

შავი

0

0

x100

ყავისფერი

1

1

x101

+1%

წითელი

2

2

x102

+2%

ნარინჯისფერი

3

3

x103

ყვითელი

4

4

x104

მწვანე

5

5

x105

+0,5%

ცისფერი

6

6

x106

+0,25%

იისფერი

7

7

x107

+0,1%

ნაცრისფერი

8

8

x108

+0,05%

თეთრი

9

9

x109

ოქროსფერი

x10-1

+5%

ვერსხლისფერი

x10-2

+10%

უფერული

+20%

ცხრილი 2-1. წინაღობების ფერადი კოდირება.

ცხრილი 2-1 ან სურ. 2-14 გამოყენებით ვნახოთ რა ფერის რგოლები აქვს 100Ω წინაღობას. პირველი ციფრი უნდა იყოს 1 რასაც შეესაბამება ყავისფერი. მეორე ციფრი კი უნდა იყოს 0, რასაც შეესაბამება შავი. მესამე უნდა იყოს მამრავლი x101 რასაც შეესაბამება ყავისფერი, ანუ მივიღებთ 10x101 =100. თუ ბოლო რგოლი არის ოქროსფერი მაშინ ცდომილება შეადგენს +5%, რაც ნიშნავს, რომ წინაღობის ფაქტიური მნიშვნელობა შეიძლება მერყეობდეს 95Ω-105Ωფარგლებში.

10K წინაღობისთვის(რაც იგივეა 10კომ, 10kΩ) საჭიროა, რომ წინაღობაზე დატანებული იყოს ყავისფერი, შავი და ნარინჯისფერი რგოლები (1, 0, x103 ანუ 1, 0, და კიდევ სამი 0). 570K წინაღობისთვის საჭიროა მწვანე, იისფერი და ყვითელი რგოლები.

სურ. 2-4. 10kΩ წინაღობა 5% ცდომილებით.იხ. ცხრილი 2-1 და სურ. 2-14.

იგივეა უცნობი წინაღობის სიდიდის დადგენის პროცედურა.

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

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

სურ. 2-5. შუქ დიოდი.

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

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

არსებობს ორ ფერიანი (bi-color) და სამ ფერიანი (tri-color) შუქდიოდები შესაბამისად სამი და ოთხი გამომყვანებით. ასეთი შუქდიოდები შეიძლება იყოს საერთო ანოდიანი ან საერთო კათოდიანი. სამფერიანი შუდიოდს ასევე ჰქვია RGB შუდიოდი (Red, Green, Blue). შესაბამისი გამომყვანების გავლით შუქდიოდში სხვადასხვა სიდიდი დენის გატარებით შეიძლება შეიცვალოს თითოეული ფერის სიკაშკაშე, რითაც მიიღება მრავალი შეფერილობის სინათლის ნაკადი.

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

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

სურ. 2-6. სამოტაჟო-სამაკეტო დაფა (Breadboard)

ფასი ebay.com-ზე $3,87დან. DAC-ში 25 ლარი.

სურ.2-7. სამონტაჟო-სამაკეტო დაფის მავთული კონტაქტებით 65 ცალი (Breadboard Jumper Cable)

ფასი ebay.com-ზე $3,12 დან.

სურ. 2-8. სამონტაჟო მოკალული ცალგულა (უკეთესი ტერმინიც შეიძლება მოიფიქროთ) სპილენძის მავთული დამეტრი22 awg. (Solid Tinned Copper 22 awg) ფასი ebay.com-ზე $9,0 15მეტრი.

სურ. 2-9. სამონტაჟოდ გამზადებული მავთულები, არის DAC-ში 140 ცალი ფასი 14ლარი, 350 ცალი 28 ლარი. Solderless Breadboard Jumper Wire cable, 140ცალი, ფასი ebay.com-ზე $6 დან.

სურ. 2-10. იზოლაციის მოსაცილებელი, Automatic Wire Stripper Cutter light and handy 0.2-3mm². ფასი ebay.com-ზე $3,80.

სურ. 2-11. იზოლაციის მოსაცილებელი დიამეტრი 0,2-0,8მმ (20-30 awg), Multifunctional Plier 20-30 AWG Wire Cutter Stripper. ფასი ebay.com-ზე $8,63.(გირჩევთ).

სურ. 2-12. ტესტერი. 15-25 ლარიანი ტესტერი სავსებით საკმარისია. (ebay.com-ზე შეგიძლიათ იპოვოთ დაწყებული $4დან)

სურ. 2-13. გამადიდებული, შეიძლება გადიდების 4 ვარიანტის არჩევა. ფასი ebay.com-ზე $12, New Multi-function Head Band VISOR Magnifier Light Lamp 2 LED. DAC-ში 36ლარი, .

ცხრილი 2-2. awg-ს მილიმეტრებში გადასაყვანად.

სურ. 2-14. წინაღობების ფერადი მარკირების ცხრილი

One Response to პროექტი №1 მოციმციმე შუქდიოდი (LED Flasher)

  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: