Სარჩევი:
- ნაბიჯი 1: აპარატურა
- ნაბიჯი 2: Pinout და სიგნალები
- ნაბიჯი 3: პროტოკოლი
- ნაბიჯი 4: პროგრამული უზრუნველყოფა
ვიდეო: როგორ დავაკავშიროთ MAX7219 მართვადი LED მატრიცა 8x8 ATtiny85 მიკროკონტროლერთან ერთად: 7 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:17
MAX7219 კონტროლერი დამზადებულია Maxim Integrated– ის კომპაქტური, სერიული შეყვანის/გამომავალი საერთო კათოდური დისპლეის დრაივერის საშუალებით, რომელსაც შეუძლია მიკროკონტროლერების ჩართვა 64 ინდივიდუალურ LED– ზე, 7 სეგმენტიანი ციფრული LED მონიტორები 8 ციფრამდე, ბარი – გრაფიკის ჩვენება და ა.შ. -ჩიპი არის BCD კოდი-B დეკოდერი, მულტიპლექს სკანირების სქემა, სეგმენტისა და ციფრული დრაივერები და 8 × 8 სტატიკური ოპერატიული მეხსიერება, რომელიც ინახავს თითოეულ ციფრს.
MAX7219 მოდულები ძალიან მოსახერხებელია ისეთი მიკროკონტროლერებისთვის, როგორიცაა ATtiny85, ან, ჩვენს შემთხვევაში Tinusaur Board.
ნაბიჯი 1: აპარატურა
MAX7219 მოდულები ჩვეულებრივ ასე გამოიყურება. მათ აქვთ შეყვანის ავტობუსი ერთ მხარეს და გამომავალი ავტობუსი მეორეზე. ეს გაძლევთ საშუალებას დააკავშიროთ ჯაჭვი 2 ან მეტი მოდულით, ანუ ერთმანეთის მიყოლებით, უფრო რთული კონფიგურაციების შესაქმნელად.
მოდულებს, რომლებსაც ჩვენ ვიყენებთ, შეუძლიათ შეაერთონ ჯაჭვში 5 პატარა მხტუნავის გამოყენებით. იხილეთ სურათი ქვემოთ.
ნაბიჯი 2: Pinout და სიგნალები
MAX7219 მოდულს აქვს 5 პინი:
- VCC - ძალა (+)
- GND-ნიადაგი (-)
- DIN - მონაცემთა შეყვანა
- CS - ჩიპის არჩევა
- CLK - საათი
ეს ნიშნავს, რომ ჩვენ გვჭირდება 3 ქინძისთავი ATtiny85 მიკროკონტროლის მხარეს მოდულის გასაკონტროლებლად. ეს იქნება:
- PB0 - დაკავშირებულია CLK– თან
- PB1 - დაკავშირებულია CS- თან
- PB2 - დაკავშირებულია DIN– თან
ეს საკმარისია MAX7219 მოდულთან დასაკავშირებლად და დასაპროგრამებლად.
ნაბიჯი 3: პროტოკოლი
MAX7219– თან კომუნიკაცია შედარებით ადვილია - ის იყენებს სინქრონულ პროტოკოლს, რაც ნიშნავს, რომ ჩვენ მიერ გაგზავნილ მონაცემთა თითოეულ ბიტზე არის საათის ციკლი, რომელიც აღნიშნავს ამ მონაცემთა ბიტის არსებობას.
სხვა სიტყვებით რომ ვთქვათ, ჩვენ ვაგზავნით 2 პარალელურ თანმიმდევრობას ბიტებზე - ერთს საათისათვის და მეორე მონაცემებს. ეს არის ის, რასაც პროგრამული უზრუნველყოფა აკეთებს.
ნაბიჯი 4: პროგრამული უზრუნველყოფა
როგორ მუშაობს ეს MAX7219 მოდული, ეს არის:
- ჩვენ ვწერთ ბაიტებს მის შიდა რეესტრში.
- MAX7219 ახდენს მონაცემების ინტერპრეტაციას.
- MAX7219 აკონტროლებს LED- ებს მატრიცაში.
ეს ასევე ნიშნავს იმას, რომ ჩვენ არ გვჭირდება LED- ების მასივის გარშემო ყოველთვის შემოვლა, რათა მათ გავანათოთ - MAX7219 კონტროლერი ზრუნავს ამაზე. მას ასევე შეუძლია მართოს LED- ების ინტენსივობა.
ამრიგად, MAX7219 მოდულების მოსახერხებლად გამოსაყენებლად ჩვენ გვჭირდება ფუნქციების ბიბლიოთეკა, რომელიც ამ მიზანს ემსახურება.
პირველ რიგში, ჩვენ გვჭირდება რამდენიმე ძირითადი ფუნქცია, რათა დავწეროთ MAX7219 რეგისტრები.
- ბაიტის წერა MAX7219.
- სიტყვის დაწერა (2 ბაიტი) MAX7219– ზე.
ფუნქცია, რომელიც წერს ერთ ბაიტს კონტროლერს, ასე გამოიყურება:
ბათილია max7219_ ბაიტი (uint8_t მონაცემები) {for (uint8_t i = 8; i> = 1; i--) {PORTB & = ~ (1 << MAX7219_CLK); // დააყენეთ CLK LOW, თუ (მონაცემები & 0x80) // მონაცემთა ნიღაბი MSB PORTB | = (1 << MAX7219_DIN]; // დააყენეთ DIN HIGH else PORTB & = ~ (1 << MAX7219_DIN]; // დააყენეთ DIN LOW PORTB | = (1 << MAX7219_CLK]; // CLK- ის დაყენება HIGH მონაცემებზე << = 1; // გადაიტანეთ მარცხნივ}}
ახლა, როდესაც ჩვენ შეგვიძლია გამოვაგზავნოთ ბაიტები MAX7219– ზე, ჩვენ შეგვიძლია დავიწყოთ ბრძანებების გაგზავნა. ეს კეთდება 2 ბაიის გაგზავნით - პირველი შიდა რეესტრის მისამართისთვის და მეორისთვის იმ მონაცემებისთვის, რომელთა გაგზავნაც გვსურს.
MAX7219 კონტროლერში არის ათზე მეტი რეგისტრი.
ბრძანების, ან სიტყვის გაგზავნა ძირითადად 2 ზედიზედ ბაიტის გაგზავნაა. მისი განხორციელების ფუნქცია ძალიან მარტივია.
ბათილია max7219_word (uint8_t მისამართი, uint8_t მონაცემები) {PORTB & = ~ (1 << MAX7219_CS); // დააყენეთ CS LOW max7219_byte (მისამართი); // მისამართის გაგზავნა max7219_byte (მონაცემები); // მონაცემების გაგზავნა PORTB | = (1 << MAX7219_CS); // დააყენეთ CS HIGH PORTB & = ~ (1 << MAX7219_CLK]; // დააყენეთ CLK LOW}
აქ მნიშვნელოვანია აღინიშნოს ის ხაზი, სადაც ჩვენ CS სიგნალს დავუბრუნებთ HIGH - ეს აღნიშნავს თანმიმდევრობის დასასრულს - ამ შემთხვევაში, ბრძანების დასასრულს. მსგავსი ტექნიკა გამოიყენება ჯაჭვში ერთზე მეტი მატრიცის კონტროლისას. შემდეგი ნაბიჯი, სანამ დავიწყებთ LED- ების ჩართვას და გამორთვას, არის MAX7219 კონტროლერის ინიციალიზაცია. ეს ხდება გარკვეული მნიშვნელობების ჩაწერისას გარკვეულ რეგისტრებში. მოხერხებულობისთვის, კოდირებისას ჩვენ შეგვიძლია მასივში ჩავდოთ ინიციალიზაციის თანმიმდევრობა.
uint8_t initseq = {0x09, 0x00, // დეკოდირების რეჟიმი რეგისტრაცია, 00 = დეკოდირების გარეშე 0x0a, 0x01, // ინტენსივობის რეგისტრაცია, 0x00.. 0x0f 0x0b, 0x07, // სკანირების ლიმიტის რეგისტრაცია, 0x07 ყველა ხაზის საჩვენებლად 0x0c, 0x01, // გამორთვის რეგისტრატორი, 0x01 = ნორმალური ოპერაცია 0x0f, 0x00, // ჩვენების ტესტირების რეესტრი, 0x00 = ნორმალური მოქმედება};
ჩვენ უბრალოდ უნდა გავაგზავნოთ ზემოთ 5 ბრძანება თანმიმდევრობით, როგორც მისამართი/მონაცემთა წყვილი. შემდეგი ნაბიჯი - LED- ების რიგის განათება.
ეს ძალიან მარტივია - ჩვენ უბრალოდ ვწერთ ერთ ბრძანებას, სადაც 1 ბაიტი არის მისამართი (0 -დან 7 -მდე), ხოლო მე -2 ბაიტი არის 8 ბიტი, რომელიც წარმოადგენს 8 LED- ს ზედიზედ.
ბათილია max7219_row (uint8_t მისამართი, uint8_t მონაცემები) {if (მისამართი> = 1 && მისამართი <= 8) max7219_word (მისამართი, მონაცემები); }
მნიშვნელოვანია აღინიშნოს, რომ ეს იმუშავებს მხოლოდ 1 მატრიცაზე. თუ ჯაჭვში მეტ მატრიცას დავუკავშირებთ, ისინი ყველა ერთსა და იმავე მონაცემს აჩვენებენ. ამის მიზეზი ის არის, რომ ბრძანების გაგზავნის შემდეგ ჩვენ CS სიგნალს ვუბრუნებთ HIGH- ს, რაც ჯაჭვში მყოფი MAX7219 კონტროლერების ჩაკეტვას და აჩვენებს ბოლო ბრძანებას.
გირჩევთ:
როგორ გამოვიყენოთ Max7219 8x8 წერტილოვანი მატრიცა "skiiiD" - ით: 9 ნაბიჯი
როგორ გამოვიყენოთ Max7219 8x8 წერტილოვანი მატრიცა "skiiiD" - ით: ეს არის ვიდეო ინსტრუქცია Max7219 8x8 წერტილოვანი მატრიქსის საშუალებით " skiiiD " დაწყებამდე, ქვემოთ მოცემულია skiiiD– ის გამოყენების ძირითადი სახელმძღვანელო /დაწყება-დასავლეთი
როგორ ავაშენოთ 8x8 დიდი LED მატრიცა (MAX7219 LED 10 მმ): 9 ნაბიჯი (სურათებით)
როგორ ავაშენოთ 8x8 დიდი LED მატრიცა (MAX7219 LED 10 მმ): მუშაობდით მზა 8x8 LED მატრიცაზე, როგორც დისპლეი? ისინი სხვადასხვა ზომისაა და საკმაოდ საინტერესოა მუშაობა. დიდი ადვილად ხელმისაწვდომი ზომაა დაახლოებით 60 მმ x 60 მმ. თუმცა, თუ თქვენ ეძებთ ბევრად უფრო დიდ მზა LED მატრიცას
როგორ დავაკავშიროთ GPS მოდული (NEO-6m) Arduino– სთან ერთად: 7 ნაბიჯი (სურათებით)
როგორ დავაკავშიროთ GPS მოდული (NEO-6m) Arduino– სთან ერთად: ამ პროექტში მე ვაჩვენე როგორ გავაერთიანო GPS მოდული Arduino UNO– სთან. გრძედი და გრძედის მონაცემები ნაჩვენებია LCD– ზე და მისი ნახვა შესაძლებელია აპლიკაციაში. მასალის სია Arduino Uno == > $ 8 Ublox NEO-6m GPS მოდული == > 15 $ 16x
Dot Matrix LED ეკრანი ურთიერთკავშირში 8051 მიკროკონტროლერთან: 5 ნაბიჯი
წერტილოვანი მატრიცის LED ჩვენება 8051 მიკროკონტროლერთან: ამ პროექტში ჩვენ ვაპირებთ დავაკავშიროთ ერთი წერტილოვანი მატრიცის LED დისპლეი 8051 მიკროკონტროლერთან. აქ ჩვენ ვაჩვენებთ სიმულაციას პროტეუსში, თქვენ შეგიძლიათ იგივე გამოიყენოთ თქვენს ტექნიკაში. ასე რომ, აქ ჩვენ ჯერ დავბეჭდავთ ერთ პერსონაჟს, ვთქვათ "A" ამ დისპლეიში
როგორ დავაკავშიროთ 16x4 LCD არდუინოსთან ერთად: 6 ნაბიჯი
როგორ გავაერთიანო 16x4 LCD არდუინოსთან ერთად: შესავალი მე ახლახანს მივიღე რამდენიმე უფასო LCD ნიმუში ჩემი მეგობრებისგან FocusLCDs.com– ზე. რომელთაგან ერთი არის 16x4 LCD; P/N: C164AXBSYLY6WT. ის იყენებს ST7066U კონტროლერს (იხილეთ მონაცემთა ცხრილი აქ) ნაცვლად HD44780, რომელიც ჩვეულებრივ გვხვდება LCD ფარებში. Მე არ ვარ