Trumpa priešistorė – gyvena sau toks kelio užtvaras, Šlagbaumas vardu. Came gamybos. Ir turi jis krūvelę pabiručių, Came pultelių. Ir vat reikalas tame, kad iš pastato su stikliniais langais tas Came pultelis visiškai atsisako bendrauti su Šlagbaumu. Matomai stikluose per daug švino . O ir atstumas toks jau sakyčiau ribinis tam pulteliui net atviroje vietoje – 55 metrai. Vat ir sugalvojome, kad pabandysime pykštelėti į žvirblį iš patrankos – paleisime komunikaciją per kokį nors LoRa moduliuką, kurie atviroje vietoje ryšį laiko bent 5 kilometrus. Taip taip, kilometrus. Nors ne, 5000 metrų. Po paieškų ir patarimų pasirinkau Reyax RYLR998 moduliuką.
Tyčia įdėjau vaizdą iš Interneto, kur matosi kažkieno pirštai – taip, jis toks mažiukas ! O va čia kaip jis atrodo iš abiejų pusių:
Komunikacijai reikės dviejų. Iš AliExpress beveik niekada neperku elektronikos, nes dažniausiai būna kokie tai padirbiniai/klonai/neveikiantys, eiliniai naudojami tiekėjai (Digis, TME, Mouser ir t.t.) neturėjo, tai teko pirkti iš vokiško Mirifica GmbH. Keisčiausia, kad minimalus užsakymo kiekis 3 vienetai. Nežinau kokių laidų izoliaciją jie ten rūko, bet blyn, kodėl 3 ? Reikia tai dviejų. Nu bet tiek to, panaudosiu tą trečią kokiems eksperimentams, o visi trys su atsiuntimu pakainavo 55,66 €. Taigi, turiu transyverius (t. y. siųstuvą/imtuvą), bet jie patys vieni nelabai ką moka. Pradžiai išsinagrinėjau RYLR998 aprašymą, pasirodo, jis valdomas AT komandomis. Taigi, gera proga pasižaisti su tom AT komandomis, nes dar neteko. Kad jau bus šiek tiek naujovių, tai sugalvojau imti dar nečiupinėtą valdiklį Attiny1614. Man labiausiai patiko, kad komunikacija daroma vienu laidu/kontaktu. O kadangi UPDI palaikymas yra standartiškai įdiegtas moderniuose Microchip AVR mikrokontroleriuose, ypač naujausiose tinyAVR ir megaAVR šeimose – manyčiau visuose ateities projektuose pradėsiu naudoti valdiklius tik su UPDI. Valdiklio programavimui naudosiu UPDI Friend iš Adafruit. Taigi, turime pagrindines detales, bet jų bus daugiau – Šlagbaume gyvens, vadinamas, imtuvas. Turi atlaikyti lauko temperatūras, maitinimas ten vos ne 30V ir nebūtinai DC (čia kalbant bendrai apie šlagbaumus, nes dažniau 24VAC būna). O siųstuvas, kurį maigysime, turėtų būti maitinamas nuo vidinės baterijos. O baterija tai norėtųsi Ličio, tai dar reiks ir krovimo valdymo schemos bei nusėdusios baterijos indikavimo. Ir gal dar pakeliui kažką sugalvosiu. Galvoju daryti vieną PCB abiem atvejams, tik pagal paskirtį sudėti tuos elementus, kurių reikia. Pradedam nuo bendros dalies – valdiklis ir transyveris.
Štai, čia gyvena mūsų valdikliukas, šalia prijungtas RYLR998 transyveris. Po valdikliu – programavimo jungtis. Trumpiklis SJ1, pagal idėją, bus naudojamas, kad valdiklis žinotų ar jis gyvena Šlagbaumo schemoje, ar siųstuvo. Mygtukas SW1 turėtų būti skirtas RYLR998 konfigūracijos surašymui. O jo reikia, nes RYLR998 turi savo konfigūraciją, kuri gyvena nuolatinėje atmintyje (t. y. išjungus maitinimą, nustatymai nedingsta). Ir gal būtų galima daryti tą inicializaciją kiekvieną kartą įjungus maitinimą, bet atminties rašymo ciklų yra tik 200 000, tai ilgainiui gali ir baigtis, o rašant konfigūraciją tik kai kas nors atsitinka ir ji pradingta, paspaudus mygtuką – turėtų taupytis ciklai ir ne taip greitai degraduoti atmintis. LED4 – indikacinis LED, ką nors indikuos . Ir tiek tos bendrosios dalies.
Toliau paprastesnė dalis – imtuvas.
Šlagbaume bus 24VAC, todėl maitinimo schema turi diodinį tiltelį. Kad jau turime DC, su DC/DC impulsiniu konverteriuku Traco Power TSR 1-2433E gaminame 3,3V visos schemos maitinimui. Taip atsiranda galimybė maitinti schemą nuo panašiai 7VDC iki 36VDC ir turėti gražius 3,3V prie 1A. Išmanantys prisikabins – o pagal aprašymą tam TSR 1-2433E tai nereikia kondensatorių ! Taip taip, nereikia, šitie liko nuo prieš tai naudoto DC/DC konverterio, tam reikėjo. O palikau, nes po keramikiuką abiems galams visai nekenks. Taigi, Šlagbaumas pasikelia, sujungus du kontaktus jo kontaktinėje kaladėlėje. Fiziškai tą padaryti turės mikro-rėlė TQ2-3V. Ji turi daug kontaktinių grupių, tai gali daugiau kažką sujungti ar atjungti, mes, kol kas, naudosime tik vieną. Relė maitinama 3V, bet 3,3V irgi puikiai tiks, kontaktai išvesti į kaladėlę J4. Diodas D1 skirtas apsaugoti nuo indukuotos įtampos relės išjungimo metu, tranzistorius Q2 – relės įjungimui. Jis, per užtūros rezistorių R8, prijungtas prie valdiklio. Ir čia viskas, ko reikia Šlagbaumo daliai.
O vat su siųstuvu bus daugiau reikalų.
Pradėkime, kaip visada, iš kairės į dešinę. U3 – USB-C tipo lizdas. Nežinau, kodėl jį pažymėjo kaip U, tipo mikroschema. Pamiršau/patingėjau taisyti. Naudojami tik 5V maitinimo kontaktai, be srovę nustatančių rezistorių. Toliau U1 – vienos celės ličio baterijų krovimo valdiklis MCP73831T-2ATI/OT. Mažiukas, geras, paprastas, bet darantis tai, ko reikia – naudoju ir pasiteisinęs dalykas. Krovimo srovė ir krovimo pabaigos srovė nustatomi rezistoriumi R4, todėl čia naudojau 0,5% tikslumo rezistorių. Prie 2,5 kΩ kraus 400 mA srove ir sustos, kai srovė nukris iki 80 mA. LED 1 ir LED 2 indikuoja krovimo eigą (raudonas) ir krovimo pabaigą (žalias). Toliau V_BAT kontaktas, čia prijungtas baterijos pliusas. Toliau kontaktinė kaladėlė prijungti pultelio mygtuką, pavadinimu Big Red Button. Vėliau suprasite kodėl . Po kaladėle yra mikroschema U5, TCK106AF,LF, fainas, mažiukas skaitmeninis jungiklis. Jo paskirtis bus tokia – paspaudus didelį raudoną mygtuką, schema gauna maitinimą, valdikliukas užsikuria, pradeda siuntinėti duomenis, ir vat, kad jis turėtų tą maitinimą nors gal pats mygtukas jau nepaspaustas – valdiklis įjungia U5 ir laiko maitinimą pats sau, kol baigs visus duomenų mainus su Šlagbaumo moduliu. Toliau mikroschema U4 yra LTC3531ES6-3.3#PBF. Jos paskirtis tokia – RYLR998 maitinimas negali viršyti 3,6V, kai tuo tarpu mes visi žinome – pakrautos Ličio baterijos įtampa 4,2V. Vat dėl šito 0,5V viršijimo pridėjau dar DC/DC konverteriuką, kad iš baterijos įtampos, net jeigu ji išsikrovus iki 1,8V turėti stabilius 3,3V valdikliui ir RYLR998. Buvo galima tą 0,5V „nugarinti” diodu, bet jis garintų ir mažesnes įtampas tais pačiais 0,5V, o aš, nors ir ne suvalkietis, bet pagailėjau prarasti tiek elektros
ir dar maitinimas sumažėtų schemai, išsikraunant baterijai, o dabar viskas stabilu ir visi patenkinti šypsosi. Ir paskutinė mikroschema, U2 – LTC1998IS6#TRPBF. Jos paskirtis – indikuoti raudonu LED, kad baterija jau išsikrovė. LED valdymas „pastiprintas” tranzistoriumi, nes tos mikroschemos išėjimas toks labai skystas. Suveikimo, tai yra raudono LED uždegimo slenkstis nustatomas R2, R6 rezistoriais. Skaičiavau lygiai taip, kaip rekomenduojama aprašyme, tai nesikartosiu. Naudojau 1% tikslumo rezistorius, tai suveikimo slenkstis, kaip ir aprašyme, turėtų būti 2,849 V.
Vat ir aptarėme pagrindinius schemos komponentus, dabar juos galima sujungti į krūvą ir gauti pilną schemą:
Tiesa, jeigu kartais kiltų mintis ar klausimas – kodėl užrašai anglų kalba, viskas čia paprasta, man techninė kalba yra anglų, todėl tiek schemose, tiek ir programuodamas, rašau angliškai. kartais papuola parašyti lietuviškai, bet čia labiau išimtis, o ne taisyklė, daugiausia būna angliškai. Neaptarėme tik „Prototyping area” – sugalvojau, kad noriu turėti nedidelę vieta ant PCB, kur jau bus prigaminta skylių išvadiniams komponentams, jei kartasi reiktų schemą papildyti ar taisyti, va štai jums ir prašom, iš karto bus tam vietos. Dabar jau matosi bendras vaizdas, ir kaip valdiklis valdo savo maitinimo palaikymą, ir kaip jungia relę, ir kaip žybsi geltonu LED, kuris yra tame pačiame korpuse su raudonu LED. Sekantis darbas PCB braižymas, o tam būtina turėti korpusą. Imtuvui Šlagbaume tas nėra aktualu ,ten PCB gali būti bet kokia, o vat siųstuvas su mygtuku tai turėtų būti kokiame nors korpuse. Ir čia išlenda yla iš maišo, o didelis raudonas mygtukas iš dėžutės:




Naudosime EATON gamybos FAK-R/KC11/I pramoninį, visaip kaip atsparų vandalizmui, spardymui ir trypimui kojomis mygtuką/grybuką. Kodėl toks mygtukas ? Ogi todėl, kad tiems Came pulteliams neveikiant, visi labai mėgsta mygti mažiuką pultelio mygtuką iš visos sveikatos, lyg stipriau paspaudus jis galingiau transliuoti pradės, o kadangi pultelis vis tiek nesugeba atidaryti vartų per tokį atstumą/langą – spaudžia, kol pirštas kiaurai pultelį išlenda… Žodžiu. Naujojo pultelio viduje yra du jungikliniai moduliai, vienas normaliai sujungtas, kitas normaliai atjungtas. Normaliai sujungtas eina pailsėti į stalčių, o normaliai atjungtas dar pagyvens korpuse, tik persegtas į vidurį. O aplink jį turėtų įsidėti PCB. Per kurį nors korpuso šoną reiks išvesti USB-C ir LED indikatorius. Vat ir turime minčių, kaip turi atrodyti PCB.
Čia taip sudėlioti komponentai, kad bendros detalės yra apatinėje dalyje, siųstuvo detalės yra dešinėje pusėje, o imtuvo detalės yra kairėje pusėje. Taip yra, nes siųstuve, t. y. mygtuko korpuse, kairėje pusėje puikiai telpa 18650 ličio baterija. Aišku vėliau supratau, kad RYLR998 modulis kiek trukdo, bet ne kritiškai, tai paliekam taip, kaip yra. Ir šiek tiek 3D vaizdų:





Pavyko sudėlioti visus komponentus vienoje PCB pusėje, tai prie PCB gamybos užsakiau ir litavimo pastos šabloną, žymiai supaprastėjo komponentų litavimas ant plokštės. Ir štai kaip plokštė atrodo gyvai:


Tiek vietos apie U1 palikau tyčia, ta mikroschema yra akumuliatoriaus krovimo valdiklis, kaistantis dalykas, todėl mikroschema sėdi and didelių vario plotų, dėl geresnio aušinimo – per kojytes atiduos šilumą vario sluoksniui ir tada į aplinką. Plikos PCB jau turi visus reikiamus komponentus, teks pradėti rašyti programą. Kadangi Attiny1614 per UPDI Friend’ą dirba su Arduino, tai ir visą programą sumečiau Arduino aplinkoje, galvoju, bus lengviau kitiems Arduinistams su tuo jų pseudo C adaptuotis programą savo naudoms. Taigi, programos logika bus tokia… Gavės maitinimą, valdiklis pirma pasitikrina, kurioje PCB jis gyvena. Jeigu tai siųstuvas, tai pradedam daryti siųstuvo programą, jeigu tai imtuvas, tuomet darom imtuvo programą. Dar tuo pačiu valdiklis laukia, jeigu paspaustas RYLR998 programavimo mygtukas – automatiškai praskanuoja standartinius komunikacijos greičius, aptinka tą, kuriuo bendrauja RYLR998 ir surašo į RYLR998 mums reikiamą konfigūraciją. Siųstuvo programos dalis, gavusi maitinimą nuo trumpo didžiojo mygtuko paspaudimo įjungia ir laiko schemos maitinimą, išsiunčia komandą atidaryti Šlagbaumą ir palaukia, kol imtuvas atsako, kad informaciją gavo ir vykdo komandą. Jeigu viskas gerai, pamirksi geltonu LED tris kartus. Jeigu atsakymo nėra – vienas ilgesnis mirktelėjimas. Imtuvas, savo ruoštu kas sekundę mirksi indikaciniu LED (raudonas, SMD), tik tam, kad iš karto matyčiau, ar dar veikia valdiklis. Kadangi imtuvo maitinimas neapribotas baterijos turimu energijos kiekiu – jis veikia visada, laukia, kada gaus komandą atidaryti šlagbaumą ir po to išsiunčia atsakymą, kad komanda gauta. Kažkaip taip vat :).
Surenkam iki galo schemą, suprogramuojam, pajungiam maitinimus ir darom bandymus:



Matosi plonas laidelis – pamiršau RYLR998 reset signalą prijungti prie valdikliuko, tai laiduku… Čia reiktų pasakyti, kad programa iš pradžių neveikė, strigau ties RYLR998 konfigūracijos įrašymu, bet labai padėjo paprastas loginis analizatorius, pasižiūrėjus kokie duomenys vaikšto iš karto tapo lengviau sutvarkyti veikimą. Finale beveik viskas veikė, nesuveikdavo tik trys trumpi mirktelėjimai, reiškiantys, kad komanda gauta. Tai paėmiau ir nuo nulio perrašiau programą, truputį kitaip, sakyčiau išėjo gražiau, delikačiau ir elegantiškiau, ir – viskas pavyko. Veikia teisingai. Sumontavom į Šlagbaumą ir pradėjau bandymus. Visą dieną atidirbo, maigėm ir kai reikėjo, ir kai nereikėjo. Ir nustojo veikti. Atsidarėm – indikacinis LED nemirksi, net nešviečia… Nu va, galvoju aš, sudegė. Nusiminiau visas… Bet ant stalo pajungiau ir pats nesitikėjau – LED pradėjo mirksėti, reiškia valdiklis gyvas. Ir blemba, netikėlis, reaguoja į mygtuką, tai viskas kaip ir veikia. Tai ko jis ten užsi… Priežasties, žinoma, tiksliai nežinau, bet galvoju, kad buvo taip – Šlagbaume aplink ten daug elektronikos, dar GSM modulis, kad skambučiu atidarinėti, plius didelis DC variklis, turbūt šepetėlinis, plius DC/DC valdiklis maitinamas 29VDC, vienu žodžiu gal kažkur praslydo koks trukdis ar kas ir pakabino valdikliuką, jis ir pastrigo vargšas. Atjungus maitinimą ir pajungus vėl – persikrovė ir veikai toliau. Todėl pridėjau dar programinę savikontrolę, watchdog’ą, kad programai užstrigus valdikliukas būtų automatiškai perkraunamas, intervalas 2 sekundės. Pabandžiau, perkrovimas veikia. O vat tą originalų DC/DC keitiklį, kurio maksimali įtampa 28VDC pakeičiau į jau minėtą TSR 1-2433E, kurio maksimali įtampa 36 VDC. Toliau tik laikas parodys, ar „išradimas” veikia.
O mygtukas viduje atrodo va taip:






Schemos ir plokštės failiukai EasyEDA programai yra čia, o čia programa Arduino aplinkai. Ją truputį pakeičiau, kad nebūtų toks pat kodas ir nesidarinėtų Šlagbaumas, jeigu kuris pabandys paeksperimentuoti. Po to nepatikrinau, ar kodas kompiliuojasi, bet jei ką klaidelės bus labai nedidelės ir lengvai pataisomos.
2026.03.16
Man nebuvo aktualu, bet truputį papildžiau schemą. Reikalams tame, kad USC-C lizdai dažnai nėra užmaitinti, jeigu neprijungtas teisingas kabelis ar prietaisas. Tas neaktualu, jeigu kraunama nuo USB-A tipo lizdo, su kabeliu iš USC-A į USB-C perėjimu. Bet norint naudoti USB-C/USB-C kabelį, jai reikia, kad kraunantis USB-C lizdas „matytų ir žinotų”, kad laikas paleisti elektronus į laisvę. Paprasčiausias būdas – CC1 ir CC kontaktus, per 5,1 kΩ 1% rezistorius prijungti prie žemės (GND), taip ir padariau, nors įkeltos schemos neatnaujinau.
2026.03.17
Su esama maitinimo grandine šlagbaumo modulis veikė nestabliai. Pažiūrėjus oscilografu pasimatė kodėl – po tiltelio turim labai pulsuojantį DC, matomai 22 µF keramikiuko neužtenka išlyginimui. Keisčiausia, kad veikiant moduliui, įtampa sėda tiek, kad atsijungia valdikliukas, dėl to nesuveikia atidarymo funkcija. Pabandymui „prisegiau” 470 µF x 35 V elektrolitą ir, manyčiau, įsikraudamas jis iškirto 2A greitą saugikliuką. Tą vietą sutvarkius, oscilografas parodė, kad pulsacijos dingo, įtampa lygi kaip styga. Bet oscilografuodamas pamačiau, kad įtampa ant kondensatoriaus yra truputį 35-36V, tokia ribinė, pabandymui kaip ir OK, bet ilgalaikiam naudijimui netinka. Todėl finale kondensatorių pakeičiau į vieną iš turėtų – 220 µF 63V. O schemą papildžiau EEH-ZU1H221P (220 µF 50V polimeras) ir pakeičiau saugiklį į 0680L2000-05 (2A lėtas). Ir išmečiau tą „Prototyping area” – kad kondensatorius lengvai tilptų.







