Სარჩევი:

Arduino და TM1638 LED ჩვენების მოდულები: 11 ნაბიჯი
Arduino და TM1638 LED ჩვენების მოდულები: 11 ნაბიჯი

ვიდეო: Arduino და TM1638 LED ჩვენების მოდულები: 11 ნაბიჯი

ვიდეო: Arduino და TM1638 LED ჩვენების მოდულები: 11 ნაბიჯი
ვიდეო: Arduino და რელეს კონტროლი | "Intermediate" ნაკრების სასწავლო კურსი 2024, ივლისი
Anonim
Arduino და TM1638 LED ჩვენების მოდულები
Arduino და TM1638 LED ჩვენების მოდულები

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

ისინი შეიცავს რვა 7-სეგმენტის წითელ LED ციფრს, რვა წითელ/მწვანე LED- ს და ასევე რვა ღილაკს მომხმარებლის შეყვანისთვის. ერთეულები ასევე შეიძლება იყოს მიჯაჭვული ჯაჭვით, რაც საშუალებას იძლევა ერთდროულად ხუთამდე, ხოლო თითოეულ მოდულს მოყვება მოკლე კაბელი, ასევე რამდენიმე მოკლე გამყოფი და ჭანჭიკი, როგორც ეს მოცემულია სურათზე.

Ნაბიჯი 1:

გამოსახულება
გამოსახულება

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

ნაბიჯი 2:

გამოსახულება
გამოსახულება

დაფა კონტროლდება TM1638 IC- ით.

ეს არის LED და ინტერფეისის დრაივერის IC "Titan Micro Electronics" - დან. თქვენ ასევე შეგიძლიათ შეიძინოთ ეს ICs PMD Way– დან. თქვენ ასევე შეგიძლიათ ჩამოტვირთოთ მონაცემთა ფურცელი დამატებითი ინფორმაციისთვის.

ნაბიჯი 3: დაწყება - აპარატურა

დაწყება - აპარატურა
დაწყება - აპარატურა

აპარატურა-Arduino- თან თავსებადი დაფის (ან სხვა MCU) დაკავშირება საკმაოდ მარტივია. პინუტები ნაჩვენებია PCB– ის უკანა ნაწილზე და ემთხვევა ლენტი კაბელის ფიტინგს. თუ შეხედავთ კაბელის ბოლოს, როგორც ასეთს.

ზედა მარჯვენა ხვრელი არის პინი ერთი, ზედა მარცხენა არის პინი ორი, ქვედა მარჯვენა პინი ცხრა და ქვედა მარცხენა პინ ათი. ამიტომ პინუტებია:

  1. Vcc (5V)
  2. GND
  3. CLK
  4. DIO
  5. STB1
  6. STB2
  7. STB3
  8. STB4
  9. STB5
  10. არ არის დაკავშირებული.

არდუინოს გამოყენებისთვის, ქინძისთავები 1 ~ 4 არის მინიმალური, რაც საჭიროა ერთი მოდულის გამოსაყენებლად. თითოეულ დამატებით მოდულს დასჭირდება სხვა ციფრული პინი, რომელიც დაკავშირებულია STB2, STB3 და ა.შ. ამის შესახებ მოგვიანებით. გთხოვთ გაითვალისწინოთ, რომ თითოეული მოდული დაყენებულია სრულ სიკაშკაშესთან ერთად თითოეული LED- ი მოიხმარს 127 mA- ს, ამიტომ გონივრული იქნება გარე ენერგიის გამოყენება ერთზე მეტი მოდულით და სხვა კავშირები Arduino დაფებთან.

ნაბიჯი 4: დაწყება - პროგრამული უზრუნველყოფა

პროგრამული უზრუნველყოფა - გადმოწერეთ და დააინსტალირეთ T1638 ბიბლიოთეკა აქედან. მადლობა და დიდება rjbatista at gmail dot com ბიბლიოთეკისთვის. ესკიზში მოდულების ინიციალიზაცია მარტივია. ჩართეთ ბიბლიოთეკა:

#ჩართეთ

შემდეგ გამოიყენეთ თითოეული შემდეგი მოდულისთვის:

TM1638 მოდული (x, y, z);

x არის Arduino ციფრული პინი, რომელიც დაკავშირებულია მოდულის კაბელის პინ 4 -თან, y არის Arduino ციფრული პინი, რომელიც დაკავშირებულია მოდულის კაბელის პინ 3 -თან, ხოლო z არის სტრობის პინი. ასე რომ, თუ გქონდათ ერთი მოდული მონაცემებით, საათით და სტრობით, რომლებიც დაკავშირებულია 8, 7 და 6 ქინძისთავებთან, თქვენ გამოიყენებდით:

TM1638 მოდული (8, 7, 6);

თუ გქონდათ ორი მოდული, ერთი მოდულის სტრობი დაკავშირებული Arduino digital 6 -თან და მოდულის ორი სტრობი ციფრულ 5 -თან, თქვენ გამოიყენებდით:

TM1638 მოდული (8, 7, 6); TM1638 მოდული (8, 7, 5);

და ასე შემდეგ მეტი მოდულისთვის. ახლა ეკრანის გასაკონტროლებლად …

ნაბიჯი 5: ორფერიანი LED- ები

ორფერიანი LED- ები
ორფერიანი LED- ები

წითელი/მწვანე LED- ების კონტროლი ადვილია. ცნობისთვის ისინი დანომრილია ნულიდან შვიდამდე მარცხნიდან მარჯვნივ. ერთი LED- ის ჩართვის ან გამორთვისთვის გამოიყენეთ შემდეგი:

module.setLED (TM1638_COLOR_RED, x); // დააყენეთ LED ნომერი x redmodule.setLED (TM1638_COLOR_GREEN, x); // დააყენეთ LED ნომერი x მწვანე მოდულზე. setLED (TM1638_COLOR_RED+TM1638_COLOR_GREEN, 0); // დააყენეთ LED ნომერი x წითელი და მწვანე

ზემოთ მოყვანილი მეთოდის გამოყენება შეიძლება მარტივი იყოს, ის გარკვეულწილად არაეფექტურია. უკეთესი გზაა მიმართოთ ყველა LED- ს ერთ განცხადებაში. ამისათვის ჩვენ ვგზავნით ეკრანზე თექვსმეტობით მონაცემის ორ ბაიტს. MSB (ყველაზე მნიშვნელოვანი ბაიტი) შედგება რვა ბიტისგან, თითოეული წარმოადგენს ერთ მწვანე LED- ს (1) ან გამორთვას (0). LSB (ყველაზე ნაკლებად მნიშვნელოვანი ბაიტი) წარმოადგენს წითელ LED- ებს.

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

module.setLEDs (0xgreenred);

სადაც მწვანე არის მწვანე LED- ების თექვსმეტობითი რიცხვი და წითელი არის წითელი LED- ების თექვსმეტობითი რიცხვი. მაგალითად, პირველი სამი LED- ები რომ იყოს წითელი და ბოლო სამი როგორც მწვანე, ორობითი გამოსახულება იქნება:

00000111 11100000 რაც თექვსმეტობით არის E007.

ასე რომ, ჩვენ გამოვიყენებთ:

module.setLEDs (0xE007);

რომელიც აწარმოებს სურათს, როგორც ეს ნაჩვენებია ზემოთ.

ნაბიჯი 6: 7 სეგმენტიანი ჩვენება

ციფრული ეკრანის გასასუფთავებლად (მაგრამ არა LED- ები ქვემოთ), უბრალოდ გამოიყენეთ:

module.clearDisplay ();

ან ყველა სეგმენტის და ყველა LED- ის ჩასართავად გამოიყენეთ შემდეგი

module.setupDisplay (ჭეშმარიტი, 7); // სადაც 7 არის ინტენსივობა (0 ~ 7 -დან)

ათობითი რიცხვების საჩვენებლად გამოიყენეთ ფუნქცია:

module.setDisplayToDecNumber (a, b, false);

სადაც a არის მთელი რიცხვი, b არის პოზიცია ათწილადისათვის (0 არავისთვის, 1 ციფრისთვის 8, 2, ციფრისთვის 7, 4 ციფრისთვის 6, ციფრისთვის 4 და ა.შ.) და ბოლო პარამეტრი (ჭეშმარიტი/ ყალბი) ჩართავს ან გამორთავს წამყვან ნულებს. შემდეგი ესკიზი აჩვენებს ამ ფუნქციის გამოყენებას:

#მოიცავს // განსაზღვრეთ მოდული მონაცემთა პინ 8 -ზე, საათის პინ 9 და სტრობი პინ 7 TM1638 მოდული (8, 9, 7); ხელმოუწერელი გრძელი a = 1; void setup () {} void loop () {for (a = 10000; a <11000; a ++) {module.setDisplayToDecNumber (a, 4, false); დაგვიანება (1); } for (a = 10000; a <11000; a ++) {module.setDisplayToDecNumber (a, 0, true); დაგვიანება (1); }}

… ვიდეოში ნაჩვენები შედეგებით.

ნაბიჯი 7:

Image
Image

ერთ -ერთი ყველაზე საინტერესო მახასიათებელია ტექსტის გადახვევის შესაძლებლობა ერთ ან მეტ ეკრანზე. ამის გაკეთება ნამდვილად არ სჭირდება ახსნას, რადგან მოყვება სადემონსტრაციო ესკიზი:

tm_1638_scrolling_modules_example.pde

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

ნაბიჯი 8:

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

ბაიტის მნიშვნელობები = {1, 2, 4, 8, 16, 32, 64, 128};

თითოეული ელემენტი წარმოადგენს ციფრებს 1 ~ 8. თითოეული ელემენტის მნიშვნელობა განსაზღვრავს ციფრის რომელ სეგმენტს ჩართავს. სეგმენტების a ~ f, dp მნიშვნელობებია 1, 2, 4, 6, 16, 32, 64, 128. ამრიგად, ზემოთ მასივის გამოყენების შედეგები შემდეგ ფუნქციაში:

module.setDisplay (ღირებულებები);

იქნება სურათზე

ნაბიჯი 9:

გამოსახულება
გამოსახულება

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

ბაიტის მნიშვნელობები = {99, 99, 99, 99, 99, 99, 99, 99, 99};

ჩვენ შევქმენით სურათის მიხედვით ამ ნაბიჯში.

ნაბიჯი 10: ღილაკები

ღილაკების მნიშვნელობები ბრუნდება როგორც ბაიტის მნიშვნელობა ფუნქციიდან:

module.getButtons ();

რვა ღილაკი არსებობს, თითოეული წარმოადგენს ორობითი რიცხვის ერთ ბიტს, რომელიც ბაიტის სახით ბრუნდება. ღილაკი მარცხნივ აბრუნებს ათწილადს, ხოლო მარჯვნივ 128. მას ასევე შეუძლია ერთდროული დაჭერის დაბრუნება, ამიტომ ღილაკებზე ერთი და რვა დაჭერით ბრუნდება 129. განვიხილოთ შემდეგი ესკიზი, რომელიც აბრუნებს ღილაკების დაჭერის მნიშვნელობებს ათწილადში, შემდეგ აჩვენებს ღირებულება:

#მოიცავს // განსაზღვრეთ მოდული მონაცემთა პინ 8 -ზე, საათის პინ 9 და სტრობი პინ 7 TM1638 მოდული (8, 9, 7); ბაიტის ღილაკები; void setup () {} void loop () {buttons = module.getButtons (); module.setDisplayToDecNumber (ღილაკები, 0, ყალბი); }

და შედეგები ვიდეოში.

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

გირჩევთ: