Arvuti juhib seadmeid. Elektriline juhtimine USB kaudu

1 skoor 2 skoor 3 skoor 4 skoor 5

Seade arvuti juhtimine erinevaid seadmeid, mille skeem on näidatud joonisel fig. 1, ühendub arvuti USB-porti, mis on tänapäeval kõigis neist olemas. Seadme ainus kiip on tavaline mikrokontroller ATmega8. See on vajalik bussi kaudu suhtlemise korraldamiseks. USB. Kuigi sellel puudub spetsialiseerumine riistvara moodul, seda funktsiooni täidab tarkvara.

1. pilt

Toiteallika positiivse klemmi ja USB D-bus liini vahele ühendatud takisti R1 lülitab selle väikese kiirusega LS režiimile vahetuskursiga 1,5 Mbit/s, mis võimaldab arvutiteateid dekrüpteerida programmiliselt. Takistid R4 ja R5 kõrvaldavad infovahetusel tekkivad siirded, mis suurendab tööstabiilsust. Kondensaatori C1 plokid impulssmüra toiteahelas, mis parandab ka seadme stabiilsust Dioode VD1 ja VD2 kasutatakse mikrokontrolleri toitepinge langetamiseks ligikaudu 3,6 V-ni - see on vajalik tasemete sobitamiseks USB siiniga.

Seadme juhtsignaalid genereeritakse mikrokontrolleri väljunditel PB0-PB5 ja PC0, PC1. Kõrge loogika tase- pinge umbes 3,4 V. Pinge madal tase nullilähedane. Väljunditega saate ühendada seadmeid, mis tarbivad voolu mitte rohkem kui 10 mA (igast väljundist). Kui on vaja suuri voolu või pinge väärtusi, tuleks kasutada sobivaid sõlme.

Seade on kokku pandud leivalaud, trükitud versiooni ei ole kasutatud, kondensaatorid C2 ja SZ on kõrgsageduslikud keraamilised kondensaatorid, C1 on K50-35 vms imporditud. Ränidioodid, mille pingelang ristmikul on umbes 0,7 V.

Mikrokontrolleri programm töötati välja keskkonnas Bascom-AVR versioonid 1.12.0.0. USB siiniga töötamiseks kasutatakse raamatukogu swusb.LBX, mis teostab reaalajas USB-signaalide tarkvara dekodeerimist. Saadud programmikood failist koos HEX laiendus tuleks laadida mikrokontrolleri FLASH-mällu. Mikrokontrolleri konfiguratsioonibittide olek peab vastama joonisel fig. 2.

Joonis 2

Kui ühendate seadme esimest korda arvutiga, tuvastab operatsioonisüsteem uue USB HID ühilduv seade nimega" uniUSB" ja installige vajalikud draiverid. Mõne sekundi pärast on seade konfigureeritud ja kasutamiseks valmis. Sellega töötamiseks loodi programm UniUSB. See on saadaval kahes versioonis: 32-bitiste (x86) ja 64-bitiste (x64) operatsioonisüsteemide jaoks Windowsi perekond. 32-bitist versiooni on testitud operatsioonisüsteemides Windowsi süsteemid 98, Windows XP, Windows 7 ja 64-bitine – ainult operatsioonisüsteemis Windows XP x64.

Programm UniUSB keeles kirjutatud PureBasic(versioon 4.31) teeki kasutades kohandatud funktsioonid HID_Lib, toetades tööd USB HID seadmeid. Välimus Programmi aken on näidatud joonisel fig. 3.

Joonis 3

Temaga samas kaustas käivitatav fail seal peaks olema fail nimega UniUSB_KOfl.txt. See fail salvestab skripti välisseadmete juhtimiseks. Programmi käivitumisel laaditakse failist andmed põhiaknas asuvasse tabelisse ning töö lõpetamisel salvestatakse faili. Vasakklõps tabeli lahtritel võimaldab muuta nende olekut: 1 - kõrge loogiline tase, 0 või tühi - madal loogiline tase.

Tabeli veeru lisamiseks või eemaldamiseks peate sellel klõpsama paremklõps hiirega ja valige kuvatavast menüüst vajalik toiming. Kui ühendate seadme USB-porti, tuvastab programm selle ja aktiveerib tööriistaribal akna ülaosas asuva nupu Start. Sellele nupule klõpsamine käivitab tabeli veergude sortimise ja neis näidatud väljundolekute seadistamise. Selguse huvides lisage tabelist vasakul olevate väljundite numbrid, millel Sel hetkel Loogika tase on seatud kõrgele. Otsingukiirus (aeg millisekundites veerust veergu üleminekute vahel) määratakse väljal "Kiirus, ms".

class="eliadunit">

Pange tähele, et Windowsi operatsioonisüsteem on multitegumtöötlus! See tähendab, et protsessori aeg jaguneb paljude, mõnikord kasutaja eest varjatud protsesside vahel, mida täidetakse kordamööda, võttes arvesse süsteemis seatud prioriteete. Seetõttu ei tohiks alla 100 ms intervallide hoidmisel oodata suurt täpsust.

Veergude sortimise korraks peatamiseks kasutage nuppu "Paus". Uuesti vajutades jätkatakse otsingut kohast, kus see peatus. Nupp "Stopp" peatab tabeli veergude vahel otsimise täielikult. Kui arvuti ja seadme vaheline teabevahetus ebaõnnestub või seade on pistikupesast lahti ühendatud Arvuti USB, teatab programm veast, kuvades olekuribal vastava teate.

Allikas: Raadio nr 2, 2011

Arhiiv artiklile "Load control via USB liides"
Kirjeldus: Lähtetekstid programmid, mikrokontrolleri püsivara fail, uniUSB programm
Faili suurus: 89,3 KB Allalaadimiste arv: 2 773

Lülituskiirus

COM-pordi valimine

Start ja pausi nupp

(pordi lubamine)

Stop nupp

(keela port)

Väljundi seadistusnupp

Manuaalsed nupud

juhtsisendid (1, 2, 3)

Tabeli tühjendamise nupp

Abi nupp

Väljumise nupp

Näitajad, mis simuleerivad

väljundoperatsioon

Tabeliruudustik väärtustega

(tühjad rakud
võrdne nulliga)

Koormuse juhtimiseks ahelates koos pidev pinge, näiteks 24 V, võite kasutada mis tahes võimsaid komposiittransistore - meie puhul KT829.

Vahetamiseks vahelduvvoolu 220V on kõige lihtsam kasutada nn pooljuht vahelduvvoolu lülitit, mille sisendis on optodriver, mille sisendis on faasinulldetektor, mis tagab galvaanilise isolatsiooni.

Lülitusvoolu suurendamiseks paigaldatakse radiaatorile triac. Pange tähele, et kõrgepingeosas kasutatakse takistusi võimsusega 0,5 W.

Ärge unustage ettevaatusabinõud - lüliti töötamise ajal ärge puudutage katmata elemente ning osade ja juhtmete uuesti jootmisel ühendage lüliti võrgust lahti.

Plaat on valmistatud ühepoolsest fooliumplaadist. Tahvli suurus 30x25mm. Mikroskeemi korpuse all olevasse tahvlisse on joodetud hüppaja. Mikroskeemi kaitsmiseks jootmise ajal ülekuumenemise eest kasutatakse mikroskeemi jaoks 16 kontaktiga paneeli.

Väljundite (LED-ide) juhtimiseks tuleb seade lihtsalt 4-juhtmelise juhtmega arvutiga ühendada. Juhe on joodetud standardse COM-pordi pistikuga - DB9 pesaga.

Digisisendite ühisjuhtme +5 V signaal võetakse seadme vooluringist. Digitaalsete sisendliinide takistid saab joota DB9 pesa korpusesse.

Digisisenditega saab ühendada nuppe, lülituslüliteid, mikrolüliteid.

viiteteave

Seadme aluseks on saadaolev 74hc595 kiip, mis kujutab endast väljundi lukustusega jadavahetusregister. Selle mikrolülituse juhtimiseks piisab kolmest signaaliliinist. Meie puhul algatatakse signaalid programmis UniCOM juhtimine ja väljastatakse RS-232 liidese (COM-pordi) kaudu. Selles liideses kasutatakse signaaliliinidena 9-kontaktilise pistiku liine: RTS - 7 pin, DTR - 4 pin ja TxD - 3 pin.

74hc595 mikroskeemi tööpõhimõte on DS-sisendisse (14 kontaktiga) edastatud kõrge ja madala taseme loogikasignaalide järjestikuse salvestamine. Salvestamine toimub langeva servaga (üleminek loogikast 1 loogikast 0) SH_CP sisendis (kontakt 11). Salvestatud andmete väljund toimub samuti langeva servaga, kuid ST_CP sisendil (12. jalg). Seega ilmuvad viigudele 1-7 ja 15 viimase kaheksa salvestatud signaali tasemed.

Kõrge signaalitase väljundites (kontaktid 1-7 ja 15) vastab mikrolülituse toitepingele - meie puhul +5 volti ja madal tase 0 volti. Väljundsignaalid on staatilised, st. muutumatuks kuni järgmise impulsi saabumiseni ST_CP sisendisse (12. jalg). Tuleb märkida, et toitepinge vähenemine alla miinimumtaseme viib väljundsignaalide lähtestamiseni. Kiibi dokumentatsiooni kohaselt minimaalne pinge toiteallikas on 2 volti.

RS-232 liides on liidestatud 74hc595 mikroskeemiga, kasutades 5,1 V zeneri dioode. Vastavalt RS-232 spetsifikatsioonile kõrge tase signaal jääb vahemikku +3 kuni +25 V, mis võimaldab meil organiseerida tagasisidet UniCOMi juhtimisprogrammiga.

Arvuti juhtimisseade
erinevaid seadmeid, mille skeem on näidatud joonisel fig. 1, funktsionaalselt sarnane
kirjeldatud, kuid ühendub arvuti USB-porti, mis (erinevalt
COM-pordist) on tänapäeval kõigis neist olemas. Seadme ainus kiip
- tavaline mikrokontroller ATmega8. See on organiseerimiseks vajalik
USB siini side. Kuigi sellel puudub spetsiaalne riistvara
moodul, seda funktsiooni teostatakse tarkvaras. Takisti R1 ühendatud vahele
toiteallika ja USB D-bussi liini positiivne klemm, edastab selle madalale kiirusele
LS-režiim vahetuskursiga 1,5 Mbit/s, mis võimaldab pakke dekrüpteerida
arvuti programmiliselt. Takistid R4 ja R5 kõrvaldavad siirdeid
protsessid, mis tekivad infovahetuse käigus, mis tõstab töö stabiilsust.
Kondensaator C1 blokeerib toiteahelas impulssmüra, mis samuti paraneb
seadme stabiilsus. Pinge vähendamiseks kasutatakse dioode VD1 ja VD2
andke mikrokontrollerile umbes 3,6 V pinge - see on vajalik
taseme sobitamine USB siiniga. Seadme juhtsignaalid genereeritakse sisse
mikrokontrolleri väljundid РВ0-РВ5 ja PC0, PC1. Kõrge loogika tase -
pinge on umbes 3,4 V. Madalpinge on nullilähedane. Väljapääsude juurde
Saate ühendada seadmeid, mis tarbivad kuni 10 mA voolu (igast väljundist).
Kui on vaja suuri voolu- või pingeväärtusi, tuleks kasutada sõlme
joonisel fig. 5 ja 6.

Seade on kokku pandud leivalauale,
trükitud versiooni ei välja töötatud. Kasutatakse MLT takisteid ja kondensaatoreid C2 ja C3 -
keraamiline kõrgsageduslik, C1 - K50-35 vms imporditud. Dioodid
räni, mille pingelang ristmikul on umbes 0,7 V. Programm mikrokontrollerile
välja töötatud Bascom-AVR keskkonna versioonis 1.12.0.0. USB siini tööks
Kasutatakse swusb.LBX teeki, mis teostab tarkvara signaali dekodeerimist
USB reaalajas. Saadud programmikood
HEX-laiendiga failist tuleks laadida mikrokontrolleri FLASH-mällu.
Sel eesmärgil kasutati programmeerijat koos sisseehitatud Bascom-AVR-iga
kasulikkust. Mikrokontrolleri konfiguratsioonibittide olek peab vastama
näidatud joonisel fig. 2. Seadme esmakordsel arvutiga ühendamisel operatsioonisüsteem
süsteem tuvastab uue nimega USB HID-ühilduva seadme
"uniUSB" ja installige vajalikud draiverid. Mõne sekundi pärast
Seade on konfigureeritud ja kasutamiseks valmis.

Sellega töötamiseks loodi programm
UniUSB. Seda pakutakse kahes versioonis: 32-bitise (x86) ja 64-bitise jaoks
(x64) Windowsi perekonna operatsioonisüsteemid. 32-bitise versiooni töö on kinnitatud
operatsioonisüsteemides Windows 98, Windows XP, Windows 7 ja 64-bit -
ainult opsüsteemis Windows XP x64. UniUSB programm on kirjutatud PureBasic keeles (versioon
4.31) kasutades kasutaja määratud funktsioonide teeki HID_lib,
USB HID-seadmetega töötamise toetamine. Programmi akna välimus
näidatud joonisel fig. 3. Samas kaustas selle käivitatava failiga peab olema
fail nimega UniUSB_Code.txt või UniCOM_Code.txt. Viimane võimalus on vajalik
aastal pakutud programmiga UniCOM ühilduvuse jaoks. Selles failis
Väliste seadmete juhtimise skript salvestatakse. Kui programm käivitub, siis andmed
failist laaditakse peaaknas asuvasse tabelisse ja pärast lõpetamist
tööd salvestatakse faili. Tabeli lahtritel vasak klõps võimaldab
muuta oma olekut: 1 - kõrge loogiline tase, 0 või tühi - madal
loogiline tase. Tabeli veeru lisamiseks või kustutamiseks peate seda kasutama
paremklõpsake ja valige kuvatavast menüüst vajalik toiming.

Seadme ühendamisel USB-porti
programm tuvastab selle ja aktiveerib ülaosas asuva nupu
aknad tööriistaribal. Sellel nupul klõpsates algab protsess
tabeli veergude otsimine ja neis näidatud väljundseisundite seadistamine. Sest
Suurema selguse huvides on väljundi numbrid tabelist vasakul esile tõstetud
mis on praegu seatud kõrgele loogilisele tasemele. Kiirus
otsing (aeg millisekundites veerust veergu üleminekute vahel) on määratud
väljal "Kiirus, ms".

Pange tähele, et operatsioonisüsteemiks on Windows
- multitegumtöö! See tähendab, et protsessori aeg on jagatud paljude vahel
mõnikord peidetud kasutaja protsesside eest, mida omakorda täidetakse
võttes arvesse süsteemis kehtestatud prioriteete. Nii et ärge oodake palju
ajavahemike hoidmise täpsus alla 100 ms. Lühiajaliseks
Veergude itereerimise lõpetamiseks kasutage nuppu Klõpsake sellel uuesti
jätkab otsimist kohast, kus see peatus. Nupp peatab täielikult veergude sortimise
tabelid. Kui arvuti ja seadme vahelise infovahetuse ajal
ilmneb rike või seade on arvuti USB-pistikust lahti ühendatud,
programm teatab veast, kuvades vastava
sõnum.

KIRJANDUS

1. Nosov T. Seadmete juhtimine
arvuti COM-pordi kaudu. - Raadio, 2007, nr 11,0.61,62.

2. Rõžkov A. USA programmeerija
AVR ja AT89S mikrokontrollerid, ühilduvad AVR910-ga. - Raadio, 2008, nr 7, lk.
28, 29.

Toimetaja käest. Mikrokontrolleri ja arvuti programmid asuvad
meie FTP-serveris aadressil ftp://ftp.radio.ru/pub/2011/02/uniUSB.zip

Lambi Interneti kaudu juhtimise kohta Habrel tekkis idee juhtida kodus valgustust arvutist ja kuna mul on arvutijuhtimine juba seadistatud mobiiltelefon, see tähendab, et valgust saab juhtida samast telefonist. Pärast artikli näitamist ühele mu töökaaslasele ütles ta, et just seda ta vajab. Sest tihtipeale jääb ta arvutist filme vaadates magama. Mõni aeg pärast filmi lõppu jääb ka arvuti magama ja lülitab monitori välja, kuid valgus toas jääb põlema. Need. otsustati, et sellest asjast on kasu ja hakkasin selle ime jaoks infot ja detaile koguma.
Ülejäänud info on habracuti all (ettevaatust, pilte on palju - liiklus).

Seadme skeem

Algne skeem võeti ühest Internetist leitud skeemist ja nägi välja selline:

Kuid ainult väikese muudatusega: optroni 4N25 1. kontakti ja 2. LPT viigu vahele lisati 390-oomine takisti ning sisselülitumisest märku andis ka LED. Ahel pandi kokku testrežiimis, s.o. lihtsalt vastavalt vajadusele juhtmetega ühendatud ja testitud. Selles versioonis lülitas ta lihtsalt sisse ja välja vana nõukogude taskulambi.
Otsustati, et kui juhtimist teha, siis mitte ühele seadmele, vaid vähemalt 4 seadmele (aluseks: üks lamp laual, kahe lülitiga lühter, varupesa). Peal selles etapis Tekkis vajadus koostada seadme tervikskeem ja algas erinevate programmide valik.
Installitud:

  1. KiCAD
  2. Kotkas
Pärast nende kõigi läbivaatamist otsustasin Eagle'i kasuks, kuna selle raamatukogus oli sarnaseid osi. Siin juhtus see:

Diagramm kasutab DB9 porti, st. tavaline COM-port, tehti seda nii plaadi ruumi kui ka pistikute endi kokkuhoiu eesmärgil (mul olid COM omad) ja kuna me kasutame ainult 5 juhet, siis sellest piisab meile ka varuga adapter DB25-ga (LPT) DB9-s (COM), minu puhul tehakse seda järgmiselt:
LPT 2-9 viik = COM 1-8 viik on andmejuhtimise kontaktid;
LPT 18-25 pin (sageli on need omavahel ühendatud) = COM 9 pin - see on meie maandus.
Kasutatakse ka skeemis lisatoit 12V juures relee toiteks, plaani järgi on see lihtne hiina laadija või võib-olla 9V Krona (üks relee töötab hästi, tuleb 4 kontrollida korraga). Arvuti pordi kinnitamiseks kasutatakse eraldi toiteallikat ja galvaanilist isolatsiooni optroni abil. Soovi korral saab seda loomulikult toita ka 12V arvuti toiteallikast, aga igaüks teeb seda ise ning omal riskil ja riskil.

Seadme loomiseks vajalikud osad
  1. COM-port - 1 tk
  2. toitepistik - 1 tk.
  3. roheline LED - 4 tk
  4. optronid 4n25 - 4 tk.
  5. iste optroni jaoks (mul oli ainult üks 8 jalale) - 4 tk.
  6. takisti 390 oomi - 4 tk.
  7. takisti 4,7 kOhm - 4 tk.
  8. transistor KT815G - 4 tk.
  9. relee HJR-3FF-S-Z - 4 tk.
  10. klambrid 3 kontaktile - 4 tk.
  11. foolium PCB

PCB skeemi ettevalmistamine

Proovin ettevalmistamiseks kasutada Eagle'i trükkplaat Sain aru, et see oleks veidi keeruline ja otsustasin leida lihtsama variandi. See valik oli sprint layout 5 programm, isegi kui see on tehtud Windowsi jaoks, kuid see töötab ilma probleemideta Linuxi all. Programmi liides on intuitiivne, venekeelne ja programmil on üsna selge spikker (help). Seetõttu kõike edasisi tegevusi PCB arendus viidi läbi sprindi paigutuses 5 (edaspidi SL5).
Kuigi paljud inimesed kasutavad see programm minu seadmete jaoks tahvlite väljatöötamiseks ei sisaldanud see vajalikke osi (isegi allalaaditud makrokogude hunnikus). Seetõttu pidime esmalt looma puuduvad osad:
  1. COM-port (see, mis paigaldusavade järgi ei olnud sama, mis minu oma)
  2. pistikupesa
  3. kolmeharuline klamber
  4. relee HJR-3FF-S-Z
Nende osade tüübid:

Pärast vajalike osade lisamist algas trükkplaadi tegelik projekteerimine. See võttis mitu katset, neid oli umbes viis. Iga tahvli versioon trükiti papile, augud torgati ja neisse pisteti osad. Tegelikult selgus, et minu COM-port ei ühti SL5-s olevaga. Väike viga ilmnes ka releeahelas - tegelikult oli relee korpus nihutatud 2-3 mm. Loomulikult parandati kõik vead.
Esimesel trükitud versioonil selgus, et pole veel õige ühendus transistor, kaks kontakti olid segamini.
Pärast kõiki parandusi ja kohandusi saime järgmise tahvli:

SL5-l on tahvli vaatamiseks fotovaate funktsioon. Siin näeb see välja:

Tahvli lõplikus versioonis on radadele veel mõned näpunäited, kuid muidu näeb see välja sama.

SL5-l on ka mugav variant Tahvli printimisel saate peita mittevajalikud kihid ja valida iga kihi prindivärvi, mis on väga kasulik.

PCB ettevalmistamine

Plaat otsustati teha LUT meetodil (laser-raud tehnoloogia). Järgmisena on kogu protsess fotol.

Lõigake PCB-st vajaliku suurusega tükk välja.

Võtame peeneima liivapaberi ja puhastame hoolikalt vasepinna.

Pärast pinna puhastamist tuleb see pesta ja rasvatustada. Võite seda pesta veega ja rasvatustada atsetooniga (minu puhul oli see lahusti 646).
Järgmisena trükime edasi laserprinter kaetud paberil meie tahvlil, unustamata seada printerit kõige paksemale prindile (toonerit säästmata). See valik osutus veidi ebaõnnestunuks, kuna tooner määris, kuid teine ​​katse oli täpselt paras.

Nüüd peate joonise paberilt tekstoliidile üle kandma. Selleks lõikame kujunduse välja ja kanname tekstoliidile, proovime seda vastavalt vajadusele joondada ja seejärel triikrauaga soojendada. Kogu pind on vaja põhjalikult kuumutada, et tooner sulaks ja kleepuks vase pinnale. Seejärel laseme laual veidi jahtuda ja läheme jooksva vee alla märjaks. Kui paber saab piisavalt märjaks, tuleb see tahvlist eraldada. Tahvlile jääb ainult kinni jäänud tooner. See näeb välja selline:

Järgmisena peate valmistama söövitamise lahenduse. Kasutasin selleks raudkloriidi. Raudkloriidi purgi peal on kirjas, et lahust tuleb teha 1 kuni 3. Ma kaldusin sellest veidi kõrvale ja tegin 60 g raud(III)kloriid 240 g vee kohta, s.o. Selgus 1:4, vaatamata sellele toimus tahvli söövitus normaalselt, ainult veidi aeglasemalt. Pange tähele, et kuiva raudkloriidi vees lahustamise protsess tekitab soojust, nii et peate selle väikeste portsjonitena vette valama ja segama. Loomulikult on söövitamiseks vaja kasutada mittemetallist anumaid, minu puhul oli tegemist plastmahutiga (nagu heeringaga). Sain sellise lahenduse:

Enne plaadi langetamist lahusesse kasutasin selle liimimiseks teipi tagakülgõngenöör, et hõlbustada laua eemaldamist ja ümberpööramist. Kui lahus peaks kätele sattuma, tuleks see kiiresti seebiga maha pesta (seep neutraliseerib), kuid plekid võivad ikkagi jääda, kõik oleneb konkreetsetest tingimustest. Riietelt plekke ei eemaldata üldse, aga mul vedas, et ma seda enda jaoks ei katsetanud. Plaat tuleks kasta lahusesse vaskpoolega allapoole ja mitte üleni tasaseks, vaid viltu. Aeg-ajalt on soovitatav plaati kaevandamisest puhastada, kuna see segab edasist söövitamist. Seda saab teha vatitupsude abil.

Kogu söövitamise protsess võttis mul aega 45 minutit, 40 minutist oleks piisanud, aga ma olin veel ühe asjaga hõivatud.
Pärast söövitamist peseme tahvli seebiga, rebime lindi õngenööriga maha ja saame:

Tähelepanu! Ärge valage raudkloriidi lahust kraanikaussi (kanalisatsiooni) - see võib kahjustada valamu metallosi ja üldiselt võib lahusest siiski kasu olla.
Järgmiseks peame tooneri maha pesema, seda tehakse edukalt sama lahustiga 646, mida kasutati rasva eemaldamiseks ( pikk kontakt lahusti nahaga võib seda kahjustada).

Järgmine samm on aukude puurimine. Algul olid mul plaadil 1 mm ja 1,5 mm augud, kuna ma ei leidnud õhemaid puure. Samuti ei olnud meie linnast võimalik leida tangpadruni, millega seda elektrimootori külge kinnitada, nii et kõik tehti suure puuriga.

Esimene seade saabus

Esimest korda võtsin ainult kaks külvikut ja sellise külviku kasutamisel osutus sellest väheks. Üks puur purunes ja teine ​​oli painutatud. Kõik, mis mul esimesel päeval õnnestus puurida:

Järgmisel päeval ostsin viis puuri. Ja neid oli täpselt piisavalt, sest kui nad ei purune (muide, ainult üks viiest purunes), muutuvad nad tuhmiks ja tuhmidega puurimisel roomikud riknevad ja vask hakkab maha kooruma. Pärast plaadi täielikku puurimist saame:

Pärast puurimist on vaja plaati tinatada. Selleks kasutasin vana moodi- jootekolb, räbusti TAGS ja tina. Tahtsin seda proovida Rose sulamiga, kuid seda meie linnast ei leia.

Pärast tinatamist saame järgmise tulemuse:

Järgmiseks tuleb plaati pesta, et eemaldada räbustijäägid, kuna TAGS on veega puhastatav, saab seda teha kas vee või alkoholiga. Tegin midagi vahepealset - pesin vana viinaga ja pühkisin vatitupsudega. Pärast kõiki neid samme on meie tahvel valmis.

Osade paigaldamine

Tahvli õigsuse kontrollimiseks panen esialgu kokku ainult ühe (neljast) osade rea, kunagi ei tea, kust viga on sisse hiilinud.

Pärast osade paigaldamist läheme ja ühendame seadme arvutiga LPT kaudu, adapter DB25(LPT)-st DB9(COM) on joodetud järgmisel kujul:

  • 2 kontaktiga DB25 kuni 1 kontaktiga DB9
  • 3 kontaktiga DB25 kuni 2 kontaktiga DB9
  • 4 kontaktiga DB25 kuni 3 kontaktiga DB9
  • 5 kontaktiga DB25 kuni 4 kontaktiga DB9
  • 6 kontaktiga DB25 kuni 5 kontaktiga DB9
  • 7 kontaktiga DB25 kuni 6 kontaktiga DB9
  • 8 kontaktiga DB25 kuni 7 kontaktiga DB9
  • 21 kontaktiga DB25 (võimalik on mis tahes 18 kuni 25) kuni 9 kontaktiga DB9
Kuna kasutatud traat oli tavaline keerdpaar, siis üks juhtmestik oli puudu, aga jaoks sellest seadmest piisab vaid viiest juhtmest, nii et see valik sobib. Meie lülitatud koormus on lihtne nõukogude taskulamp. Noh, toiteallikana - universaalne Hiina plokk toiteallikas (4 pistikut ja toiteallikas 3 kuni 12 V). Siin on kõik kokku pandud:

Kuid seade juba töötab:

Sellega lõppes veel üks õhtu ja ülejäänud osade paigaldamine jäi järgmiseks päevaks.

Ja siin on täielikult kokku pandud seade:

Noh lühike video selle toimimise kohta (kvaliteet pole eriti hea, mul polnud midagi korralikult maha võtta)

See on kõik, jääb üle vaid leida seadmele tavaline ümbris ja see kasutusele võtta.

Tarkvara osa

Loomulik juhtimiseks LPT port om vaja mingit tarkvara, aga kuna mul on kodu linux, siis otsustati lihtsalt ise kirjutada kõige lihtsam programm ning seejärel see lõpule viia ja vastavalt vajadusele kohandada. Ta nägi välja umbes selline:
#kaasa
#kaasa
#kaasa
#kaasa
#define BASE 0x378
#define AEG 100000
int main()
{
int x = 0x0F;
int y = 0x00;
if (ioperm(BASE, 1, 1))
{
perror("ioperm()");
väljumine(77);
}
outb(x,BASE);
tagasi 0;
}

See programm saadab LPT porti 0x0F = 00001111, st. toidab 1 viikudele 2-5 (Data0-Data3) ja see on meie juhtpinge kontaktide 2-5 ja maanduse vahel (kontaktid 18-25), nii et kõik neli releed lülituvad sisse. Täpselt samamoodi töötab programm 0x00 saatmiseks porti sulgemiseks, lihtsalt saadab x asemel y - outb (y, BASE). Samuti saate lugeda pordi olekut:
#define BASEPORT 0x378 /* lp1 */
...
printf("olek: %d\n", inb(BASEPORT));
...

Selle programmi ainus hoiatus on see, et see tuleb käivitada juurkasutajana, kuna lihtsale kasutajale iopermi funktsioon pole saadaval. Ma arvan, et me ei pea teile ütlema, kuidas sellist probleemi lahendada, igaüks valib endale sobivaima variandi.

Seejärel muudeti programmi nii, et parameetrite edastamisega käsurida sai täpsustada, millise seadmega ja mida teha.
Väljund "sw --help":
Programm releede juhtimiseks LPT pordi kaudu.
Programmil võib olla üks või kaks parameetrit.
Parameetri vorming: sw [seadme number] [toiming]
seadme number - 1 kuni 8
tegevus - "sees", "väljas", "st" - sees, väljas, olek
Näide: "sw 2 on" teise seadme sisselülitamiseks või "sw --help" abi kuvamiseks

PS kui kellelgi vaja, siis saan kuhugi postitada sl5-s oleva plaadiskeemi faili ja juhtprogrammi lähtekoodi.