Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • vijesti
  • Upravljanje opterećenjem putem usb-a. Ryabenky V.M

Upravljanje opterećenjem putem usb-a. Ryabenky V.M

P. VYSOCHANSKY, Rybnica, Transnistria, Moldavija

Uređaj za kompjutersko upravljanje raznim uređajima, čiji je dijagram prikazan na sl. 1, funkcionalno sličan onom opisanom u, ali se povezuje na USB port računara, koji se (za razliku od COM porta) danas nalazi u svakom od njih. Jedini mikrokolo uređaja je uobičajeni ATmega8 mikrokontroler. Neophodan je za organizaciju komunikacije preko USB magistrale. Iako mu nedostaje namenski hardverski modul, ova funkcija se izvodi u softveru.

Otpornik R1, povezan između pozitivnog terminala napajanja i USB D-bus linije, stavlja ga u LS režim niske brzine sa brzinom prijenosa od 1,5 Mbit/s, što omogućava softversko dešifriranje računala. Otpornici R4 i R5 eliminišu komunikacijske tranzijente za povećanu stabilnost. Kondenzator C1 blokira impulsni šum u krugu napajanja, što također poboljšava stabilnost uređaja. Diode VD1 i VD2 se koriste za snižavanje napona napajanja mikrokontrolera na približno 3,6 V - to je potrebno da bi se uskladili nivoi sa USB magistralom. Kontrolni signali instrumenta se generišu na izlazima PBO-PB5 i RSO, PC1 mikrokontrolera. Visok logički nivo - napon oko 3,4 V. Napon niskog nivoa je blizu nule. Na izlaze se mogu priključiti uređaji koji ne troše više od 10 mA struje (sa svakog izlaza). Ako su potrebne velike vrijednosti struje ili napona, tada se podudaraju čvorovi prikazani na sl. 5 i 6.

Uređaj je montiran na matičnoj ploči, štampana ploča nije razvijena. Korišteni otpornici MLT, kondenzatori C2 i SZ - keramički visokofrekventni, C1 - K50-35 ili slično uvozni. Silicijumske diode sa padom napona na spoju od oko 0,7 V.

Program za mikrokontroler je razvijen u Bascom-AVR okruženju verzije 1.12.0.0. Za rad sa USB magistralom korišćena je biblioteka swusb.LBX koja vrši softversko dekodiranje USB signala u realnom vremenu. Programski kod dobijen kao rezultat kompilacije iz datoteke sa ekstenzijom HEX treba učitati u FLASH memoriju mikrokontrolera. Za to je korišten programator zajedno sa uslužnim programom ugrađenim u Bascom-AVR. Stanje bitova konfiguracije mikrokontrolera mora odgovarati onom prikazanom na sl. 2.

Kada prvi put povežete uređaj sa računarom, operativni sistem otkriva novi USB HID kompatibilan uređaj pod nazivom "uniUSB" i instalira potrebne drajvere. Nakon nekoliko sekundi uređaj je postavljen i spreman za upotrebu. Za rad s njim kreiran je UniUSB program. Predstavljen je u dvije verzije: za 32-bitne (x86) i 64-bitne (x64) Windows operativne sisteme. 32-bitna verzija je testirana u Windows 98, Windows XP, Windows 7, a 64-bitna verzija je testirana samo u Windows XPx64.

UniUSB program je napisan u PureBasicu (verzija 4.31) koristeći biblioteku prilagođenih funkcija HIDJJb koja podržava USB HID uređaje. Izgled prozora programa prikazan je na sl. 3.

U istoj fascikli sa izvršnom datotekom, mora postojati datoteka pod nazivom UniUSB_KOfl.txt ili UniCOM_KOfl.txt. Posljednja opcija je potrebna za kompatibilnost sa UniCOM programom predloženim u. Ova datoteka sadrži skriptu za kontrolu vanjskih uređaja. Kada se program pokrene, podaci iz datoteke se učitavaju u tabelu koja se nalazi u glavnom prozoru, a kada program završi, pohranjuju se u datoteku. Lijevi klik na ćelije tabele omogućava vam da promijenite njihovo stanje: 1 - visoki logički nivo, 0 ili prazno - niski logički nivo.

Da biste dodali ili uklonili kolonu tabele, potrebno je da kliknete desnim tasterom miša na nju i izaberete potrebnu radnju u meniju koji se pojavi.

Kada je uređaj povezan na USB port, program ga detektuje i aktivira dugme> koje se nalazi na vrhu prozora na traci sa alatkama. Pritiskom na ovo dugme pokreće se proces nabrajanja kolona tabele i postavljanja stanja u njima naznačenih izlaza. Radi veće jasnoće, lijevo od tabele, označeni su brojevi izlaza na kojima je trenutno postavljen visoki logički nivo. Brzina pretraživanja (vrijeme u milisekundama između prijelaza iz stupca u kolonu) se postavlja u polju "Brzina, ms".

Uzmite u obzir operativni sistem Windows - multitasking! To znači da je vrijeme procesora podijeljeno na mnoge procese, ponekad skrivene od korisnika, koji se izvršavaju redom, uzimajući u obzir prioritete postavljene u sistemu. Stoga ne treba očekivati ​​visoku tačnost držanja vremenskih intervala manjim od 100 ms.

Da biste trenutno zaustavili iteraciju preko kolona, ​​koristite dugme JB. Ponovnim pritiskom nastavlja se pretraga od tačke zaustavljanja. Dugme ■ potpuno zaustavlja iteraciju po kolonama tabele. Ako tokom razmjene informacija između računara i uređaja dođe do kvara ili se uređaj isključi iz USB konektora računara, program će prijaviti grešku tako što će prikazati odgovarajuću poruku u statusnoj traci.

Razred 1 Razred 2 Razred 3 Razred 4 Razred 5

Računarski upravljački uređaj za različite uređaje, čiji je dijagram prikazan na sl. 1, povezuje se na USB port računara, koji se danas nalazi u svakom od njih. Jedini mikrokolo uređaja je uobičajeni mikrokontroler ATmega8... Potreban je za organizaciju autobuske komunikacije. USB... Iako mu nedostaje namenski hardverski modul, ova funkcija se izvodi u softveru.

Slika 1

Otpornik R1, povezan između pozitivnog terminala napajanja i USB D-bus linije, stavlja ga u LS režim niske brzine sa brzinom prijenosa od 1,5 Mbit/s, što omogućava softversko dešifriranje računala. Otpornici R4 i R5 eliminišu komunikacijske tranzijente za povećanu stabilnost. Kondenzator C1 blokira impulsni šum u strujnom kolu, što takođe poboljšava stabilnost uređaja.Diode VD1 i VD2 se koriste za snižavanje napona napajanja mikrokontrolera na približno 3,6 V - ovo je potrebno za usklađivanje nivoa sa USB magistralom.

Upravljački signali instrumenta se generišu na izlazima RV0-RV5 i RS0, RS1 mikrokontrolera. Visok logički nivo - napon oko 3,4 V. Napon niskog nivoa je blizu nule. Na izlaze se mogu priključiti uređaji koji ne troše više od 10 mA struje (sa svakog izlaza). Ako su potrebne velike vrijednosti struje ili napona, tada treba koristiti odgovarajuće čvorove.

Uređaj je montiran na matičnoj ploči, štampano kolo nije razvijeno, korišteni su MLT otpornici, kondenzatori C2 i CZ su visokofrekventni keramički, C1 - K50-35 ili slično uvozni. Silicijumske diode sa padom napona na spoju od oko 0,7 V.

Program za mikrokontroler je razvijen u okruženju Bascom-AVR verzije 1.12.0.0. Biblioteka je korišćena za rad sa USB magistralom swusb.LBX koji vrši softversko dekodiranje USB signala u realnom vremenu. Programski kod dobijen kao rezultat kompilacije iz datoteke sa ekstenzijom HEX treba učitati u FLASH memoriju mikrokontrolera. Stanje bitova konfiguracije mikrokontrolera mora odgovarati onom prikazanom na sl. 2.

Slika 2

Kada prvi put povežete uređaj sa računarom, operativni sistem detektuje novi USB HID kompatibilan uređaj pod nazivom " uniUSB"i instalira potrebne drajvere. Za nekoliko sekundi uređaj je konfigurisan i spreman za upotrebu. Za rad sa njim kreiran je UniUSB program. Predstavljen je u dvije verzije: za 32-bitnu (x86) i 64-bitnu ( x64) Windows operativni sistemi 32-bitna verzija je testirana u Windows 98, Windows XP, Windows 7, a 64-bitna verzija samo u Windows XP x64.

Program UniUSB napisano na jeziku PureBasic(verzija 4.31) koristeći biblioteku prilagođenih funkcija HID_Lib podrška radu sa USB HID uređaja. Izgled prozora programa prikazan je na sl. 3.

Slika 3

U istoj fascikli sa izvršnom datotekom, trebalo bi da postoji datoteka pod nazivom UniUSB_KOfl.txt... Ova datoteka sadrži skriptu za kontrolu vanjskih uređaja. Kada se program pokrene, podaci iz datoteke se učitavaju u tabelu koja se nalazi u glavnom prozoru, a kada program završi, pohranjuju se u datoteku. Lijevi klik na ćelije tabele omogućava vam da promijenite njihovo stanje: 1 - visoki logički nivo, 0 ili prazno - niski logički nivo.

Da biste dodali ili uklonili kolonu tabele, potrebno je da kliknete desnim tasterom miša na nju i izaberete potrebnu radnju u meniju koji se pojavi. Kada je uređaj povezan na USB port, program ga detektuje i aktivira dugme "Start" koje se nalazi na vrhu prozora na traci sa alatkama. Pritiskom na ovo dugme pokreće se proces nabrajanja kolona tabele i postavljanja stanja u njima naznačenih izlaza. Radi veće jasnoće, lijevo od tabele, označeni su brojevi izlaza na kojima je trenutno postavljen visoki logički nivo. Brzina pretraživanja (vrijeme u milisekundama između prijelaza iz stupca u kolonu) se postavlja u polju "Brzina, ms".

class = "eliadunit">

Uzmite u obzir operativni sistem Windows - multitasking! To znači da je vrijeme procesora podijeljeno na mnoge procese, ponekad skrivene od korisnika, koji se izvršavaju redom, uzimajući u obzir prioritete postavljene u sistemu. Stoga ne treba očekivati ​​visoku tačnost držanja vremenskih intervala manjim od 100 ms.

Koristite dugme "Pauza" da nakratko zaustavite iteraciju po kolonama. Ponovnim pritiskom nastavlja se pretraga od tačke zaustavljanja. Dugme "Stop" potpuno zaustavlja iteraciju po kolonama tabele. Ako tokom razmjene informacija između računara i uređaja dođe do kvara ili se uređaj isključi iz USB konektora računara, program će prijaviti grešku tako što će prikazati odgovarajuću poruku u statusnoj traci.

Izvor: Radio broj 2, 2011

Arhiva za članak "Upravljanje opterećenjem putem USB interfejsa"
Opis: Izvorni kodovi programa, fajl firmvera mikrokontrolera, uniUSB program
Veličina fajla: 89,3 KB Broj preuzimanja: 2 773

Na Habré-u o kontroli lampe putem interneta došla je ideja da se rasvjetom kod kuće upravlja sa kompjutera, a pošto već imam podešenu kompjutersku kontrolu sa mobilnog, to znači da se svjetlom može upravljati i sa isti telefon. Nakon što je jednom od mojih kolega pokazao članak, rekao je da mu samo treba. Pošto često zaspi iza filmova koje gleda na kompjuteru. Neko vrijeme nakon završetka filma i kompjuter zaspi i gasi monitor, ali svjetlo u prostoriji ostaje upaljeno. One. odlučeno je da je stvar korisna i počeo sam prikupljati informacije i detalje za ovo čudo.
Ostatak informacija je pod habracutom (pazite sa puno slika - saobraćaj).

Dijagram uređaja

Za originalnu šemu uzeta je jedna od šema pronađenih na internetu i izgledala je ovako:

Ali samo uz malu promjenu: dodat je otpornik od 390 Ohma između 1. pina 4N25 optokaplera i 2. pina LPT-a, a dodana je i LED koja označava uključenje. Kolo je sastavljeno u test modu, tj. samo spojeno po potrebi i testirano. U ovoj verziji jednostavno je uključivala i gasila staru sovjetsku baterijsku lampu.
Odlučeno je da ako je kontrola već obavljena, onda ne za jedan uređaj, već za najmanje 4 uređaja (na osnovu: jedne lampe na stolu, lustera za dva prekidača, rezervne utičnice). U ovoj fazi postalo je potrebno izgraditi kompletan krug uređaja, te se počelo birati različite programe.
Instalirani su:

  1. KiCAD
  2. orao
Nakon što sam ih sve pogledao, odlučio sam se za Orla, jer je u njegovoj biblioteci bilo "sličnih" dijelova. Evo šta se u njemu dogodilo:

Dijagram koristi DB9 port, tj. običan COM port, to je urađeno iz razloga uštede kako prostora na ploči tako i samih konektora (imao sam COM), a pošto ćemo koristiti samo 5 provodnika to će nam biti dovoljno sa marginom.Tako i mi napravite adapter sa DB25 (LPT) na DB9 (COM), u mom slučaju to se radi na sljedeći način:
LPT 2-9 pin = COM 1-8 pin su pinovi za kontrolne podatke;
LPT 18-25 pin (često su međusobno povezani) = COM 9 pin - ovo je naše uzemljenje.
Također, kolo koristi dodatno napajanje od 12V za napajanje releja, po planu će to biti običan kineski punjač ili možda krunica od 9V (jedan relej radi dobro, potrebno je provjeriti 4 istovremeno). Za osiguranje porta računara koriste se odvojeno napajanje i galvanska izolacija pomoću optokaplera. Ako želite, možete se, naravno, napajati iz računarskog napajanja od 12 V, ali svako to radi sam i na svoju odgovornost i rizik.

Potrebni dijelovi za izradu uređaja
  1. COM port - 1 kom
  2. konektor za napajanje - 1 kom
  3. zelena LED - 4 kom
  4. optospojnik 4n25 - 4 kom
  5. sjedište za optospojnicu (imao sam samo 8 nogu) - 4 kom
  6. otpornik 390 Ohm - 4 komada
  7. otpornik 4,7 kOhm - 4 kom
  8. tranzistor KT815G - 4 komada
  9. relej HJR-3FF-S-Z - 4 kom
  10. stezaljke za 3 kontakta - 4 kom.
  11. folijski tekstolit

Priprema izgleda PCB-a

Nakon što sam pokušao upotrijebiti Eagle za pripremu PCB-a, shvatio sam da će to biti teško i odlučio sam pronaći lakšu opciju. Ova opcija je program sprint layout 5, čak i ako je u izvršavanju za Windows, ali radi bez problema u wine pod linuxom. Interfejs programa je intuitivan, na ruskom jeziku i program ima prilično jasnu pomoć (pomoć). Stoga su sve dalje radnje za razvoj štampane ploče izvedene u sprint rasporedu 5 (u daljem tekstu SL5).
Iako mnogi ljudi koriste ovaj program za razvoj ploča za svoje uređaje, on nije sadržavao dijelove koji su mi bili potrebni (čak ni u gomili preuzetih kolekcija makroa). Stoga sam prvo morao napraviti dijelove koji nedostaju:
  1. COM port (onaj koji se nije poklopio sa mojim, duž rupa za montažu)
  2. utičnica
  3. stezaljka za tri kontakta
  4. relej HJR-3FF-S-Z
Pogled na ove dijelove:

Nakon dodavanja potrebnih detalja, započeo je sam dizajn PCB-a. Trebalo je nekoliko pokušaja, bilo ih je oko pet. Svaka verzija ploče je odštampana na kartonu, probušene su rupe i u njih umetnuti dijelovi. Zapravo, otkriveno je da moj COM port ne odgovara onom koji je bio u SL5. Pojavila se i mala greška u krugu releja - u stvari, kućište releja je pomaknuto za 2-3 mm. Naravno, sve greške su ispravljene.
Na prvoj štampanoj verziji pokazalo se da tranzistor nije ispravno spojen, dva kontakta su pomiješana.
Nakon svih ispravki i prilagođavanja, dobili smo sljedeću ploču:

SL5 ima funkciju PhotoView za pregled ploče, ovako izgleda na njoj:

Na konačnoj verziji ploče, staze će biti malo izmijenjene, ali inače izgleda isto.

SL5 takođe ima zgodnu opciju za štampanje ploče, možete sakriti nepotrebne slojeve i odabrati boju štampe za svaki sloj, što je veoma korisno.

Priprema PCB-a

Odlučeno je da se ploča napravi LUT metodom (laser-iron tehnologija). Nadalje, cijeli proces je na fotografiji.

Izrežite komad PCB-a potrebne veličine.

Uzimamo najfiniji brusni papir i pažljivo čistimo bakrenu površinu.

Nakon čišćenja površine, potrebno je isprati i odmastiti. Možete isprati vodom, a odmastiti acetonom (u mom slučaju je to bio rastvarač 646).
Zatim štampamo našu ploču na laserskom štampaču na premazanom papiru, ne zaboravljajući da u štampač ugradimo najhrabriji otisak (bez uštede tonera). Ova opcija se pokazala malo neuspješnom, jer je toner bio razmazan, ali još jedan pokušaj je bio sasvim u redu.

Sada morate prenijeti crtež s papira na tekstolit. Da biste to učinili, izrežite crtež i nanesite ga na PCB, pokušajte ga poravnati po potrebi, a zatim ga zagrijte peglom. Cela površina mora biti dobro zagrejana kako bi se toner otopio i prionuo na površinu bakra. Zatim pustite da se daska malo ohladi i namočite je pod tekućom vodom. Kada se papir dovoljno navlaži, mora se odvojiti od ploče. Samo toner zalijepljen na ploču. izgleda ovako:

Zatim morate pripremiti otopinu za graviranje. Za ovo sam koristio željezni hlorid. Na tegli sa željeznim hloridom piše da se otopina mora napraviti 1 prema 3. Malo sam odstupio od ovoga i napravio 60 g željeznog hlorida na 240 g vode, tj. ispalo je 1 prema 4, uprkos tome, ploča je urezana normalno, samo malo sporije. Imajte na umu da je proces rastvaranja suhog željeznog klorida u vodi praćen oslobađanjem topline, pa se mora dodati u vodu u malim porcijama i miješati. Naravno, za jetkanje je potrebno koristiti nemetalno posuđe, u mom slučaju to je bila plastična posuda (kao od haringe). Dobio sam sljedeće rješenje:

Prije nego što sam dasku spustio u otopinu, zalijepio sam traku za pecanje na njenu stražnju stranu ljepljivom trakom, kako bi bilo zgodnije uzeti i okrenuti dasku. Ako vam otopina dospije na ruke, morate je brzo oprati sapunom (sapun neutralizira), ali mrlje mogu ostati, sve ovisi o konkretnim uvjetima. Mrlje se uopšte ne skidaju sa odeće, ali ja sam imala sreću da to sama nisam proverila. Dasku je potrebno uroniti u rastvor bakrenim premazom i to ne sve ravno, već pod uglom. Povremeno je preporučljivo očistiti ploču od rada, jer ometa dalje jetkanje. To se može učiniti pamučnim štapićima.

Cijeli proces graviranja mi je trajao 45 minuta, 40 minuta bi bilo dovoljno, ali sam bio zauzet samo još jednom stvari.
Nakon jetkanja, dasku operemo sapunom, otkinemo traku sa vrpcom i dobijemo:

Pažnja! Nemojte sipati otopinu željeznog klorida u sudoper (kanalizaciju) - to može oštetiti metalne dijelove sudopera, a općenito, otopina može biti od koristi.
Zatim moramo isprati toner, to se uspješno radi sa istim otapalom 646 koji je korišten za odmašćivanje (dugotrajni kontakt rastvarača sa kožom može je oštetiti).

Sljedeći korak je bušenje rupa. U početku sam imao rupe od 1 mm i 1,5 mm na ploči, jer nisam mogao pronaći tanje burgije. Ni u našem gradu nije bilo moguće pronaći steznu steznu glavu za pričvršćivanje na elektromotor, pa je sve rađeno velikom bušilicom.

Pojavio se prvi uređaj

Prvi put sam uzeo samo dvije bušilice, ali kada sam koristio takvu bušilicu, to nije bilo dovoljno. Jedna burgija se pokvarila, a druga se savijala. Sve što sam uspeo da izbušim prvog dana:

Sutradan sam kupio pet bušilica. I bili su taman dovoljni, jer ako se ne slome (usput, slomio sam samo jedan od pet), onda postaju tupi, a pri bušenju s tupim, tragovi se pogoršavaju, bakar se počinje ljuštiti. Nakon potpunog bušenja ploče dobijamo:

Nakon bušenja, ploča mora biti kalajisana. Za to sam koristio staru metodu - lemilicu, TAGS fluks i lim. Hteo sam da probam da koristim Roseovu leguru, ali ne mogu da je nađem u našem gradu.

Nakon kalajisanja dobijamo sledeći rezultat:

Zatim morate isprati ploču kako biste uklonili ostatke fluksa, budući da se TAGS može prati u vodi, to možete učiniti vodom ili alkoholom. Uradio sam nešto između - oprao sam ga starom votkom i obrisao pamučnim štapićima. Nakon svih ovih koraka, naša ploča je spremna.

Montaža delova

Da provjerim ispravnost ploče, u početku sklapam samo jedan (od četiri) red dijelova, nikad se ne zna gdje se uvukla greška.

Nakon ugradnje dijelova idemo i spajamo uređaj na računalo preko LPT-a, za to je zalemljen adapter sa DB25 (LPT) na DB9 (COM) u sljedećem obliku:

  • 2-pinski DB25 do 1-pinski DB9
  • 3-pinski DB25 do 2-pinski DB9
  • Pin 4 od DB25 do pina 3 od DB9
  • 5-pinski DB25 do 4-pinski DB9
  • 6-pinski DB25 do 5-pinski DB9
  • 7-pinski DB25 do 6-pinski DB9
  • 8-pinski DB25 do 7-pinski DB9
  • 21 pin DB25 (mogući su bilo koji broj od 18 do 25) na pin 9 DB9
Budući da je kao žica korištena obična upletena parica, jedno ožičenje nije bilo dovoljno, već je za ovaj uređaj dovoljno samo pet žica, tako da je ova opcija prikladna. Koristimo jednostavnu sovjetsku baterijsku lampu kao opterećenje koje treba uključiti. Pa, kao napajanje - univerzalno kinesko napajanje (4 konektora i napajanje od 3 do 12 V). Evo svega sastavljeno:

Ali uređaj već radi:

Time je završeno još jedno veče, a montaža ostalih delova je ostavljena sledećeg dana.

A evo i potpuno sastavljenog uređaja:

Pa i mali video o tome kako radi (kvalitet nije baš dobar, nije se imalo šta normalno snimati)

To je sve, ostaje samo pronaći normalno kućište za uređaj i pokrenuti ga.

Softverski dio

Naravno, za upravljanje LPT portom potreban vam je softver, ali pošto imam linux kod kuće, odlučeno je da sam napišem najjednostavniji program, a zatim ga dodam i prilagodim po potrebi. Izgledalo je otprilike ovako:
#include
#include
#include
#include
#define BASE 0x378
#define VRIJEME 100000
int main ()
{
int x = 0x0F;
int y = 0x00;
if (ioperm (BASE, 1, 1))
{
perror ("ioperm ()");
izlaz (77);
}
outb (x, BASE);
return 0;
}

Ovaj program šalje port 0x0F = 00001111 na LPT, tj. napaja 1 do 2-5 pinova (Data0-Data3), a ovo je naš kontrolni napon između 2-5 pinova i mase (18-25 pinova), tako da će se sva četiri releja uključiti. Program za slanje 0x00 na port za gašenje radi na isti način, samo šalje y - outb (y, BASE) umjesto x. Također možete pročitati stanje porta:
#define BASEPORT 0x378 / * lp1 * /
...
printf ("status:% d \ n", inb (BASEPORT));
...

Jedina nijansa ovog programa je da se mora pokrenuti kao root, pošto funkcija ioperm nije dostupna običnom korisniku. Mislim da ne možete reći kako riješiti takav problem, svi će odabrati prikladniju opciju.

Naknadno je program modificiran tako da je prosljeđivanjem parametara komandne linije u njega bilo moguće naznačiti s kojim uređajem i šta treba raditi.
Izlaz "sw --help":
Program za upravljanje relejem preko LPT porta.
Program može imati jedan ili dva parametra.
Format parametra: sw [broj uređaja] [akcija]
broj uređaja - od 1 do 8
akcija - "uključeno", "isključeno", "st" - omogući, onemogući, status
Primjer: "sw 2 on" za omogućavanje drugog uređaja ili "sw --help" za prikaz pomoći

PS Ako nekome zatreba, mogu staviti datoteku sa šemom ploče u sl5 i izvor kontrolnog programa negdje.

Računar, neki detalji, alati svako može sa ovog računara organizovati jednostavnu kontrolu kućnih aparata. Mnogi uređaji koji se koriste u svakodnevnom životu imaju mnogo funkcija, na primjer, većina modernih televizora može prikazivati ​​više različitih kanala, možda i ventilator. niz različitih načina rada itd. Da bi se napravila tako složena kontrola kao što je npr. prebacivanje kanala ili režima rada, osim navedenog, bit će potrebna i dodatna znanja, detalji i alati, ali svako ko ima gore navedeno može napraviti jednostavno uključivanje i isključivanje. Arduino komunicira sa računarom preko USB porta, prenos informacija sa računara na Arduino se može obaviti kroz razvojno okruženje za Arduino (nazvano Arduino IDE), koje se može preuzeti sa stranice na zvaničnoj Arduino web stranici. Postoji mnogo različitih modula za interakciju Arduina s vanjskim svijetom, na primjer, poseban modul s relejnim blokom za prebacivanje opterećenja, kada se koriste takvi moduli, rad je uvelike pojednostavljen, ovdje ćemo razmotriti neovisnu proizvodnju modula sa jednim relejem za uključivanje/isključivanje kućanskih aparata, ako je potrebno, možete napraviti više takvih modula i koristiti ih sa jednim Arduinom, čime je moguće lako upravljati mnogim kućanskim aparatima. Arduino (bilo koji) ima niz pinova opće namjene koji su na ploči označeni jednostavno brojevima ili brojevima s valovitim znakom "~". Povezivanjem Arduina sa računarom i pisanjem posebne skice (programa za Arduino) u njega (u Arduinu), možete kontrolisati ove pinove sa ovog računara preko "Arduino IDE" programa tako što ćete ih učiniti visokim naponom (oko +5V (HIGH )) ili nisko (oko 0V (LOW)). Takođe na Arduinu postoji "GND" pin (označen na ploči). Ako postoji visok napon na jednom od terminala opće namjene, onda spajanjem nečeg što provodi struju između ovog terminala i terminala "GND", električna struja će teći kroz ono što je spojeno, a vrijednost te struje će ovisiti o otpora ovog objekta i može se izračunati po, tj što je otpor manji, to je struja veća, ali ako je otpor prenizak, onda će previše struje teći kroz Arduino i on će izgorjeti. Maksimalna struja koju pin opće namjene Arduino može proizvesti može biti različit ovisno o mikrokontroleru koji se koristi u njemu, ali obično je 40mA = 0,04A - to možda neće biti dovoljno da se uključi relej koji će uključiti uređaj ( uređaji), stoga, da biste pojačali struju, morate koristiti dodatni element kao što je bipolarni tranzistor. Bipolarni tranzistor ima tri izvoda: emiter, kolektor, bazu. Maksimalna struja tranzistora je također ograničena, kao kod Arduina, i obično je veća, na primjer, u popularnom KT315, maksimalna struja je 100mA = 0,1A. Bipolarni tranzistori su dvije vrste, n-p-n i p-n-p, oba tipa se mogu koristiti, ali na različite načine, a dalje ćemo razmotriti upotrebu tranzistora KT315, čiji je tip n-p-n. Da bi tranzistor pojačao struju iz Arduina, potrebno je njegovu bazu spojiti na Arduino terminal KROZ OTPORNIK otpora 1kOhm (1k je napisano na otporniku), spojiti emiter ovog tranzistora na "GND " Arduina i minus napajanja ili "GND" napajanja, čiji je napon jednak naponu namotaja postojećeg releja (na primjer 12V) jedan od terminala namotaja releja je spojen na kolektor tranzistora jos jedan sa plusom napajanja (+ 12V je dozvoljeno) i jos jedan koji ne utice na pojacanje ali JAKO bitan detalj je dioda koja se mora spojiti sa anodom na kolektor i katoda sa plus napajanjem (+ 12V). Ako je dioda uvezena, tada će najvjerovatnije na njenom tijelu biti svjetlosna traka - označava katodu, drugi izlaz diode je anoda. Preostali izlazi releja su izlazi njegovih kontakata, ako ih ima dva i nisu zatvoreni, onda kada se na namotaj releja dovede dovoljna struja, ovi kontakti se zatvaraju, moraju biti povezani serijski sa uređajem i ova serijska veza se može uključiti u utičnicu, a onda kada se kontakti zatvore, uređaj će dobiti 220V i uključit će se. Gore navedeno se može prikazati na slici:

Slika 1 – Upravljanje uređajem sa računara


Ovo je nestandardna šema za bolje razumijevanje, obično koriste šeme poput ove:

Slika 2 – Upravljanje uređajem sa računara


Iako ovaj dijagram sadrži i nestandardnu ​​oznaku za Arduino ploču. Na slici je prikazan Arduino UNO (možete ga naručiti na ovom linku http://ali.pub/1v22bh) ali možete koristiti bilo koji drugi. Veze se mogu izvesti, na primjer, na matičnoj ploči i žici ili lemljenje. Nakon što je sve ispravno povezano i provjereno, možete povezati Arduino preko USB-a na svoj računar i učitati skicu u njega:

Char pc_code = 0;

Void setup ()
{
pinMode (2, OUTPUT);
Serial.begin (9600);
}

Void petlja ()
{
if (Serial.available ()> 0)
{
pc_code = Serial.read ();
if (pc_code == "a")
{
digitalWrite (2, HIGH);
}
else if (pc_code == "b")
{
digitalWrite (2, LOW);
}
}
}

Kako pravilno konfigurirati Arduino i postaviti skicu na njega, već je opisano na stranici. Dalje, da biste uključili uređaj, potrebno je poslati simbol "a" na Arduino, da biste isključili simbol "b". Da biste poslali simbol u arduino, možete u Arduino IDE ući u karticu Tools-Serial Port Monitor i u prozoru koji se pojavljuje u gornjem tekstualnom polju uneti simbole i poslati ih pritiskom na dugme "pošalji", simbol će doći na arduino, au ovom slučaju, ako pošaljete simbol "a" onda će se uređaj uključiti, ako "b" onda se u skladu s tim isključiti. Ako Arduino ne prihvata znakove, onda morate podesiti istu brzinu kao što je navedeno na skici u donjem desnom uglu prozora monitora serijskog porta, tj. 9600 baud Da biste uključili 2 uređaja, možete malo promijeniti skicu:

Char pc_code = 0;

Void setup ()
{
pinMode (2, OUTPUT);
pinMode (3, IZLAZ);
Serial.begin (9600);
}

Void petlja ()
{
if (Serial.available ()> 0)
{
pc_code = Serial.read ();
if (pc_code == "a")
{
digitalWrite (2, HIGH);
}
else if (pc_code == "b")
{
digitalWrite (2, LOW);
}
else if (pc_code == "c")
{
digitalWrite (3, HIGH);
}
inače if (pc_code == "d")
{
digitalWrite (3, LOW);

Top srodni članci