Բովանդակություն:

Օլեդ զարթուցիչ `8 քայլ (նկարներով)
Օլեդ զարթուցիչ `8 քայլ (նկարներով)

Video: Օլեդ զարթուցիչ `8 քայլ (նկարներով)

Video: Օլեդ զարթուցիչ `8 քայլ (նկարներով)
Video: Распаковка Nintendo Switch OLED и 5 лет опыта с первой версией... 2024, Հուլիսի
Anonim
Oled rmարթուցիչ
Oled rmարթուցիչ

Շատ arduino/ESP32 ժամացույցներ են պտտվում, բայց արդյո՞ք նրանք օգտագործում են այդ գեղեցիկ և փխրուն OLED- երը:

Արդեն որոշ ժամանակ է, ինչ փորձարկում եմ arduinos և ESP32 համակարգերը, բայց այդպես էլ չհասա պատրաստի արտադրանքի: Ես պատրաստել եմ զարթուցիչ 4 1.3 դյույմանոց միագույն OLED- ով: Theամացույցն ունի նաև անկողնային լուսամփոփ և USB լիցքավորման միակցիչ (ոչ ոք պահեստային վարդակներ չունի իր անկողնու կողքին): OLED- երը նույնպես թույլ են, սա ավելացվել է վերջին րոպեին այն բանից հետո, երբ իմ նախագիծը սպառնաց իմ ընկերուհու կողմից: Եթե ընկերուհու ձայնը բավականաչափ թույլ լինի, ես կարող եմ նաև տրամադրել ծածկագրի մի տարբերակ, որտեղ 3 դիսփլեյը աշխատում է որոշակի ժամերի միջև: Նպատակն էր հեշտ սպասարկելի ժամացույց պատրաստել ՝ «նախատիպից» դուրս տեսք ունենալով: Clockամացույցս պատրաստելիս ես հանդիպեցի որոշ դժվարությունների, որոնք ես պետք է լուծեի, այդ իսկ պատճառով կարծում եմ, որ այս ուսանելի առարկան արժե կիսել: Theամացույցը կարելի է պատրաստել փոքր գործիքներով, ինձ դուր չեն գալիս «իսկ հաջորդ քայլին ես օգտագործել եմ իմ 10.000 €/$ CNC գործարան» ձեռնարկները:

Որոշ բաներ, որոնք կբացատրվեն այս խրատական (կառուցվածքային ենթագրում) մեջ.

- Ինչպես օգտագործել/լարել I2C OLED էկրանը arduino/ESP32- ով

- Ինչպես օգտագործել բազմաթիվ I2C օբյեկտներ մեկ arduino/ESP32- ով

- Ինչպես կատարել «ոլորման ունակ» ընտրացանկ `օգտագործելով պտտվող կոդավորիչ (+ ինչպես օգտագործել կոդավորիչ ESP32/arduino- ով)

- Ինչպես նախագծել և պատվիրել անհատական PCB ՝ օգտագործելով սառեցումը:

- Theամացույցը նաև օգտագործում է RTC (իրական ժամանակի ժամացույց), առաջնորդվող վարորդ, լարվածության իջեցման մոդուլ… Ես դրանց մեջ չեմ մտնի, քանի որ իսկապես շատ տեղեկատվություն կա, որը մատչելի է այս մոդուլների համար:

Անկանում եմ նշել, որ ես պրոֆեսիոնալ ծրագրավորող չեմ: Իմ ուսանելի նպատակը վերը նշված կետերի բացատրությունն է: Այն, թե ինչպես եմ ես ամեն ինչ դնում իմ վերջնական արտադրանքի համար, գուցե ամենա մաքուր ճանապարհը չէ: Դա այն ճանապարհն է, որն ինձ թույլ տվեց հետևել այդ ամենին:

Պարագաներ

Պաշար գնելիս ես միշտ փորձում եմ կշռել որակի/փաստաթղթերի և գնի կարևորության համար: Իմ մատակարարումները A- ապրանքանիշերի և չինական ավելի էժան մասերի խառնուրդ են: Mouser- ը հիանալի մատակարար է, եթե որակը կարևոր է, ես պատվիրում եմ Banggood/Aliexpress- ից ավելի էժան մասերի համար:

- ESP32 տախտակ, ես օգտագործել եմ Huzzah32- ը adafruit- ից, բայց կան բազմաթիվ այլ (ավելի էժան) տարբերակներ: Ես ընտրեցի Huzzah32- ը, քանի որ այն շատ լավ փաստաթղթավորված է:

- 4 1.3 դյույմանոց I2C OLED դիսփլեյ (128x64, SH1106 վարորդով), 0.96 դյույմանոցները ավելի տարածված են, բայց այս նախագծի համար ես նախընտրում եմ 1.3 դյույմերը

- Sparkfun femtobuck վարորդ ՝ LED- ն քշելու համար

- RTC ժամացույց, ես օգտագործել եմ լիթիումի բջիջով մեկը

- Արդուինո նանո

-իգական USB 2.0 պորտ (ես օգտագործել եմ ՝ SS-52200-002 Stewart միակցիչից)

- իգական DC jack (ես օգտագործել եմ ՝ L722A Switchcraft- ից)

- 12V 3A DC ադապտեր (GST36E12-P1J միջին ջրհորից)

- Պատվերով PCB, ըստ ցանկության, բայց դա նախագիծը դարձնում է շատ ավելի կոմպակտ և հեշտ սպասարկելի, եթե մի մասը մեռնի + ավելի մեծ հուսալիություն, քանի որ ավելի քիչ լարեր (jlcpcb.com)

- M3 պտուտակներ և պտուտակներ

- M3 փողային ներդիրներ

- 12V- ից 5V- ի իջեցման մոդուլը Pololu- ից (DF24V22F5)

- 3 վտ հզորությամբ ջեռուցիչ

- Jumper լարերը

- Բզզոց

- I2C մուլտիպլեքսեր (TCA9548A ադաֆրուտից)

- 2 պտտվող կոդավորիչ (ես մի քանիսն եմ փորձել, ոչ բոլորն են աշխատում իմ ծածկագրով: «DFrobot» - ից աշխատում է, ինչպես նաև «DIYmore» - ի կլոր PCB- ով): Իմ կոդը կարծես կոճակի համար չի աշխատում KY-040 տիպի: Իմ զարթուցիչը օգտագործում է DIYmore- ի ժամացույցը, քանի որ դրանք շատ հեշտ է տեղադրվում վահանակի վրա (լրացուցիչ պտուտակներ/անցքեր չեն պահանջվում):

- Կանանց վերնագրերի տեսականի (ըստ ցանկության)

- փայտ շրջանակի համար `18 մմ x18 մմ x 2400 մմ

- Հետագծման թուղթ

Ես օգտագործեցի նաև որոշ գործիքներ (եռակցման սարք, 3 -րդ ձեռք, սղոց…), բայց իսկապես էկզոտիկ ոչինչ:

Քայլ 1: Օգտագործեք Oled- ը

Օլեդի օգտագործումը
Օլեդի օգտագործումը
Օլեդի օգտագործումը
Օլեդի օգտագործումը
Օլեդի օգտագործումը
Օլեդի օգտագործումը

OLED- երից օգտվելու համար պետք է տեղադրել գրադարան: Ես օգտագործում եմ Oli Kraus- ի U8G2lib- ը, այն շատ հասկանալի է և ունի ուղեցույց ուղեցույց հստակ օրինակներով:

Ձեր խորհուրդը (ESP կամ arduino) միացնելու համար պետք է գտնել SDA և SCL կապեր: Այս կապերը I2C հաղորդակցության կապում են: Google- ը ձեր հատուկ տախտակի «pinout» - ի համար, եթե դրանք չեք գտնում:

Ես ավելացրել եմ մի քանի օրինակ կոդ: Կոդն աշխատում է ինչպես arduino- ի, այնպես էլ ESP32- ի համար, սակայն ESP32- ի հիշողությունը քիչ հավանական է: Բոլոր օլանդները, որոնք ես մինչ այժմ փորձել եմ, աշխատում են ինչպես 3.3 վ (ESP32), այնպես էլ 5 Վ լարման միջոցով:

Քայլ 2: Բազմաթիվ OLED- ներ

Բազմաթիվ OLED- ներ
Բազմաթիվ OLED- ներ

Այստեղ է, որ իմ նախագիծը սկսում է տարբերվել բազմաթիվ այլ զարթուցիչներից: Արդուինոների/ESP- ների մեծ մասն ունի միայն մեկ կամ երկու I2C կապ: Այս տեսակը սահմանափակում է I2C մասերի օգտագործումը: Ի՞նչ անել, եթե ես ունեմ 4 I2C տվիչ և ցանկանում եմ դրանց ընթերցումները ցուցադրել I2C էկրանին: Մուտքագրեք մուլտիպլեքսերը: Muliplexer- ը թույլ է տալիս անդրադառնալ 7 տարբեր I2C մասերի: Սա թույլ է տալիս իմ ESP32- ին օգտագործել I2C իրական ժամանակի ժամացույց և ցուցադրել ժամանակը կրկին օգտագործելով I2C- ը 4 դիսփլեյների վրա (կամ ավելի, թույլ մի տվեք ձեզ կանգնեցնել):

Ես ավելացրել եմ ESP32- ի մի քանի օրինակ կոդ, այսուհետ ես վստահ չեմ, որ arduino- ն կարող է հետևել: Օրինակն օգտագործում է միայն ցուցադրումներ, այն կարող է լինել այլ բաներ, ինչպիսիք են I2C տվիչները և այլն: Սկզբունքը միշտ նույնն է, դուք ճիշտ ալիք եք անվանում «tcaselect (#);» - ով: գործառույթը, ապա դուք կատարում եք այն կոդը, որն անհրաժեշտ է ձեզ համար I2C օբյեկտի համար:

Քայլ 3. Պտտվող կոդավորմամբ ոլորվող ընտրացանկի ստեղծում

Պտտվող կոդավորմամբ ոլորվող ընտրացանկի ստեղծում
Պտտվող կոդավորմամբ ոլորվող ընտրացանկի ստեղծում
Պտտվող կոդավորմամբ ոլորվող ընտրացանկի ստեղծում
Պտտվող կոդավորմամբ ոլորվող ընտրացանկի ստեղծում
Պտտվող կոդավորմամբ ոլորվող ընտրացանկի ստեղծում
Պտտվող կոդավորմամբ ոլորվող ընտրացանկի ստեղծում

Առաջին հերթին, փորձեք ձեր կոդավորիչները: Ես ավելացրել եմ մի ծածկագիր ՝ ձեր կոդավորիչի մոդուլները ստուգելու համար: Ինչպես նշվում է պարագաներում. Seeիշտ կոդավորիչների համար տես վերևի նկարները:

Իմ օգտագործած գրադարանը սա է ՝

Իմ ավելացրած PDF- ը, հուսով եմ, օգնում է ճաշացանկի համար օգտագործած ճաշացանկի կառուցվածքին:

Կոդավորիչն աշխատելն ինձ համար ամենաբարդ մասն էր այս նախագծում: Կան բազմաթիվ տարբեր կոդավորիչներ և շատ տարբեր գրադարաններ, որոնք միշտ չէ, որ համատեղելի են ESP32- ի հետ: Բայց ես կարծում եմ, որ (աշխատող) պտտվող կոդավորիչը էլեգանտ լուծում է, եթե ցանկանում եք ինչ -որ բան մուտքագրել: Եթե ես միայն կոճակներ օգտագործեի, ինձ պետք կլիներ 1 -ից ավելին, և ժամանակը կարգավորելը կպահանջեր շատ սեղմումներ:

Քայլ 4. Նախորդ ծածկագիրը դնել Togetther

Նախորդ ծածկագիրը դնելով Togetther
Նախորդ ծածկագիրը դնելով Togetther

Վերնագիրը մի տեսակ ամփոփում է իմ արածը: Փորձեցի մաս առ մաս, իսկ հետո ամեն ինչ հավաքեցի: Բայց քանի որ երբեք հեշտ բան չկա, ես ստիպված եղա որոշ բաներ փոխել: Սերիական հաղորդակցությունը դանդաղ գործընթաց է: Սա խանգարում է կոդավորիչը ճիշտ ընթերցելուն: Դա հաղթահարելու համար ես ավելացումներ ավելացրի կոդավորողի կապում: Կոդավորիչը կարդալու կոդը անմիջապես կանչվում է, եթե կոդավորիչը հրում կամ շրջում եք:

Հասկանալով, թե ինչպես են կառուցված ընտրացանկը, դուք կգտնեք, որ շատ հեշտ է ավելացնել կամ հեռացնել հնարավորությունները ըստ ձեր ցանկության: Միգուցե կցանկանա՞ք ինտերնետից վերցնել ընթացիկ եղանակը կամ ժամանակը և ցուցադրել այն:

Ես շատ նման գաղափարներ եմ թողել, որովհետև ամենից առաջ ցանկանում էի հուսալի խաղաղություն: Մեկը, որը ինքնաբերաբար ոչինչ չի անում: Ես շատ տարօրինակ ժամեր եմ աշխատում ցերեկային խնայողության գոտում: Ամեն անգամ, երբ ժամը փոխվում է, ես նյարդայնանում եմ `քնելուց: Արդյո՞ք իմ հեռախոսն ինքնաբերաբար կփոխի ժամը: Արդյո՞ք իմ ժամացույցը: Դե, իմ ժամացույցը չի փոխվի, եթե ես ինքս այն չփոխեմ: Բայց երևի ուզում եք ժամացույցը խոհանոցում դնել: Տարբեր սցենար, ավելացրեք հնարավորություններ մինչև հիշողության ավարտը:

Քայլ 5: Պատվերով PCB Fritzing + Schematic- ով

Պատվերով PCB Fritzing + Schematic- ով
Պատվերով PCB Fritzing + Schematic- ով
Պատվերով PCB Fritzing + Schematic- ով
Պատվերով PCB Fritzing + Schematic- ով
Պատվերով PCB Fritzing + Schematic- ով
Պատվերով PCB Fritzing + Schematic- ով

Ուշադրության կետ. Ադաֆրութը նշում է, որ թեև կարող եք huzzah32- ը միացնել USB պինով, բայց պետք է զգույշ լինել, որպեսզի միաժամանակ չօգտագործեք միկրո USB հոսանքի մուտքը: Իմ PCB- ն սնուցվում է աստիճանաբար իջեցնելու միջոցով, որն այնուհետև սնուցում է huzzah- ն USB քորոցով: Այսպիսով, միշտ անջատեք արտաքին հոսանքը/վերբեռնելիս հեռացրեք հուզան տախտակից:

Ես որոշեցի PCB- ով զետեղել կանացի վերնագրեր, քանի որ դա հեշտացնում է մասի փոխանակումը կամ, օրինակ, լրացուցիչ I2C սենսոր ավելացնելը: Սա նաև թույլ է տալիս ինձ հեշտությամբ հեռացնել նանոն կամ ESP32- ը `ծրագրերը բեռնելու համար:

Ես ավելացրել եմ Frizting ֆայլը, կարող եմ այստեղ վեպ գրել, բայց կարծում եմ, որ օրինակը ամենալավն է խոսում: Ես սկսեցի ամբողջ տեղադրման սխեմատիկայից: Թեև Ֆրիտզինը իր դարակներում շատ մասեր ունի, ամեն ինչ չէ, որ այնտեղ է: Երբեմն ինտերնետում կարող եք գտնել Fritzing- ի մասը, երբեմն ՝ ոչ: Այն մասերը, որոնք ես չէի գտնում, պարզապես փոխարինեցի կանացի վերնագրի մասով: Եթե աջ սեղմեք դրա վրա, կարող եք վերնագիրը խմբագրել ձեր ուզած կապանքների չափով և դրան պինուտ նշանակել: Ես դա անում էի ամեն մի հատվածով, որը չէի գտնում: Քանի որ գրեթե բոլոր մոդուլներն օգտագործում են 0.1in (2.54 մմ) նույն սկիպիդարը, դա ձեզ կտրամադրի մասի ճիշտ հեռավորությունը:

Հաջորդը անցնում եք ցնցող ծրագրի PCB տեսքին: Տեղադրվելու է PCB, եթե սեղմում ես դրա վրա, կարող ես սահմանել դրա չափը և ընտրել մեկ կամ երկշերտ PCB: Իմը օգտագործում է 2 շերտ: Fritzing- ը կառաջարկի ձեր կապերը սխեմատիկ տեսքով: Hasրագիրը ունի autoroute տարբերակ, բայց ես երբեք չեմ օգտագործում այն: Ես սիրում եմ ձեռքով կազմակերպել իմ կապերը: PCB- ի տեսքով դեղին կապերը գտնվում են վերին շերտում, նարնջագույնը `ներքևի շերտում: Կրկին, եթե սեղմեք կապի վրա, կարող եք ընտրել դրա հատկությունները:

Փաստացի PCB պատրաստելու համար այն պետք է արտահանել որպես gerber ֆայլ: Նախքան դա անելը, «երթուղայնացում» ներդիրի ներքո կարող եք ստուգել նախագծման կանոնները: Եթե ամեն ինչ ստուգվի, կարող եք սեղմել «արտահանման համար PCB- ի համար»: Արտադրողների մեծ մասը կխնդրի gerber ֆայլ, այնպես որ ընտրեք արտահանումը gerber:

Ես պատվիրեցի իմ PCB- ն JLCPCB- ից, ինձ դուր է գալիս, որ նրանք ձեզ անմիջապես գին են նշում: Իհարկե, կան շատ այլ տարբերակներ:

Սխեմատիկայի մասին. Օգտագործվում է 2 լարման: LED- ն և femtobuck- ը ուղղակիորեն սնուցվում են 12 Վ լարման միջոցով: Մնացածը սնուցվում է 5 վոլտ հզորությամբ աստիճանավանդակի միջոցով:

Քայլ 6: Դիզայն + լազերային կտրիչ

Դիզայն + լազերային կտրիչ
Դիզայն + լազերային կտրիչ
Դիզայն + լազերային կտրիչ
Դիզայն + լազերային կտրիչ

Իմ առաջին դիզայնի համար ես փորձեցի օգտագործել ամուր կաղնու (ես հետևում եմ փայտամշակման դասերին), բայց արագ պարզ դարձավ, որ սա իդեալական չէ: Փայտը չափազանց հաստ է, ինչը դժվարացնում է ձեր մասերը տեղավորելը: 3 մմ կեչու մուլտիպլեքսը թույլ է տալիս ավելի հեշտ ճանապարհներ ապահովել կոդավորողներն ու դիսփլեյները:

Ես գտա առցանց լազերային ծառայություն ՝ snijlab.nl, որը հասանելի է Ռոտերդամում գտնվող հոբբիստների համար (նրանք առաքում են Բելգիա, Նիդեռլանդներ և Գերմանիա): Նրանց կայքում դուք կարող եք վերբեռնել ձեր գծագրերը, և նրանք անմիջապես մեջբերում են ձեր գինը: Ես օգտագործել եմ Autocad- ը, որն ունեմ աշխատավայրում, բայց ծրագրային ապահովումն իրականում նշանակություն չունի: Այն պարզապես պետք է լինի վեկտորային նկարչություն (Vectr, Illustrator, Inkscape…): Խանութների մեծ մասն օգտագործում է գույները `որոշելու, թե ուզում եք կտրել կամ փորագրել:

Որոշ բաներ, որոնք պետք է հիշել.

- Մաքս լազերահատի չափերը (շրջանակ եմ նկարել մասերիս շուրջը)

- Մին. կտրվածքների միջև հեռավորությունը

- Համոզվեք, որ ոչ մի երկկողմանի գծեր չեք գծի, լազերը լրացուցիչ փոխանցում կկատարի ՝ ձեզ ավելի թանկ արժենալով:

- PDF- ին գծագրելիս համոզվեք, որ գծում եք 1: 1: Դուք չեք ցանկանում նվազեցնել կամ տեղավորվել թղթի վրա:

Քայլ 7: Հավաքում

Ժողով
Ժողով
Ժողով
Ժողով
Ժողով
Ժողով

Ես ժամացույցը կառուցեցի փայտե շրջանակի շուրջ, վահանակները տեղում պահված են M3 պտուտակներով և ներդիրներով շրջանակում: Եթե ես երբևէ 2 -րդ տարբերակ կառուցեմ, ես վահանակներին ամրացնելու համար կօգտագործեի ալյումինե «L» պրոֆիլներ: Շատ դժվար էր ճշգրտորեն փորել փողային ներդիրների անցքերը: Դա ինձանից շատ երկար տևեց, պարզապես ընդունելի արդյունքի հասնելու համար: Սա, իհարկե, կնշանակի, որ լազերային կտրված նկարը պետք է վերանայվի: Կարծում եմ, որ ալյումինե պրոֆիլներով և պտուտակներով ավելի լավ արդյունք կունենաք:

Լույսը ավելի լավ ցրելու համար ես սոսնձել եմ հետագծման թուղթ անցքերի ներսում: Սա լույսին տալիս է գեղեցիկ փայլ:

Քայլ 8: Մի կանգ առեք այստեղ

Մի կանգնիր այստեղ
Մի կանգնիր այստեղ
Մի կանգնիր այստեղ
Մի կանգնիր այստեղ
Մի կանգնիր այստեղ
Մի կանգնիր այստեղ

Նախագիծը կենտրոնանում է ESP32- ի շուրջ, ես հազիվ եմ օգտագործել այն: Իմ ննջասենյակի լույսերը ներկայումս կարող են հեռակառավարվել ՝ օգտագործելով blynk: Theամացույցով նրանց կառավարելը միայն մի փոքր քայլ է առաջ: Միգուցե ուզու՞մ եք լրացուցիչ էկրաններ, որոնք ցույց կտան ձեր տան ջերմաստիճանը: Կամ որոշ տեղական տվիչներ (այդ մուլտիպլեքսերի վրա դեռ պահեստային I2C միացումներ կան): Միգուցե ժամացույցը/ազդանշանը սահմանե՞լ ծրագրի և bluetooth- ի միջոցով:

Թույլ տվեք իմանալ, թե ինչ փոխեցիք, ինչ կփոխեիք, ինչը ես պետք է փոխեի…

Խորհուրդ ենք տալիս: