Სარჩევი:

LCD COG არდუინო ნანოსთვის: 3 ნაბიჯი
LCD COG არდუინო ნანოსთვის: 3 ნაბიჯი

ვიდეო: LCD COG არდუინო ნანოსთვის: 3 ნაბიჯი

ვიდეო: LCD COG არდუინო ნანოსთვის: 3 ნაბიჯი
ვიდეო: Подключение дисплея GMG12864-06D на ST7565R к Arduino 2024, ნოემბერი
Anonim
LCD COG არდუინო ნანოსთვის
LCD COG არდუინო ნანოსთვის

ეს ინსტრუქცია აღწერს თუ როგორ გამოიყენოთ COG LCD არდუინო ნანოსთან ერთად.

COG LCD დისპლეები იაფია, მაგრამ ინტერფეისის გაკეთება ოდნავ რთულია. (COG ნიშნავს "Chip On Glass".) ის, რასაც მე ვიყენებ, შეიცავს UC1701 დრაივერის ჩიპს. ის მოითხოვს Arduino– ს მხოლოდ 4 ქინძისთავს: SPI– საათი, SPI– მონაცემები, ჩიპების არჩევა და ბრძანება/მონაცემები.

UC1701 კონტროლდება SPI ავტობუსით და მუშაობს 3.3V– ზე.

აქ მე აღვწერ როგორ გამოვიყენო ის არდუინო ნანოსთან ერთად. ის ასევე უნდა მუშაობდეს Arduino Mini- თან ან Uno– თან - ვცდი მალე.

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

ნაბიჯი 1: აპარატურის შექმნა

აპარატურის მშენებლობა
აპარატურის მშენებლობა
აპარატურის მშენებლობა
აპარატურის მშენებლობა
აპარატურის მშენებლობა
აპარატურის მშენებლობა

შეიძინეთ COG LCD, რომელიც შეიცავს UC1701 ჩიპს. ის უნდა იყენებდეს SPI ავტობუსს და არა პარალელურ ინტერფეისს. მას ექნება დაახლოებით 14 ქინძისთავი, რომელსაც ეტიკეტირებული ექნება ქვემოთ მოყვანილი სახელები. (თქვენ არ გსურთ პარალელური ინტერფეისი D0, D1, D2 …

მე ვიყიდე: https://www.ebay.co.uk/itm/132138390168 ან შეგიძლიათ eBay- ში მოძებნოთ "12864 LCD COG".

შეარჩიეთ ის, რომელსაც აქვს საკმაოდ ფართო კუდი და ქინძისთავები დაშორებულია 1.27 მმ -ზე - დახვეწილი ქინძისთავების გაკვრა ძნელი იქნება. დარწმუნდით, რომ მას აქვს UC1701 ჩიპი. მიაქციეთ ყურადღება როგორ არის ebay გვერდზე მეექვსე სურათზე ნათქვამი "CONNECTOR: COG/UC1701".

ეკრანი გამჭვირვალეა და ძნელია იცოდე რომელია წინა და უკანა. ყურადღებით შეისწავლეთ ჩემი სურათები. ყურადღება მიაქციეთ სად არის 1 და 14 ქინძისთავები - ისინი აღინიშნება კუდზე.

მოქნილი კუდი საკმაოდ ადვილად შესაკრავია, მაგრამ ის მოითხოვს ადაპტერს, ასე რომ თქვენ შეგიძლიათ შეაერთოთ ის პურის დაფაზე. შევიძინე: https://www.ebay.co.uk/itm/132166865767 ან შეგიძლიათ მოძებნოთ eBay "ადაპტერი Smd SSOP28 DIP28".

ადაპტერი იღებს 28-პინიან SOP ჩიპს ერთ მხარეს ან 28-პინ SSOP ჩიპს მეორე მხარეს. SOP ჩიპს აქვს პინების დაშორება 0.05”(1.27 მმ), რაც იგივეა, რაც LCD– ის კუდი.

თქვენ ასევე დაგჭირდებათ სათაურის ქინძისთავები. როდესაც ვყიდულობ არდუინოს ან სხვა მოდულს, მას მოყვება უფრო მეტი სათაური, ვიდრე საჭიროა, ასე რომ თქვენ ალბათ უკვე გაქვთ რამდენიმე. წინააღმდეგ შემთხვევაში, მოძებნეთ eBay "2.54 მმ სათაურის ქინძისთავები".

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

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

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

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

ნაბიჯი 2: დაკავშირება არდუინოსთან

არდუინოსთან დაკავშირება
არდუინოსთან დაკავშირება
არდუინოსთან დაკავშირება
არდუინოსთან დაკავშირება

ეს ნაწილი განმარტავს, თუ როგორ უნდა დაუკავშიროთ არდუინო ნანოს. ეს იქნება ძალიან მსგავსი Mini ან Uno– სთვის, მაგრამ მე ჯერ არ მიცდია.

შეისწავლეთ წრიული დიაგრამა.

Arduino Nano, რომელიც დაკავშირებულია USB პორტთან, მუშაობს 5 ვ -ზე. LCD მუშაობს 3.3 ვ. ასე რომ თქვენ უნდა ჩართოთ LCD ნანოს 3V3 პინიდან და შეამციროთ ძაბვა თითოეულ საკონტროლო პინზე 5V– დან 3.3V– მდე.

LCD– ის პინუტი არის:

  • 1 CS
  • 2 RST
  • 3 CD
  • 4
  • 5 CLK
  • 6 SDA
  • 7 3V3
  • 8 0V Gnd
  • 9 VB0+
  • 10 VB0-
  • 11
  • 12
  • 13
  • 14

CS არის ჩიპის არჩევა. დაბალია გამოყვანილი UC1701 ჩიპის შესარჩევად (გასააქტიურებლად). (CS შეიძლება ეწოდოს CS0 ან En ან მსგავსი.)

RST გადატვირთულია. ის დაბლა იწევს ჩიპის გადატვირთვისთვის. (RST შეიძლება ეწოდოს გადატვირთვას.)

CD არის ბრძანება/მონაცემები. ის იშლება დაბალი, როდესაც ბრძანებებს SPI- ზე ჩიპზე აგზავნით. მაღალია მონაცემების გაგზავნისას. (CD შეიძლება ეწოდოს A0.)

CLK და SDA არის SPI ავტობუსის ქინძისთავები. (SDA შეიძლება ეწოდოს SPI-Data. CLK შეიძლება იყოს SCL ან SPI- საათი.)

VB0+ და VB0- გამოიყენება UC1701– ის შიდა დატენვის ტუმბოს მიერ. დატენვის ტუმბო წარმოქმნის LCD– ს საჭირო კენტი ძაბვებს. შეაერთეთ 100n კონდენსატორი VB0+ და VB0- შორის. UC1701 დოკუმენტაცია გირჩევთ 2uF– ს, მაგრამ მე ვერ ვხედავ განსხვავებას ამ კონკრეტულ LCD– თან.

თუ თქვენს LCD- ს აქვს VB1+ და VB1- ქინძისთავები, ასევე დააკავშირეთ მათ შორის 100n კონდენსატორი. (თუ თქვენს LCD– ს აქვს VLCD პინი, შეგიძლიათ სცადოთ 100n კონდენსატორის დაკავშირება VLCD– სა და Gnd– ს შორის. ამას არანაირი მნიშვნელობა არ აქვს ჩემს LCD– თან.)

შეაერთეთ LCD ნანოს შემდეგნაირად:

  • 1 CS = D10 *
  • 2 RST = D6 *
  • 3 CD = D7 *
  • 5 CLK = D13 *
  • 6 SDA = D11 *
  • 7 3V3 = 3V3
  • 8 0V = Gnd

("*" ნიშნავს პოტენციური გამყოფის გამოყენებას ძაბვის შესამცირებლად. თუ Arduino მუშაობს 3V3- ზე დამოუკიდებელი წყაროსგან, თქვენ არ დაგჭირდებათ რეზისტორები.)

3.3V გამოდის ნანოს მიერ და შეუძლია უზრუნველყოს საკმარისი დენი LCD– ისთვის. (ეკრანი იღებს დაახლოებით 250uA.)

5V ასევე გამოდის ნანოს მიერ და მისი გამოყენება შესაძლებელია შუქის განათებისთვის. შეზღუდეთ დენი შუქნიშანზე 100 ოჰმ რეზისტორით.

თუ ნანოზე არ გაქვთ ქინძისთავები, შეგიძლიათ დაუკავშიროთ RST 3V3– ს - შემდეგ შეგიძლიათ გამოიყენოთ D6 სხვა რამეში. U1701 შეიძლება გადატვირთოთ პროგრამულ უზრუნველყოფაში SPI ბრძანებით. მე არასოდეს მქონია რაიმე პრობლემა, მაგრამ თუ თქვენ იყენებთ თქვენს საკუთარ წრეს ხმაურიან გარემოში, უმჯობესია აპარატურის გადატვირთვა გამოიყენოთ.

ნაბიჯი 3: პროგრამული უზრუნველყოფა

პროგრამული უზრუნველყოფა
პროგრამული უზრუნველყოფა

თეორიულად, თქვენ შეგიძლიათ მართოთ UC1701 U8g2 ბიბლიოთეკიდან (ან Ucglib ან სხვა ხელმისაწვდომი ბიბლიოთეკები). დღეების განმავლობაში ვცდილობდი გამეგრძელებინა მუშაობა და ვერ მოხერხდა. U8g2 ბიბლიოთეკა არის მონსტრი, რადგან მას შეუძლია მართოს უზარმაზარი ჯიშის ჩიპი და ძნელია დაიცვას კოდი. ამიტომ თავი დავანებე და დავწერე ჩემი პატარა ბიბლიოთეკა. ის იკავებს გაცილებით ნაკლებ ადგილს არდუინოში (დაახლოებით 3400 ბაიტი პლუს შრიფტები).

თქვენ შეგიძლიათ გადმოწეროთ ჩემი ბიბლიოთეკა აქედან (ამ გვერდზე გადმოტვირთვის ღილაკი). მოყვება ესკიზის ნიმუში და მომხმარებლის სახელმძღვანელო. ვებ გვერდი https://www.arduino.cc/en/Guide/Libraries აღწერს ბიბლიოთეკის იმპორტის გზებს; გადადით განყოფილებაში ".zip ბიბლიოთეკის იმპორტი".

LCD– ის ინიციალიზაცია

UC1701 დაწყება ();

UC1701Begin– ს შეუძლია მიიღოს პარამეტრები, რომ შეცვალოს ქინძისთავები ან უგულებელყოს RST პინი. ბიბლიოთეკა იყენებს მხოლოდ ტექნიკურ SPI- ს (პროგრამული უზრუნველყოფის SPI არ არის მოწოდებული). ეკრანის გადაბრუნება შესაძლებელია x და y ღერძებში. ეს სასარგებლოა, თუ გსურთ LCD– ის დაყენება სხვა ორიენტაციით.

U8g2 ბიბლიოთეკიდან დუბლირებულია რამდენიმე პროცედურა:

  • DrawLine
  • DrawPixel
  • DrawHLine
  • DrawVLine
  • DrawBox
  • DrawFrame
  • DrawCircle
  • DrawDisc
  • DrawFilledEllipse
  • DrawEllipse
  • DrawTriangle
  • UC1701SetCursor
  • UC1701ClearDisplay

ზოგიერთი პროცედურა ოდნავ განსხვავდება:

  • ბათილია DrawChar (uint8_t c, სიტყვა ფონტი);
  • ბათილია DrawString (char * s, word Font);
  • void DrawInt (int i, word Font);

სიმებიანი ხატვის პროცედურები გადაეცემა შრიფტის ინდექსს. შრიფტები გამოცხადებულია არდუინოს ფლეშ მეხსიერებაში, რათა მათ არ დაიკავონ ძვირფასი SRAM. მოცემულია სამი შრიფტი (მცირე, საშუალო და დიდი). ისინი მხოლოდ დაკავშირებულია და იკავებენ ფლეშ მეხსიერებას, თუ იყენებთ მათ (დაახლოებით 500 -დან 2000 ბაიტამდე თითოეული).

"ფერი" განსხვავებულად გამოიყენება U8g2 ბიბლიოთეკისგან. როდესაც LCD გაწმენდილია მას აქვს მუქი ფონი. თუ MakeMark (გლობალური ცვლადი) მართალია, ხატვა კეთდება თეთრად. თუ MakeMark ყალბია, ხატვა ხდება სიბნელეში.

ზოგიერთი პროცედურა უნიკალურია UC1701– ისთვის:

SetInverted ხატავს შავ-თეთრზე ვიდრე თეთრ-შავზე.

void SetInverted (bool inv);

UC1701– ის სიკაშკაშე და კონტრასტი დადგენილია:

  • ბათილია SetContrast (uint8_t მნიშვნელობა); // შემოთავაზებულია 14
  • ბათილი SetResistor (uint8_t მნიშვნელობა); // შემოთავაზებულია 7

ისინი ერთად საკმაოდ არადამაკმაყოფილებლად მუშაობენ.

SetEnabled ჩართავს LCD– ს:

void SetEnabled (bool en);

ძილის დროს ეკრანი იღებს 4uA- ს. თქვენ ასევე უნდა გამორთოთ უკანა განათება - მართეთ იგი ნანოს ქინძისთავიდან. ხელახალი ჩართვის შემდეგ, UC1701 გადატვირთული იქნება; ეკრანი გასუფთავებულია და კონტრასტი და რეზისტორი დაუბრუნდება ნაგულისხმევ მნიშვნელობებს.

ასე რომ, დასასრულს, COG დისპლეი არის იაფი და ღირსეული ზომა. ისინი ადვილად უკავშირდებიან არდუინოს.

გირჩევთ: