Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ

Kontrolli i ngarkesës përmes usb. Ryabenky V.M.

P. VYSOCHANSKII, Rybnitsa, Transnistria, Moldavia

Pajisja për kontrollin kompjuterik të pajisjeve të ndryshme, skema e së cilës është paraqitur në Fig. 1, funksionalisht i ngjashëm me atë të përshkruar në, por lidhet me portën USB të kompjuterit, e cila (ndryshe nga porta COM) është e pranishme në secilën prej tyre sot. Çipi i vetëm i pajisjes është mikrokontrolluesi i zakonshëm ATmega8. Është e nevojshme për organizimin e komunikimit nëpërmjet autobusit USB. Edhe pse nuk ka një modul të specializuar harduerik, ky funksion kryhet nga softueri.

Rezistenca R1, e lidhur midis daljes pozitive të furnizimit me energji elektrike dhe linjës USB D-bus, e vendos atë në modalitetin LS me shpejtësi të ulët me një kurs këmbimi prej 1.5 Mbps, i cili ju lejon të deshifroni mesazhet kompjuterike në mënyrë programore. Rezistorët R4 dhe R5 eliminojnë kalimet që ndodhin gjatë shkëmbimit të informacionit, gjë që rrit stabilitetin e punës. Kondensatori C1 bllokon zhurmën e impulsit në qarkun e energjisë, i cili gjithashtu përmirëson qëndrueshmërinë e pajisjes. Diodat VD1 dhe VD2 përdoren për të ulur tensionin e furnizimit të mikrokontrolluesit në afërsisht 3,6 V - kjo kërkohet për të përputhur nivelet me autobusin USB. Sinjalet e kontrollit të instrumentit gjenerohen në daljet e PBO-PB5 dhe PCO, PC1 të mikrokontrolluesit. Niveli i lartë logjik - voltazhi është rreth 3.4 V. Tensioni i nivelit të ulët është afër zeros. Daljet mund të lidhen me pajisje që konsumojnë një rrymë jo më shumë se 10 mA (nga çdo dalje). Nëse kërkohen vlera të mëdha të rrymës ose tensionit, atëherë duhet të përdoren nyjet që përputhen, të treguara në fig. 5 dhe 6.

Pajisja është mbledhur në një dërrasë buke, ajo e shtypur nuk është zhvilluar. Përdoren rezistorë MLT, kondensatorët C2 dhe SZ janë qeramikë me frekuencë të lartë, C1 - K50-35 ose të ngjashme të importuara. Diodat e silikonit me një rënie të tensionit në kryqëzimin prej rreth 0.7 V.

Programi për mikrokontrolluesin u zhvillua në versionin e mjedisit Bascom-AVR 1.12.0.0. Për të punuar me autobusin USB është përdorur biblioteka swusb.LBX, e cila kryen dekodimin softuerik të sinjaleve USB në kohë reale. Kodi i programit i marrë si rezultat i përpilimit nga një skedar me shtrirjen HEX duhet të ngarkohet në memorien FLASH të mikrokontrolluesit. Për këtë, programuesi u përdor së bashku me programin e integruar në Bascom-AVR. Gjendja e biteve të konfigurimit të mikrokontrolluesit duhet të korrespondojë me atë të treguar në fig. 2.

Herën e parë që lidhni pajisjen me kompjuterin tuaj, sistemi operativ do të zbulojë një pajisje të re në përputhje me USB HID të quajtur "uniUSB" dhe do të instalojë drejtuesit e nevojshëm. Pas disa sekondash, pajisja është konfiguruar dhe gati për t'u përdorur. Për të punuar me të, u krijua programi UniUSB. Ai paraqitet në dy versione: për sistemet operative 32-bit (x86) dhe 64-bit (x64) të familjes Windows. Versioni 32-bit është testuar në Windows 98, Windows XP, Windows 7, ndërsa versioni 64-bit është testuar vetëm në Windows XPx64.

Programi UniUSB është shkruar në PureBasic (versioni 4.31) duke përdorur bibliotekën HIDJJb të funksioneve të përcaktuara nga përdoruesi që mbështet punën me pajisje USB HID. Pamja e dritares së programit është paraqitur në fig. 3.

Në të njëjtën dosje si skedari i tij i ekzekutueshëm, duhet të ketë një skedar të quajtur UniUSB_KOfl.txt ose UniCOM_KOfl.txt. Opsioni i fundit kërkohet për pajtueshmërinë me programin UniCOM të propozuar në. Ky skedar ruan skriptin për kontrollin e pajisjeve të jashtme. Kur programi niset, të dhënat nga skedari ngarkohen në tabelën e vendosur në dritaren kryesore dhe kur të përfundojë puna, ruhen në skedar. Klikimi i butonit të majtë të miut në qelizat e tabelës ju lejon të ndryshoni gjendjen e tyre: 1 - niveli i lartë logjik, 0 ose bosh - niveli logjik i ulët.

Për të shtuar ose hequr një kolonë tabele, kliko me të djathtën mbi të dhe zgjidhni veprimin e kërkuar nga menyja që shfaqet.

Kur një pajisje lidhet me portën USB, programi do ta zbulojë atë dhe do të aktivizojë butonin > që ndodhet në pjesën e sipërme të dritares në shiritin e veglave. Shtypja e këtij butoni fillon procesin e përsëritjes nëpër kolonat e tabelës dhe vendosjen e gjendjeve të rezultateve të treguara në to. Për qartësi më të madhe, numrat e rezultateve që janë vendosur aktualisht në një nivel të lartë logjik janë theksuar në të majtë të tabelës. Shpejtësia e kërkimit (koha në milisekonda ndërmjet kalimeve nga kolona në kolonë) vendoset në fushën "Shpejtësia, ms".

Ju lutemi vini re se sistemi operativ Windows është me shumë detyra! Kjo do të thotë se koha e procesorit ndahet midis shumë proceseve, ndonjëherë të fshehura nga përdoruesi, të cilat ekzekutohen me radhë, duke marrë parasysh prioritetet e vendosura në sistem. Prandaj, nuk duhet pritur saktësi e madhe në mbajtjen e intervaleve kohore më pak se 100 ms.

Për të ndaluar shkurtimisht lëvizjen nëpër kolona, ​​përdorni butonin JB. Shtypja e tij përsëri do të vazhdojë përsëritjen nga vendi ku ndaloi. Butoni ■ ndalon plotësisht përsëritjen mbi kolonat e tabelës. Nëse komunikimi ndërmjet kompjuterit dhe pajisjes dështon ose pajisja shkëputet nga lidhësi USB i kompjuterit, programi do të raportojë një gabim duke shfaqur një mesazh të përshtatshëm në shiritin e statusit.

Klasa 1 Klasa 2 Klasa 3 Klasa 4 Klasa 5

Një pajisje kontrolli kompjuterike për pajisje të ndryshme, diagrami i së cilës është paraqitur në fig. 1 futet në portën USB të kompjuterit, e cila është në secilën prej tyre sot. Çipi i vetëm i pajisjes është një mikrokontrollues i zakonshëm ATmega8. Është e nevojshme për organizimin e komunikimit në autobus USB. Edhe pse nuk ka një modul të specializuar harduerik, ky funksion kryhet nga softueri.

Foto 1

Rezistenca R1, e lidhur midis daljes pozitive të furnizimit me energji elektrike dhe linjës USB D-bus, e vendos atë në modalitetin LS me shpejtësi të ulët me një kurs këmbimi prej 1.5 Mbps, i cili ju lejon të deshifroni mesazhet kompjuterike në mënyrë programore. Rezistorët R4 dhe R5 eliminojnë kalimet që ndodhin gjatë shkëmbimit të informacionit, gjë që rrit stabilitetin e punës. Kondensatori C1 bllokon zhurmën e impulsit në qarkun e energjisë, gjë që përmirëson edhe qëndrueshmërinë e pajisjes.Diodat VD1 dhe VD2 shërbejnë për të ulur tensionin e furnizimit të mikrokontrolluesit në afërsisht 3,6 V - kjo kërkohet për të përputhur nivelet me autobusin USB.

Sinjalet e kontrollit të pajisjes gjenerohen në daljet PB0-PB5 dhe PC0, PC1 të mikrokontrolluesit. Niveli i lartë logjik - voltazhi është rreth 3.4 V. Tensioni i nivelit të ulët është afër zeros. Daljet mund të lidhen me pajisje që konsumojnë një rrymë jo më shumë se 10 mA (nga çdo dalje). Nëse kërkohen vlera të mëdha të rrymës ose tensionit, atëherë duhet të përdoren nyjet që përputhen.

Pajisja është montuar në një tabelë prototipi, një tabelë e qarkut të printuar nuk është zhvilluar. Përdoren rezistorë MLT, kondensatorë C2 dhe C3 - kondensatorë qeramikë me frekuencë të lartë, C1 - K50-35 ose të ngjashëm të importuar. Diodat e silikonit me një rënie të tensionit në kryqëzimin prej rreth 0.7 V.

Programi për mikrokontrolluesin u zhvillua në mjedis Bascom AVR versionet 1.12.0.0. Biblioteka punonte me autobusin USB swusb.LBX, i cili kryen dekodimin e softuerit në kohë reale të sinjaleve USB. Kodi i programit i marrë si rezultat i përpilimit nga një skedar me shtrirjen HEX duhet të ngarkohet në memorien FLASH të mikrokontrolluesit. Gjendja e biteve të konfigurimit të mikrokontrolluesit duhet të korrespondojë me atë të treguar në fig. 2.

Figura 2

Herën e parë që lidhni pajisjen tuaj me kompjuterin tuaj, sistemi operativ do të zbulojë një të re USB HID pajisje e përputhshme me emrin " uniUSB" dhe instaloni drejtuesit e nevojshëm. Në pak sekonda, pajisja është konfiguruar dhe gati për përdorim. Programi UniUSB është krijuar për të punuar me të. Ai është paraqitur në dy versione: për 32-bit (x86) dhe 64-bit ( x64) sistemet operative të familjes Windows. Versioni 32-bit është testuar në Windows 98, Windows XP, Windows 7 dhe versioni 64-bit është testuar vetëm në Windows XP x64.

Programi UniUSB shkruar në gjuhë PureBasic(versioni 4.31) duke përdorur bibliotekën e funksioneve të përcaktuara nga përdoruesi HID_Lib punë mbështetëse me USB HID pajisje. Pamja e dritares së programit është paraqitur në fig. 3.

Figura 3

Në të njëjtën dosje me skedarin e tij të ekzekutueshëm, duhet të ketë një skedar të quajtur UniUSB_KOfl.txt. Ky skedar ruan skriptin për kontrollin e pajisjeve të jashtme. Kur programi niset, të dhënat nga skedari ngarkohen në tabelën e vendosur në dritaren kryesore dhe kur të përfundojë puna, ruhen në skedar. Klikimi i butonit të majtë të miut në qelizat e tabelës ju lejon të ndryshoni gjendjen e tyre: 1 - niveli i lartë logjik, 0 ose bosh - niveli logjik i ulët.

Për të shtuar ose hequr një kolonë tabele, kliko me të djathtën mbi të dhe zgjidhni veprimin e kërkuar nga menyja që shfaqet. Kur lidhni një pajisje me portën USB, programi do ta zbulojë atë dhe do të aktivizojë butonin "Start" që ndodhet në krye të dritares në shiritin e veglave. Shtypja e këtij butoni fillon procesin e përsëritjes nëpër kolonat e tabelës dhe vendosjen e gjendjeve të rezultateve të treguara në to. Për qartësi më të madhe, numrat e rezultateve që janë vendosur aktualisht në një nivel të lartë logjik janë theksuar në të majtë të tabelës. Shpejtësia e kërkimit (koha në milisekonda ndërmjet kalimeve nga kolona në kolonë) vendoset në fushën "Shpejtësia, ms".

class="eliadunit">

Ju lutemi vini re se sistemi operativ Windows është me shumë detyra! Kjo do të thotë se koha e procesorit ndahet midis shumë proceseve, ndonjëherë të fshehura nga përdoruesi, të cilat ekzekutohen me radhë, duke marrë parasysh prioritetet e vendosura në sistem. Prandaj, nuk duhet pritur saktësi e madhe në mbajtjen e intervaleve kohore më pak se 100 ms.

Për të ndaluar shkurtimisht përsëritjen nëpër kolona, ​​përdorni butonin "Ndalu". Shtypja e tij përsëri do të vazhdojë përsëritjen nga vendi ku ndaloi. Butoni "Stop" ndalon plotësisht përsëritjen mbi kolonat e tabelës. Nëse komunikimi ndërmjet kompjuterit dhe pajisjes dështon ose pajisja shkëputet nga lidhësi USB i kompjuterit, programi do të raportojë një gabim duke shfaqur një mesazh të përshtatshëm në shiritin e statusit.

Burimi: Radio nr 2, 2011

Arkivi për artikullin "Kontrolli i ngarkesës përmes ndërfaqes USB"
Përshkrim: Tekstet burimore të programeve, skedari i firmuerit të mikrokontrolluesit, programi uniUSB
Madhësia e skedarit: 89.3 KB Numri i shkarkimeve: 2 773

Në Habré rreth kontrollit të një llambë përmes internetit, lindi ideja për të kontrolluar ndriçimin në shtëpi nga një kompjuter, dhe meqenëse kam konfiguruar tashmë kontrollin e kompjuterit nga një celular, kjo do të thotë se drita mund të kontrollohet edhe nga i njëjti telefon . Pasi ia tregoi artikullin njërit prej kolegëve të mi të punës, ai tha se i duhej vetëm. Duke qenë se shpesh e zë gjumi teksa shikon filma në kompjuter. Kompjuteri, pak kohë pas përfundimit të filmit, gjithashtu bie në gjumë dhe fiket monitorin, por drita në dhomë mbetet e ndezur. ato. u vendos që gjëja ishte e dobishme dhe fillova të mbledh informacione dhe detaje për këtë mrekulli.
Pjesa tjetër e informacionit nën habracut (me kujdes shumë foto - trafik).

Diagrami i pajisjes

Për skemën origjinale, u mor një nga skemat e gjetura në internet dhe dukej kështu:

Por vetëm me një ndryshim të vogël: një rezistencë 390 ohm u shtua midis kunjit të parë të optobashkuesit 4N25 dhe kunjës së dytë të LPT, dhe u shtua gjithashtu një LED për të treguar përfshirjen. Qarku u montua në modalitetin e provës, d.m.th. vetëm lidhur me tela sipas nevojës dhe testuar. Në këtë version, ajo thjesht ndezi dhe fiki elektrik dore të vjetër sovjetik.
U vendos që nëse kontrolli është bërë tashmë, atëherë jo për një pajisje, por për të paktën 4 pajisje (bazuar në: një llambë në tavolinë, një llambadar për dy ndërprerës, një prizë rezervë). Në këtë fazë, u bë e nevojshme të ndërtohej një qark i plotë i pajisjes, filloi zgjedhja e programeve të ndryshme.
U instaluan:

  1. KiCAD
  2. Shqiponja
Pasi i pashë të gjitha, u vendosa në Eagle, pasi kishte pjesë “të ngjashme” në bibliotekën e saj. Ja çfarë ndodhi në të:

Diagrami përdor portën DB9 d.m.th. një portë e rregullt COM, kjo është bërë për arsye të kursimit të hapësirës në tabelë dhe vetë konektorëve (kam konektorë COM), dhe meqenëse do të përdorim vetëm 5 përçues, kjo do të na mjaftojë me një diferencë. Kështu, ne gjithashtu bëni një përshtatës nga DB25 (LPT) në DB9 (COM), në rastin tim bëhet si më poshtë:
LPT 2-9 pin = COM 1-8 pin - këto janë kunjat e të dhënave të kontrollit;
LPT 18-25 pin (shpesh ato janë të ndërlidhura) = COM 9 pin - kjo është toka jonë.
Qarku përdor gjithashtu një furnizim shtesë me energji 12 V për të fuqizuar stafetën, sipas planit do të jetë një karikues i thjeshtë kinez ose mund të jetë një kurorë 9V (një stafetë funksionon mirë, duhet të kontrolloni për 4 në të njëjtën kohë). Një furnizim i veçantë me energji elektrike dhe izolim galvanik me një optobashkues përdoret për të siguruar portin e kompjuterit. Nëse dëshironi, sigurisht që mund të ushqeheni nga një furnizim me energji kompjuteri 12 V, por secili e bën këtë vetë dhe me rrezikun dhe rrezikun e tij.

Pjesët e nevojshme për të krijuar një pajisje
  1. Porta COM - 1 pc
  2. lidhës i energjisë - 1 pc
  3. LED jeshile - 4 copë
  4. optobashkues 4n25 - 4 copë
  5. një vend për një optobashkues (kisha vetëm 8 këmbë) - 4 copë
  6. rezistencë 390 Ohm - 4 copë
  7. rezistencë 4,7 kOhm - 4 copë
  8. transistor KT815G - 4 copë
  9. stafetë HJR-3FF-S-Z - 4 copë
  10. kapëse për 3 kontakte - 4 copë
  11. tekstoli me fletë metalike

Përgatitja skematike e PCB

Pasi u përpoqa të përdor Eagle për të përgatitur një PCB, kuptova se do të ishte pak e ndërlikuar dhe vendosa të kërkoja një opsion më të lehtë. Ky opsion ishte programi sprint layout 5, edhe pse është i ekzekutuar për windows, por funksionon pa probleme në verë nën linux. Ndërfaqja e programit është intuitive, në Rusisht dhe programi ka një ndihmë (ndihmë) mjaft të qartë. Prandaj, të gjitha veprimet e mëtejshme për zhvillimin e tabelës së qarkut të printuar u kryen në paraqitjen sprint 5 (në tekstin e mëtejmë SL5).
Megjithëse shumë njerëz e përdorin këtë program për të zhvilluar tabela për pajisjet e tyre, ai nuk përmbante pjesët që më duheshin (madje edhe në një mori koleksionesh makro të shkarkuara). Prandaj, fillimisht më duhej të krijoja pjesët që mungojnë:
  1. Porta COM (ajo që nuk ishte e njëjtë me timen, sipas vrimave të montimit)
  2. prizë elektrike
  3. kapëse me tre kunja
  4. stafetë HJR-3FF-S-Z
Pamje e këtyre pjesëve:

Pas shtimit të detajeve të nevojshme, filloi dizajni i tabelës së qarkut të printuar. U deshën disa përpjekje, ishin rreth pesë prej tyre. Çdo version i tabelës u printua në karton, vrimat u shpuan dhe pjesët u futën në to. Në fakt, u zbulua se porti im COM nuk përputhet me atë që ishte në SL5. Një gabim i vogël në qarkun e stafetës u shfaq gjithashtu - në fakt, strehimi i stafetës u zhvendos me 2-3 mm. Natyrisht, të gjitha gabimet janë korrigjuar.
Në versionin e parë të shtypur, doli që transistori nuk ishte i lidhur siç duhet, dy kontakte ishin përzier.
Pas të gjitha korrigjimeve dhe rregullimeve, bordi doli të ishte i formës së mëposhtme:

SL5 ka një veçori "Photoview" për të parë tabelën, ja se si duket në të:

Në versionin përfundimtar të tabelës, gjurmët do të modifikohen pak më shumë, por përndryshe duket njësoj.

SL5 ka gjithashtu një opsion të dobishëm printimi në tabelë, mund të fshehni shtresat e panevojshme dhe të zgjidhni ngjyrën e printimit të secilës shtresë, e cila është shumë e dobishme.

Përgatitja e PCB

U vendos që tabela të bëhej duke përdorur metodën LUT (teknologji lazer-hekur). Më tej, i gjithë procesi në foto.

Pritini një copë tekstoliti të madhësisë së kërkuar.

Marrim letrën zmerile më të vogël dhe pastrojmë me kujdes sipërfaqen e bakrit.

Pas pastrimit të sipërfaqes, ajo duhet të lahet dhe të lyhet. Mund ta shpëlani me ujë, dhe të lyeni me aceton (në rastin tim ishte tretësi 646).
Më pas, ne printojmë tabelën tonë në një printer lazer në letër të veshur, duke mos harruar të vendosim printimin më të guximshëm në printer (pa kursyer toner). Ky opsion doli të ishte pak i pasuksesshëm, pasi toneri ishte lyer, por një përpjekje tjetër ishte e duhura.

Tani ju duhet të transferoni vizatimin nga letra në tekstolit. Për ta bërë këtë, ne e presim vizatimin dhe e aplikojmë në tekstolitin, përpiqemi ta rreshtojmë sipas nevojës dhe më pas e ngrohim me një hekur. Është e nevojshme të ngrohni plotësisht të gjithë sipërfaqen në mënyrë që toneri të shkrihet dhe të ngjitet në sipërfaqen e bakrit. Më pas e lëmë dërrasën të ftohet pak dhe shkojmë ta njomim nën ujë të rrjedhshëm. Kur letra laget mjaftueshëm, duhet të ndahet nga pllaka. Vetëm toneri i ngjitur do të mbetet në tabelë. Duket kështu:

Hapi tjetër është përgatitja e tretësirës së turshive. Kam përdorur klorur hekuri për këtë. Mbi një kavanoz me klorur ferrik shkruhet se tretja duhet bërë 1 me 3. Unë devijova pak nga kjo dhe bëra 60 g klorur ferrik për 240 g ujë, d.m.th. doli 1 me 4, pavarësisht kësaj, gravurja e tabelës ishte normale, vetëm pak më e ngadaltë. Ju lutemi vini re se procesi i tretjes së klorurit të hekurit të thatë në ujë vazhdon me lëshimin e nxehtësisë, kështu që duhet të derdhet në ujë në pjesë të vogla dhe të përzihet. Natyrisht, për gdhendje, është e nevojshme të përdoren enët jo metalike, në rastin tim ishte një enë plastike (si nga një harengë). Unë dola me këtë zgjidhje:

Përpara se ta ulja tabelën në tretësirë, përdora shirit ngjitës për të ngjitur një vijë peshkimi në anën e pasme të saj, në mënyrë që të ishte më e përshtatshme për të marrë dhe kthyer dërrasën. Nëse zgjidhja bie në duart tuaja, duhet ta lani shpejt me sapun (sapuni e neutralizon atë), por njollat ​​mund të mbeten ende, gjithçka varet nga kushtet specifike. Njollat ​​nuk hiqen fare nga rrobat, por pata fatin që nuk e kontrollova vetë. Është e nevojshme të zhytet bordi në tretësirë ​​me bakër poshtë dhe jo të gjitha të sheshtë, por në një kënd. Herë pas here, është e dëshirueshme që të pastrohet bordi nga minierat, pasi ndërhyn në gdhendjen e mëtejshme. Ju mund ta bëni këtë me shtupë pambuku.

I gjithë procesi i gravurës më zgjati 45 minuta, 40 minuta do të kishin mjaftuar, por isha i zënë vetëm me një gjë tjetër.
Pas gdhendjes, e lajmë tabelën me sapun, e heqim shiritin ngjitës me vijë peshkimi dhe marrim:

Kujdes! Mos e derdhni tretësirën e klorurit të hekurit në lavaman (kanalizime) - kjo mund të dëmtojë pjesët metalike të lavamanit dhe në përgjithësi tretësira mund të jetë ende e dobishme.
Më pas, duhet të lajmë tonerin, kjo bëhet me sukses me të njëjtin tretës 646 që u përdor për degreasing (kontakti i gjatë i tretësit me lëkurën mund ta dëmtojë atë).

Hapi tjetër është të shponi vrima. Fillimisht kisha vrima 1mm dhe 1.5mm në tabelë, pasi nuk gjeja dot më të holla. Gjithashtu, në qytetin tonë nuk ishte e mundur të gjendej një kapak për ta lidhur me një motor elektrik, kështu që gjithçka bëhej me një shpuese të madhe.

Mbërriti pajisja e parë

Herën e parë që mora vetëm dy stërvitje, dhe kur përdora një stërvitje të tillë, kjo nuk ishte e mjaftueshme. Një stërvitje u prish dhe e dyta u përkul. Gjithçka që arrita të shpoja ditën e parë:

Të nesërmen bleva pesë stërvitje. Dhe ato ishin mjaftueshëm, sepse nëse nuk thyhen (nga rruga, vetëm një nga pesë u thye), atëherë ato bëhen të trotuara, dhe kur shpohen me ato të mprehta, gjurmët përkeqësohen, bakri fillon të shkrihet. Pas shpimit të plotë të tabelës, marrim:

Pas shpimit, bordi duhet të kallajohet. Për ta bërë këtë, unë përdora metodën e vjetër - një hekur saldimi, fluks TAGS dhe kallaj. Doja të provoja të përdorja aliazhin e Rose, por nuk mund ta gjeni në qytetin tonë.

Pas kallajimit, marrim rezultatin e mëposhtëm:

Më pas, duhet të shpëlani dërrasën për të hequr mbetjet e fluksit, meqenëse TAGS mund të lahet me ujë, këtë mund ta bëni ose me ujë ose me alkool. Bëra diçka në mes - e lava me vodka të vjetër dhe e fshiva me shtupë pambuku. Pas gjithë këtyre hapave, bordi ynë është gati.

Pjesë montimi

Për të kontrolluar korrektësinë e tabelës, unë fillimisht mbledh vetëm një (nga katër) rreshta pjesësh, nuk e dini kurrë se ku hyri gabimi.

Pas montimit të pjesëve, ne shkojmë dhe lidhim pajisjen me kompjuterin përmes LPT, për këtë një përshtatës nga DB25 (LPT) në DB9 (COM) është ngjitur në formën e mëposhtme:

  • 2 pin DB25 në 1 pin DB9
  • 3 pin DB25 në 2 pin DB9
  • 4 pin DB25 në 3 pin DB9
  • 5 pin DB25 në 4 pin DB9
  • 6 pin DB25 deri në 5 pin DB9
  • 7 pin DB25 deri në 6 pin DB9
  • 8 pin DB25 në 7 pin DB9
  • 21 pin DB25 (mund të përdorni çdo nga 18 në 25) deri në 9 pin DB9
Meqenëse si tel përdorej një palë e zakonshme e përdredhur, mungonte një tel, por për këtë pajisje mjaftojnë vetëm pesë tela, kështu që ky opsion është i përshtatshëm. Ne kemi një elektrik dore të thjeshtë sovjetik si ngarkesë të ndërruar. Epo, si një furnizim me energji elektrike - një furnizim universal kinez me energji elektrike (4 lidhës dhe energji nga 3 në 12 V). Këtu është gjithçka e mbledhur:

Dhe tani pajisja po funksionon:

Kjo përfundoi një tjetër mbrëmje dhe instalimi i pjesëve të mbetura u la për të nesërmen.

Dhe këtu është pajisja e montuar plotësisht:

Epo, një video e shkurtër se si funksionon (cilësia nuk është shumë e mirë, nuk kishte asgjë për të xhiruar normalisht)

Kjo është e gjitha, mbetet vetëm për të gjetur një kasë normale për pajisjen dhe për ta vënë atë në veprim.

Pjesa e softuerit

Natyrisht, nevojiten disa softuer për të kontrolluar portën LPT, por meqenëse kam linux në shtëpi, u vendos që thjesht të shkruaj vetë programin më të thjeshtë dhe më vonë ta shtoj dhe ta adaptoj sipas nevojës. Ajo dukej diçka si kjo:
#përfshi
#përfshi
#përfshi
#përfshi
#define BASE 0x378
#define KOHA 100000
int main()
{
int x = 0x0F;
int y = 0x00;
nëse (ioperm (BASE, 1, 1))
{
gabim ("ioperm()");
dalje (77);
}
outb (x, BAZË);
kthimi 0;
}

Ky program dërgon portin 0x0F = 00001111 në LPT, d.m.th. furnizon 1 te kunjat 2-5 (Data0-Data3), dhe ky është tensioni ynë i kontrollit midis kunjave 2-5 dhe tokëzimit (18-25 kunjat), kështu që të katër reletë do të ndizen. Programi funksionon saktësisht njësoj për të dërguar 0x00 në port për ta çaktivizuar, thjesht në vend të x dërgohet y - outb (y, BASE). Ju gjithashtu mund të lexoni statusin e portit:
#define BASEPORT 0x378 /* lp1 */
...
printf("statusi: %d\n", inb(BASEPORT));
...

E vetmja vërejtje e këtij programi është se ai duhet të ekzekutohet si rrënjë, pasi funksioni ioperm nuk është i disponueshëm për një përdorues të thjeshtë. Unë mendoj se ju nuk mund të tregoni se si ta zgjidhni një problem të tillë, të gjithë do të zgjedhin një opsion më të përshtatshëm për të.

Më pas, programi u finalizua në mënyrë që duke i kaluar parametrat e linjës së komandës të ishte e mundur të specifikohej me cilën pajisje dhe çfarë të bëni.
Prodhimi i "sw --help":
Programi për kontrollin rele nëpërmjet portit LPT.
Një program mund të ketë një ose dy parametra.
Formati i parametrit: sw [numri i pajisjes] [veprim]
numri i pajisjes - nga 1 në 8
veprim - "ndezur", "off", "st" - aktivizoni, çaktivizoni, statusin
Shembull: "sw 2 on" për të ndezur pajisjen e dytë ose "sw --help" për të shfaqur ndihmën

PS nëse dikush ka nevojë për të, atëherë unë mund të ngarkoj skedarin skematik të tabelës në sl5 dhe kodin burimor të programit të kontrollit diku.

Kompjuter, disa pjesë, vegla, kushdo mund të organizojë një kontroll të thjeshtë të pajisjeve elektroshtëpiake nga ky kompjuter. Shumë pajisje të përdorura në jetën e përditshme kanë shumë funksione, për shembull, shumica e televizorëve modernë mund të tregojnë një numër kanalesh të ndryshme, një tifoz mund. një sërë mënyrash të ndryshme funksionimi, etj. Për të bërë një kontroll kaq kompleks si, për shembull, ndërrimi i kanaleve ose mënyrat e funksionimit, përveç sa më sipër, do t'ju nevojiten njohuri shtesë, pjesë dhe mjete, por kushdo që ka sa më sipër mund të bëjë ndezjen dhe fikjen e thjeshtë. Arduino komunikon me kompjuterin përmes portit USB, transferimi i informacionit nga kompjuteri në Arduino mund të bëhet përmes mjedisit të zhvillimit për Arduino (i quajtur Arduino IDE) i cili mund të shkarkohet nga faqja në faqen zyrtare të Arduino. Ka shumë module të ndryshme që Arduino të ndërveprojë me botën e jashtme, për shembull, një modul i veçantë me një bllok stafetë për ndërrimin e ngarkesave, përdorimi i moduleve të tilla thjeshton shumë punën, këtu do të shqyrtojmë prodhimin e pavarur të një moduli me një stafetë për duke ndezur / fikur pajisjet shtëpiake, nëse është e nevojshme, mund të bëni më shumë se një modul të tillë dhe t'i përdorni ato me një Arduino, duke bërë të mundur kontrollimin e lehtë të shumë pajisjeve shtëpiake. Arduino (çdo) ka një numër kunjash për qëllime të përgjithshme që janë caktuar, në tabelë, thjesht me numra ose numra me një shenjë të valëzuar "~". Duke lidhur Arduino me një kompjuter dhe duke shkruar një skicë të veçantë (program për Arduino) në të (në Arduino), mund t'i kontrolloni këto kunja nga ky kompjuter përmes programit "Arduino IDE" duke i bërë ato me tension të lartë (rreth + 5V (LARTË) ) ose të ulët (rreth 0V). (E ULËT)). Gjithashtu në Arduino ka një kunj "GND" (është shënuar në tabelë). Nëse ka një tension të lartë në një nga daljet për qëllime të përgjithshme, atëherë duke lidhur diçka rryme përcjellëse midis kësaj dalje dhe daljes "GND", një rrymë elektrike do të rrjedhë përmes asaj që është e lidhur dhe vlera e kësaj rryme do të varet nga rezistenca e këtij objekti dhe mund të llogaritet nga, d.m.th. sa më e ulët të jetë rezistenca, aq më e madhe është rryma, por nëse rezistenca është shumë e ulët, shumë rrymë do të rrjedhë nëpër Arduino dhe do të digjet. Rryma maksimale që mund të prodhojë dalja për qëllime të përgjithshme të Arduino mund të ndryshojë në varësi të mikrokontrolluesit të përdorur në të, por zakonisht është 40 mA = 0.04A - kjo mund të mos jetë e mjaftueshme për të ndezur stafetën që do të ndezë pajisjen (pajisjet) kështu që ju duhet të përdorni një shtesë për të përforcuar elementin aktual, siç është një transistor bipolar. Një transistor bipolar ka tre terminale: emetues, kolektor, bazë. Rryma maksimale e tranzistorit është gjithashtu e kufizuar si ajo e Arduino dhe zakonisht është më e lartë, për shembull, KT315 popullor ka një rrymë maksimale prej 100mA = 0.1A. Transistorët bipolarë janë të dy llojeve n-p-n dhe p-n-p, ju mund t'i përdorni të dy llojet, por në mënyra të ndryshme, dhe më pas do të shqyrtojmë përdorimin e një transistori KT315, lloji i të cilit është n-p-n. Në mënyrë që tranzistori të amplifikojë rrymën nga Arduino, është e nevojshme të lidhni bazën e tij me daljen e Arduino PËRMES NJË REZISTORI me rezistencë 1 kOhm (mund të shkruhet në rezistencën 1k), emituesi i këtij tranzitori është i lidhur. në "GND" të Arduino dhe minus të furnizimit me energji ose "GND" të burimit të energjisë, tensioni i të cilit është i barabartë me tensionin e mbështjelljes ekzistuese të stafetës (le të themi 12 V) lidhni një nga terminalet e mbështjelljes së stafetës me kolektori i tranzistorit, tjetri me plusin e burimit te fuqise (+12V eshte i pranueshem) dhe nje tjeter qe nuk ndikon ne fitimin, por nje detaj SHUM i rendesishem eshte nje diode qe duhet te lidhet me nje anode me kolektorin. dhe një furnizim me energji katodë në plus (+12V). Nëse dioda importohet, atëherë ka shumë të ngjarë që në rastin e saj të ketë një shirit të lehtë - tregon katodën, terminali tjetër i diodës është anoda. Daljet e mbetura të stafetës janë daljet e kontakteve të tij, nëse ka dy prej tyre dhe ato nuk janë të mbyllura, atëherë kur të aplikohet rrymë e mjaftueshme në mbështjelljen e stafetës, këto kontakte do të mbyllen, ato duhet të lidhen në seri me pajisjen dhe kjo Lidhja serike mund të futet në një prizë, atëherë kur kontaktet të mbyllen, pajisja do të marrë 220 V dhe do të ndizet. Sa më sipër mund të tregohet në foto:

Figura 1 - Kontrolli i instrumentit nga një kompjuter


Kjo është një skemë jo standarde për një kuptim më të mirë, zakonisht përdoren skemat e mëposhtme:

Figura 2 - Kontrollimi i pajisjes nga një kompjuter


Edhe pse në këtë skemë ekziston edhe një përcaktim jo standard i bordit Arduino. Shifra tregon Arduino UNO (mund të porositet nga kjo lidhje http://ali.pub/1v22bh) por ju mund të përdorni ndonjë tjetër. Lidhjet mund të bëhen, për shembull, në një dërrasë buke dhe tela ose saldim. Pasi gjithçka të jetë lidhur dhe kontrolluar siç duhet, mund të lidhni Arduino përmes USB me kompjuterin dhe të ngarkoni skicën në të:

kodi_pc i karikimit=0;

Konfigurimi i zbrazët ()
{
pinMode (2, OUTPUT);
Seriali.fillim(9600);
}

Loop void ()
{
if (Serial.available() > 0)
{
pc_code = Serial.lexo();
nëse (pc_code=="a")
{
digitalWrite(2, LARTË);
}
ndryshe nëse (pc_code=="b")
{
digitalWrite (2, LOW);
}
}
}

Si të konfiguroni siç duhet Arduino dhe të ngarkoni një skicë në të është përshkruar tashmë në faqe. Më pas, për të ndezur pajisjen, duhet të dërgoni simbolin "a" në Arduino, për të fikur simbolin "b". Për të dërguar një simbol te arduino, në Arduino IDE, mund të shkoni te skeda Tools-Serial Monitor dhe në dritaren që shfaqet në fushën e sipërme të tekstit, futni simbolet dhe dërgoni duke shtypur butonin "dërgoni". simboli do të vijë në arduino dhe për këtë rast nëse dërgoni simbolin "a", atëherë pajisja do të ndizet, nëse "b" atëherë fiket në përputhje me rrethanat. Nëse Arduino nuk pranon karaktere, atëherë duhet të vendosni të njëjtën shpejtësi në këndin e poshtëm djathtas të dritares së monitorit të portit serik siç specifikohet në skicë, d.m.th. 9600 baud Për të përfshirë 2 pajisje, mund të ndryshoni pak skicën:

kodi_pc i karikimit=0;

Konfigurimi i zbrazët ()
{
pinMode (2, OUTPUT);
pinMode (3, OUTPUT);
Seriali.fillim(9600);
}

Loop void ()
{
if (Serial.available() > 0)
{
pc_code = Serial.lexo();
nëse (pc_code=="a")
{
digitalWrite(2, LARTË);
}
ndryshe nëse (pc_code=="b")
{
digitalWrite (2, LOW);
}
ndryshe nëse (pc_code=="c")
{
digitalWrite(3, LARTË);
}
ndryshe nëse (pc_code=="d")
{
digitalWrite (3, LOW);

Artikujt kryesorë të lidhur