Სარჩევი:
- ნაბიჯი 1: მიკროსქემის მიმოხილვა
- ნაბიჯი 2: PCB წარმოება
- ნაბიჯი 3: პროგრამული უზრუნველყოფის მიმოხილვა
- ნაბიჯი 4: დიზაინის ტესტირება
- ნაბიჯი 5: დასკვნა
- ნაბიჯი 6: გამოყენებული ცნობები
ვიდეო: Uber I2C LCD კონტროლერის მოდული: 6 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:17
პრეამბულა
ეს ინსტრუქცია დეტალურად აღწერს როგორ შექმნათ 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 წარმოება
როგორც უკვე აღვნიშნეთ, ეს ინსტრუქცია იყო სავარჯიშო, რომლის მიზანია განისაზღვროს რამდენი ხანი დასჭირდება დიზაინის დასრულებას (რომელსაც პრაქტიკული დანიშნულება ჰქონდა).
ამ შემთხვევაში შაბათს შუადღეს ვიფიქრე საწყის კონცეფციაზე და შაბათს საღამოს სურათი 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
გირჩევთ:
თითის ანაბეჭდის მოდული + STONE TFT-LCD: 3 ნაბიჯი
თითის ანაბეჭდის მოდული + STONE TFT-LCD: ამ თვეში მე ვგეგმავდი თითის ანაბეჭდის კარის საკეტის პროექტის შემუშავებას. როდესაც თითის ანაბეჭდის იდენტიფიკაციის მოდული შევარჩიე, პროექტი შეჩერდა. თუმცა, მე ვფიქრობდი, რომ მას შემდეგ, რაც თითის ანაბეჭდის იდენტიფიკაციის მოდული შეიძინა, მე გავამარტივებ
I2C / IIC LCD ეკრანი - გამოიყენეთ SPI LCD I2C LCD ეკრანზე SPI to IIC მოდულის გამოყენებით Arduino– ით: 5 ნაბიჯი
I2C / IIC LCD ეკრანი | გამოიყენეთ SPI LCD I2C LCD ეკრანზე SPI to IIC მოდულის გამოყენებით Arduino: გამარჯობა ბიჭებო, რადგან ჩვეულებრივ SPI LCD 1602 -ს აქვს ძალიან ბევრი მავთული დასაკავშირებლად, ამიტომ არდუინოსთან დაკავშირება ძალიან რთულია, მაგრამ არსებობს ერთი მოდული ბაზარზე, რომელსაც შეუძლია გადააკეთეთ SPI დისპლეი IIC ეკრანად, ასე რომ თქვენ გჭირდებათ მხოლოდ 4 მავთულის დაკავშირება
1602 LCD კლავიატურის ფარის მოდული I2C ზურგჩანთით: 6 ნაბიჯი
1602 LCD კლავიატურის ფარის მოდული I2C ზურგჩანთით: უფრო დიდი პროექტის ფარგლებში, მინდოდა მქონოდა LCD დისპლეი და კლავიატურა რამდენიმე მარტივი მენიუს ნავიგაციისთვის. მე Arduino– ზე ბევრ I/O პორტს ვიყენებ სხვა სამუშაოებისთვის, ამიტომ მინდოდა I2C ინტერფეისი LCD– ისთვის. ამიტომ ვიყიდე რაღაც ტექნიკა
I2C / IIC LCD ეკრანი - გადააკეთეთ SPI LCD I2C LCD ეკრანზე: 5 ნაბიჯი
I2C / IIC LCD ეკრანი | გადააკეთეთ SPI LCD I2C LCD ეკრანზე: spi LCD ეკრანის გამოყენებას ძალიან ბევრი კავშირი სჭირდება, რის გაკეთებაც ძნელია, ასე რომ ვიპოვე მოდული, რომელსაც შეუძლია i2c LCD– ის spi LCD– ზე გადაყვანა, ასე რომ დავიწყოთ
TCA9548A I2C მულტიპლექსერული მოდული - არდუინოსა და კვანძთან ერთად MCU: 11 ნაბიჯი
TCA9548A I2C მულტიპლექსერული მოდული - არდუინოსთან და NodeMCU– სთან: ოდესმე მოხვედით სიტუაციაში, როდესაც მოგიწევთ ორი, სამი ან მეტი I2C სენსორის მიერთება თქვენს Arduino– ზე მხოლოდ იმის გასაგებად, რომ სენსორებს აქვთ ფიქსირებული ან იგივე I2C მისამართი. უფრო მეტიც, თქვენ არ შეგიძლიათ გქონდეთ ორი მოწყობილობა ერთიდაიგივე მისამართით იმავე SDA