DIN rail Arduino klonas (techninė įranga)

25 02 2014

Paskutiniai du projektai su kuriais dirbu paskatini sukurti valdiklio techninę įrangą kurią būtų patogu naudoti įvairiais tikslais. Arduino įvairiais variantais yra super reikalas, bet ne visada patogu dėlioti laidukus pajungiant įėjimus bei išėjimus, tenka ieškoti rėmo jam ir panašiai. Taip dažnai iškyla kaina nes reikia pirktis pati Arduino, kelis skydelius jam.. Taigi kodėl nepadarius kažko universalaus, o kas yra labiau universalu nei DIN bėgiuose montuojami moduliai? Pristatau savo naujausia gaminį:

IMG_7687

Nuotrauka gal nelabai informatyvi, tad parašau viska iš eilės. Šiuo atveju mygtukai dar neturi lipdukų su funkcijomis, bet jos juk  priklauso nuo programos 🙂

Specifikacija

Mikrovaldiklis: naudoju Atmega328P su Arduino UNO bootloaderiu viduje. Tai reikškia kad įrenginys veikia 16MHz dažniu, programuojamas per Serial TTL sąsają (jungti PCB viduje) ir turi 31kB atminties programai, 2kB RAM bei 512B EEPROM.

Įėjimai: viso 8 įėjimai iš kurių 4 gali būti naudojami kaip analoginiai įėjimai, 2 gali priimti išorinius įvykius (interupts). Originaliame Arduino įėjimai yra susieti su A0, A1, A2, A4, D2, D3, D4 ir D5 elektrodais. Įėjimams pajungti skirtos išorinės aštuonios 3-pin jungtis su išsidėstymu “IN-VCC-GND”. Techniškai šios jungtys gali būti naudojamos ir kaip 5V lygio mažos galios išėjimai.

Išėjimai: Viso 8 išėjimai iš kurių 5 gali generuoti PWM. Originaliame Arduino išėjimai yra susieti su D6, D7, D8, D9, D10, D11, D12 ir D13 elektrodais. Kadangi D13 elektrodas yra naudojamas Arduino programavimo metu, nepatartina jo naudoti jautriems prietaisams valdyti. Išėjimai generuojami pasinaudojus ULN2803 mikroschema ir jie yra 12V (arba tiesiog maitinimo įtampos) lygio bei 500mA stiprumo. Išėjimams skirtos 8 2-pin jungtys poromis tiekiančios “GND-12V” išoriniams įrenginiams.

I2C sąsaja: įvairiems moduliams pajungti skirtos SDA ir SCL linijos pasiekiamos per tris 4-pin jungtis PCB viduje ir viena išorinę jungtį. Dvi vidines sąsajas jau panaudojau 1602 LCD bei aštuonių mygtukų valdymui per PCF8574, taigi PCB turi tik vieną laisvą. Turint galvoja kad I2C sąsaja atskiriama vidiniais adresais, fizinis įrenginių pajungimas prie SDA ir SCL linijų nėra esminis klausimas, tad I2C modulių jungti galima kiek norime, tereikia fizinę jungtį kažkaip iššakoti.

Maitinimas: maitinti galima 9-12V. Teoriškai galime naudoti nuo 7 iki 32v, bet tai praktiškai nenaudinga, nes dažniausiai valdome 12V rėles, o ir 7805 kuris reguliuoja srovę nėra labai efektyvus viršijus 16V.

Pagrindinė PCB kuri visa tai apjungia:

IMG_7686

I2C sąsaja valdomas LCD bei mygtukai:

IMG_7690

LCD valdymui per I2C perėjami gaminau pats bet tinka bet koks kiniškas variantas.

Panaudojimas

Panaudojimo sritys šiuo atveju yra begalinės, bet tuo pačiu ribotos dėl techninių ypatumų. Įėjimams galime jungti praktiškai bet kokius vieno laido daviklius (temperatūros, drėgmės, triukšmo, šviesumo, judesio ir t.t. ir pan.), o išėjimuose galime jungti paprasčiausias magnetines rėles, Solid State rėles, Mosfet ar TRIAC tipo interfeisus ir dar bala žino ką. Jei reikalingas laikrodis ar koks įmantresnis daviklis, tokiems dalykams galime pasinaudoti I2C sąsaja. I2C sąsajos pagalba galime išplėsti ir įėjimų bei išėjimų skaičių iki tam tiko skaičiaus. Riboja mus tik fantazija. žinoma visa tai reikia dar ir suprogramuoti!

Pabaigai paminėsiu tik kad šis valdiklis jau dabar veikia kaip temperatūros valdiklis panaudojant du temperatūros daviklius ir tenus, valdomus rėlėmis. Tai bene vienas paprastesnių panaudojimo būdų. Dar dvi nuotraukos kaip atrodo modulis surinktas ant DIN bėgio (plius matosi išvestas programavimo laidas):

IMG_7694

IMG_7693

Taigi tiek tam kartui apie jį. Ateityje atskleisiu kaip atrodo universali šio valdiklio programinė įranga paprastesniems procesams valdyti (pvz. minėto termostato atvejui). Jei ką sudomino įrenginukas brukštelėkit man emailą (rasite jį Apie skyriuje), galėsiu pasidalinti PCB brėžiniais ir pan.


Veiksmai

Information

14 responses

25 02 2014
giedriuszzz

Puikiai padaryta ! Tik vietos skydinėje nemažai užima.

25 02 2014
mindogas

Ačiū. Dėl dydžio tai gal truputi ir užima, bet reiktu lyginti su analogišku variantu su Arduino. Su anuo įmanoma žinoma pridėti priedėlių kalną, bet tada nebetilps viskas į standartini skydines dėžės aukštį. Beje, kai montuojame DIN bėgius tiesiog ant sienos tai tas dydis nebėra net aktualus 😀

3 03 2014
Evaldas

Įdėja puiki. Nes tikrai tas Arduininis modulis (UNO, Mega ir t.t.) neturi nei patikimų gnybtų, viskas žaidimų lygyje, nei kur jį kišt toliau. Tiesa yra jiems specialūs moduliai ant DIN bėgio, bet kaina neadekvati. Bandžiau įkišt į tokią dėžutę kaip mindaugas, bet ne į naują, o iš po el.skaitiklio, gaunasi surogatas, nes nėra šasi ir patikimų kontaktų reikia vėl su kaištukais žaisti. Aš pasikabinau 192 vietų skydą kol kas vietos netrūksta :). Bet tokie din blokai greitai ją tuština, pvz pas mane jau du el.en. skaitikliai , o tai jau 18 vietų. Neblogai jei šiame įrenginyje būtų ir RTC daugelį procesų tenka surišti su realiu laiku

3 03 2014
mindogas

Specialiai tokiems dalykams kaip RTC palikau laisvų I2C lizdų PCB viduje. Pats RTC moduliukas su baterija taip pat laisvai tilptu DIN dėžutės viduje, bet aš to nedariau nes kol kas nemačiau poreikio. Vėliau, jei poreikis bus, atnaujinsiu programą, o jei tai gerai pavyks tai į PCB galima integruoti ir patį laikrodį, nes vietos yra apstu.

Beja pasakyk man kaip ten tos 192 pozicijos skaičiuojasi? Čia kiek galima standartiniu terminalu kabeliams sujungti pritvirtinti?

5 03 2014
Evaldas

Čia aš turėjau omenyje DIN standarto skydus. Skaičiuojami kiek ant bėgelio telpa 1PLC dydžio modulių (pvz.1vienfazis automatėlis yra 1modulis). Taigi pas mane 8 eilės(bėgeliai) po 24 vietas. Tai gi el.skaitiklio dėžutė yra 9 modulių dydžio.
Dar, ko gero, reikia maitblokį modulinį pasigaminti, nes pirktiniai labai jau brangūs, o šią dėžutę kišti kaip ir nebėra vietos, galios gal ir užtektų betransfarmatoriniam, bet tik su tuo galvaniniu atrišimu gaunasi jau problematiška.
Tik ko gero reikėtų vieno galingesnio valdymo rakto su rėle ar simistoriumi, kad 230V kontaktoriaus ritę junginėtų, ar lempą, juo lab kad tai filosofijos universalumo nekeičia, o tik papildo :). Bet iš kart ir gnybtai turėtų būti atskirti, kaip ir dabar maitinimo, taip ir šie.
Man reikia tokio PCB 🙂 Neturiu kuom išgraužti tuos takelius 😦

5 03 2014
mindogas

Tai vadinasi gerai supratau tas pozicija 🙂 Su elektros instaliacija tokia dar patirties nelabai turiu tai ir pasitikslinau.
Dėl maitinimo tu iš dalies teisus, pigiausias toks ant DIN’o yra berods ~80LT kainuojantis tik spėju srovės nedaug duoda.. Gaminti pačiam galima bet jau tam reikia pasišvęsti rimčiau,
Apie rėlęs tu kažką įdomiai kalbi… Šiaip gali bet kokio galingumo rėlę ar simistoriu jungti kurie valdomi 12V ir iki 500mA valgo. Fotkėse turėtum matyti šalia valdymo bloko prijungtas dvi reles, pastarosios yra 2x8A tad jau kažką galingo gali imti ir jungti per jas.

7 03 2014
Evaldas

DIN’o maitblokio buvo man prisireikę buityje, maniau paprastai išspręsiu, bet gan ilgai”meditavau” atsidaręs el.skydą ir neradau kur ir kaip jį įmontuoti. Gaminti pačiam tikrai reikia jau nusiteikti, nes reikia ir dėžutės DIN ir detalių, trafukas jei galingesnis užima ne mažai vietos . Ko gero impulsinis butų geriau, bet yra specifinių detalių, nebent panaudotį kokį turimą nebereikalingą ir permontuoti į DIN’ą.
Montuoti į vieną korpusą maitblokį ir kontrolerį, čia jau daugiau knibalynės, klaidos gali būti skaudžios. Nors mano turimame sugedusiame el. skaitiklyje viskas greta pimame lygyje maitblokis ir srovinės dalys, o antroje PCB kontroleris. Tai gi tokiose dėžutėse galima ir dviejais aukštais.
Nieko įdomaus apie tas reles tiesiog iš savo “varpinės” pažvelgiau, jei trifazė apkrova kontaktorius 20A ritė 230V, o 12V ar 24V kaina dviguba.

7 03 2014
mindogas

Taigi buvo idėja ir man į pačio valdiklio korpusą integruoti maitino dalį (240V AC į 12V DC), bet dabar vietą papildžiau laikrodžiu, tai trafukas velnias žino koks ar tilps.

7 03 2014
Evaldas

tai gi ir vėl gįžtame prie to, kad jei šitas įrenginukas komutuos tiesiogiai ir rėles, kurių apetitas gana įspūdingas 12V 0,5A, tuomet trafas ir netilps, nes jei dengtas trafas 1A gabaritai jau 40x60x30. Pažiūrėjau pas kiniečius modulinis maitblokis 2A 12VDC apie $22.

7 03 2014
mindogas

Jei kalbame apie linijinį maitinimo bloką tai jo, trafas diselis, bet su switching tipo maitinimu žaidžiant tai vietos sutaupoma butu nemažai.
Šiaip kuomet domėjausi tai kinai bene geriausia variantą siūlė 12v 2A už 14 dolerių jei žiūrint DIN korpusą.

7 03 2014
mindogas

Beja, gal gali duoti nuorodą kokia ten rėlė valgo puse ampero? Dabar peržiūrėjau lenkų Relpol pasirinkimą ir radau galingiausią rėlę pas juos valgančią 0.9W, kas reiškia tik 75mA prie 12VDC ir pumpuojančią 40A.. Noriu pažiūrėti kas ten per žvėrys tiek valgo..

10 03 2014
Evaldas

tai gi pats rašei kovo 05 13val. poste. Arba aš ką tai ne taip supratau. Mano atveju reikės vis viena kontaktorių komutuoti , nes trifazė apkrova po 20A.

10 03 2014
mindogas

Gal ne taip supratai. Rašiau kad išėjimai gali būti iki 500mA, tad jei tavo galinga rėlė valgo iki tiek 12V srovės tai viskas ok, gali jungti.

19 03 2014
DIN rail Arduino klonas (techninė įranga V2) | Mindaugas Markauskas

[…] techninę įrangą pirma kartą nesuteikiau jokios informacijos apie schemą ir PCB ne veltui. Viskas tik todėl kad […]

Parašykite komentarą

Įveskite savo duomenis žemiau arba prisijunkite per socialinį tinklą:

WordPress.com Logo

Jūs komentuojate naudodamiesi savo WordPress.com paskyra. Atsijungti / Keisti )

Twitter picture

Jūs komentuojate naudodamiesi savo Twitter paskyra. Atsijungti / Keisti )

Facebook photo

Jūs komentuojate naudodamiesi savo Facebook paskyra. Atsijungti / Keisti )

Google+ photo

Jūs komentuojate naudodamiesi savo Google+ paskyra. Atsijungti / Keisti )

Connecting to %s




%d bloggers like this: