Სარჩევი:

Uber I2C LCD კონტროლერის მოდული: 6 ნაბიჯი
Uber I2C LCD კონტროლერის მოდული: 6 ნაბიჯი

ვიდეო: Uber I2C LCD კონტროლერის მოდული: 6 ნაბიჯი

ვიდეო: Uber I2C LCD კონტროლერის მოდული: 6 ნაბიჯი
ვიდეო: LDmicro 14: I2C LCD & DS3231 Real-Time Clock (Microcontroller PLC Ladder Programming with LDmicro) 2024, ივლისი
Anonim
Uber I2C LCD კონტროლერის მოდული
Uber I2C LCD კონტროლერის მოდული
Uber I2C LCD კონტროლერის მოდული
Uber I2C LCD კონტროლერის მოდული
Uber I2C LCD კონტროლერის მოდული
Uber I2C LCD კონტროლერის მოდული

პრეამბულა

ეს ინსტრუქცია დეტალურად აღწერს როგორ შექმნათ HD44780 LCD დაფუძნებული კონტროლერის მოდული (სურათი 1 ზემოთ). მოდული საშუალებას აძლევს მომხმარებელს გააკონტროლოს LCD– ის ყველა ასპექტი პროგრამულად I2C– ზე, რომელიც მოიცავს; LCD და ეკრანი, კონტრასტი და უკანა შუქის ინტენსივობა. მიუხედავად იმისა, რომ Arduino Uno R3 გამოიყენებოდა მისი პროტოტიპისთვის, ის თანაბრად კარგად იმუშავებს ნებისმიერ მიკროკონტროლერთან, რომელიც მხარს უჭერს I2C- ს.

შესავალი

როგორც ზემოთ აღვნიშნეთ, ეს სტატია ასახავს I2C LCD კონტროლერის მოდულის შექმნას, ის უპირველეს ყოვლისა განკუთვნილი იყო როგორც დიზაინის სავარჯიშო იმის დასადგენად, თუ რამდენი დრო დასჭირდება პრაქტიკული სამუშაო PCB- ს შექმნას.

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

საწყისი კონცეფციის პროტოტიპიდან (სურათი 2 ზემოთ) დასრულებული, სრულად შემოწმებული PCB (სურათი 1 ზემოთ) სულ 5.5 დღე დასჭირდა.

რა ნაწილები მჭირდება? იხილეთ ქვემოთ მოცემული მასალების კანონპროექტი

რა პროგრამული უზრუნველყოფა მჭირდება?

  • Arduino IDE 1.6.9,
  • Kicad v4.0.7 თუ გსურთ შეცვალოთ PCB. წინააღმდეგ შემთხვევაში, უბრალოდ გაგზავნეთ 'LCD_Controller.zip' JLCPCB- ში.

რა ინსტრუმენტები მჭირდება?

  • მიკროსკოპი მინიმუმ x3 (SMT შედუღებისთვის),
  • SMD soldering რკინა (თხევადი ნაკადის კალმით და ნაკადის ბირთვით შედუღებით),
  • ძლიერი პინცეტი (SMT შედუღებისთვის),
  • სახიფათო pliers (წერტილი და snub ცხვირი),
  • DMM ხმოვანი უწყვეტობის შემოწმებით.

რა უნარები მჭირდება?

  • დიდი მოთმინება,
  • ხელით დიდი მოხერხებულობა და ხელის/თვალის შესანიშნავი კოორდინაცია,
  • შედუღების შესანიშნავი უნარი.

გაშუქებული თემები

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

ნაბიჯი 1: მიკროსქემის მიმოხილვა

მიკროსქემის მიმოხილვა
მიკროსქემის მიმოხილვა

ყველა ელექტრონიკის სრული მიკროსქემის დიაგრამა მოცემულია სურათზე 1 ზემოთ, ქვემოთ მოცემულ PDF– თან ერთად.

წრე შეიქმნა სტანდარტული PCF8574A I2C LCD კონტროლერის მოდულის ზუსტი შემცვლელი შემდეგი გაუმჯობესებებით;

  • I2C მომხმარებლის არჩევა 3v3 ან 5v თავსებადობა,
  • ციფრული კონტრასტის კონტროლი ან ჩვეულებრივი ქოთნის დაყენება,
  • ცვლადი უკანა შუქის ინტენსივობის შერჩევა კვარტული შემამსუბუქებელი ფუნქციის კონტროლით გლუვი გაცვენის მისაღწევად.

LCD ეკრანის კონტროლი

ეს არის სტანდარტული I2C LCD კონტროლერის მოდულის ფაქსიმილერი, რომელიც იყენებს PCF8574A (IC2) I2C– ს პარალელურ გადაყვანას.

ამის ნაგულისხმევი I2C მისამართი არის 0x3F.

3v3 ან 5v I2C თავსებადობა

3v3 ოპერაციისთვის შეესაბამება Q1, Q2 ROpt1, 2, 5 & 6, IC1, C2 და C2.

თუ საჭიროა 5 ვ ოპერაცია, მაშინ არ მოერგოთ 3v3 კომპონენტს, შეცვალეთ ისინი 0 Ohm რეზისტენტებით ROpt 3 და 4.

ციფრული კონტრასტი

კონტრასტის ციფრული კონტროლი მიიღწევა ციფრული პოტენომეტრის U2 MCP4561-103E/MS და C4, R5 გამოყენებით.

თუ საჭიროა ჩვეულებრივი მექანიკური პოტენომეტრი, მაშინ ის შეიძლება დამონტაჟდეს PCB, RV1 10K, U2, C4 და R5 ნაცვლად. იხილეთ BoM თავსებადი პოტენომეტრი.

J6 Jumper– ის გადალახვით, I2C მისამართი არის 0x2E. იგი მიიჩნევდა, რომ ნორმალური ფუნქციონირებისთვის ეს ხიდიანია.

ცვლადი უკანა შუქის ინტენსივობის შერჩევა

ცვლადი უკანა შუქის ინტენსივობა კონტროლდება LCD LED შუქის PWM მოდულაციით U1 pin 6 და ATTiny85 საშუალებით. სტანდარტული I2C LCD კონტროლერის R1 მოდულთან სრული თავსებადობის შესანარჩუნებლად, T1 R7 და T2 გამოიყენება +ve მიწოდების სარკინიგზო მოდულაციისთვის.

ამის ნაგულისხმევი I2C მისამართი არის 0x08. ეს არის მომხმარებლის არჩევა, შედგენის დროს U1 პროგრამირებამდე.

ნაბიჯი 2: PCB წარმოება

PCB წარმოება
PCB წარმოება
PCB წარმოება
PCB წარმოება
PCB წარმოება
PCB წარმოება
PCB წარმოება
PCB წარმოება

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

ამ შემთხვევაში შაბათს შუადღეს ვიფიქრე საწყის კონცეფციაზე და შაბათს საღამოს სურათი 1 დასრულებული მქონდა პროტოტიპი. ჩემი იდეა, როგორც აღვნიშნე, იყო I2C LCD კონტროლერის მოდულის საკუთარი ვარიანტის შექმნა, იდენტური ნაკვალევით, რომელიც გთავაზობთ LCD– ის სრულ პროგრამულ კონტროლს I2C– ზე.

სქემატური დიაგრამა და PCB განლაგება შემუშავებულია Kicad v4.0.7 სურათებით 2 და 3. ეს დასრულდა კვირა დღის მეორე ნახევარში და ნაწილები შეუკვეთეს ფარნელს და PCB აიტვირთა JLCPCB კვირას საღამოსთვის.

კომპონენტები ჩამოვიდა ფარნელიდან ოთხშაბათს, რასაც მოჰყვა PCB– ები JLCPCB– დან ხუთშაბათს (მე გამოვიყენე DHL მიწოდების სერვისი საქმის დასაჩქარებლად) სურათები 4, 5, 6 და 7.

ხუთშაბათისთვის საღამოს ორი დაფა (3v3 და 5v ვარიანტები) აშენდა და წარმატებით გამოსცადეს 4 -დან 20 -მდე LCD ეკრანზე. სურათები 8, 9 და 10.

საოცარი 5.5 დღე საწყისი კონცეფციიდან დასრულებამდე.

მე მაოცებს რამდენად სწრაფად JLCPCB– ს შეუძლია მიიღოს შეკვეთა, აწარმოოს ორმაგი ცალმხრივი PTH PCB და გაგზავნოს იგი დიდ ბრიტანეთში. ბუშტუკი 2 დღე წარმოებისთვის და 2 დღე მიწოდებისთვის. ეს უფრო სწრაფია ვიდრე გაერთიანებული სამეფოს დაფუძნებული PCB მწარმოებლები და ფასის მცირე ნაწილში.

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

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

პროგრამული უზრუნველყოფის სამი ძირითადი კომპონენტია საჭირო I2C LCD კონტროლერის მოდულის გასაკონტროლებლად;

1. LiquidCrystal_I2C_PCF8574 არდუინოს ბიბლიოთეკა

ხელმისაწვდომია აქ

გამოიყენება თქვენს Arduino ესკიზში LCD ეკრანის გასაკონტროლებლად.

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

2. MCP4561_DIGI_POT არდუინოს ბიბლიოთეკა

გამოიყენება თქვენს ესკიზში LCD კონტრასტის პროგრამული კონტროლის მიზნით

ხელმისაწვდომია აქ

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

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

ამ პროგრამული უზრუნველყოფის დეტალები მოცემულია ადრინდელ ინსტრუქციულ 'Smooth PWM LED Fading With the ATTiny85'

ამ შემთხვევაში იმისათვის, რომ შევინარჩუნოთ საბოლოო PCB ზომები იგივე, რაც ზოგადი LCD კონტროლერის მოდული, შეირჩა ATTiny85– ის SOIC ვარიანტი. სურათები 1 და 2 გვიჩვენებს, თუ როგორ იყო პროგრამირებული და ტესტირებული ATTiny85 SOIC პროტოტიპში.

ATTiny85- ში დაპროგრამებული კოდი იყო 'Tiny85_I2C_Slave_PWM_2.ino' აქ

დეტალების შესახებ, თუ როგორ უნდა შექმნათ თქვენი საკუთარი ATTiny85 პროგრამისტი, იხილეთ ეს ინსტრუქცია "პროგრამირება ATTiny85, ATTiny84 და ATMega328P: Arduino როგორც ISP"

ნაბიჯი 4: დიზაინის ტესტირება

დიზაინის ტესტირება
დიზაინის ტესტირება
დიზაინის ტესტირება
დიზაინის ტესტირება

დიზაინის შესამოწმებლად შევქმენი ესკიზი სახელწოდებით 'LCDControllerTest.ino', რომელიც მომხმარებელს საშუალებას აძლევს დააყენოს LCD კონკრეტული პარამეტრი პირდაპირ სერიულ ტერმინალურ კავშირზე.

ესკიზი შეგიძლიათ იხილოთ ჩემს GitHub საცავში I2C-LCD-Controller-Module

სურათი 1 გვიჩვენებს 5v I2C თავსებადი დაფის პრესს, რომელიც დამონტაჟებულია 4 -დან 20 -მდე LCD- ით და ნახატი 2 ნაგულისხმევი ჩვენებით საცდელი კოდის პირველად გაშვებისას.

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

  • #განსაზღვრეთ DISPLAY_BACKLIGHT_LOWER_VALUE_DEFAULT ((ხელმოუწერელი გრძელი) (10))
  • #განსაზღვრეთ DISPLAY_CONTRAST_VALUE_DEFAULT ((uint8_t) (40))

აღმოვაჩინე, რომ ეს კარგად მუშაობდა 4 -დან 20 -მდე LCD ეკრანით, რომელიც მე სათადარიგო მქონდა.

ნაბიჯი 5: დასკვნა

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

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

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

წრიული დიაგრამები ასევე შეიქმნა ტრეისერების მიერ და ხელით იქნა შედგენილი თქვენი დიზაინის შენიშვნებიდან. ასლები გაკეთდა ფოტო-სტატისტიკურად და ეწოდა "ლურჯი ანაბეჭდები". რადგან ისინი ყოველთვის ცისფერი იყო.

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

როგორც შემქმნელი იმ დროს, პროგრამული უზრუნველყოფის შემუშავების ინსტრუმენტების ჯაჭვის ღირებულება მხოლოდ ამკრძალავი იყო, თქვენ აუცილებლად იძულებული გახდით დაეტოვებინათ ექვსკუთხედი მნიშვნელობები პირდაპირ EPROM– ში (RAM/Flash, თუ ძალიან გაგიმართლათ) და შემდეგ საათობით გაატარეთ მიღებული ქცევის ინტერპრეტაცია. თქვენი კოდი აკეთებდა, თუ ის არ მუშაობდა როგორც მოსალოდნელი იყო (ცოტა 'wiggling' ან სერიული printf არის ყველაზე პოპულარული გამართვის ტექნიკა. ზოგი რამ არასოდეს იცვლება). თქვენ, როგორც წესი, უნდა დაწეროთ ყველა საკუთარი ბიბლიოთეკა, რადგან არცერთი არ იყო ხელმისაწვდომი (რა თქმა უნდა, არ იყო ინტერნეტის მსგავსი მდიდარი წყარო).

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

ყველა თქვენი დიაგრამა ხელით არის დახატული, როგორც წესი, A4 ან A3 და საფუძვლიანად უნდა იყოს გააზრებული, რაც მათ აძლევს სიგნალის ლოგიკურ ნაკადს მარცხნიდან მარჯვნივ. შესწორებები ჩვეულებრივ ნიშნავდა, რომ თქვენ გჭირდებათ ახალი ფურცლით დაწყება.

უმეტესწილად, თქვენი საბოლოო სქემა შემუშავდა veroboard– ის გამოყენებით მუდმივობისთვის და დამონტაჟებულია ABS– ის უბრალო დანართში, რათა მას მისცეს „პროფესიონალური შეხება“.

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

ის, რაზეც მხოლოდ ოცდაათ წელზე ადრე ოცნებობდით.

როგორ შეიცვალა ყველაფერი უკეთესობისკენ.

ნაბიჯი 6: გამოყენებული ცნობები

KiCAD სქემატური გადაღება და PCB დიზაინი

KiCAD EDA

Arduino ORG პროგრამული უზრუნველყოფის განვითარების ინსტრუმენტი

არდუინო

LiquidCrystal_I2C_PCF8574 არდუინოს ბიბლიოთეკა

Აქ

MCP4561_DIGI_POT არდუინოს ბიბლიოთეკა

Აქ

გლუვი PWM LED ქრებოდა ATTiny85– ით

Აქ

პროგრამირება ATTiny85, ATTiny84 და ATMega328P: Arduino როგორც ISP

გირჩევთ: