Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Windows 7, XP
  • Conexiune Arduino a modulului releu. Controlul releului folosind Arduino

Conexiune Arduino a modulului releu. Controlul releului folosind Arduino

Releele sunt folosite pentru a comuta diverse echipamente de alimentare și alte dispozitive folosind o tensiune relativ scăzută. În varianta clasică, cel mai simplu releu constă dintr-o bobină la care se aplică tensiune de comandă și un contact care închide sau deschide circuitul obiectului controlat. Pe lângă funcția de control, releele oferă și protecție pentru circuitul de control datorită izolare galvanica, deoarece există un spațiu între bobină și contact care nu permite trecerea tensiunii de la un circuit la altul. Radioamatori începători care s-au familiarizat recent cu popularul din timpul nostru Placa Arduino sunt interesați să folosească relee în proiectele lor, dar nu știu de unde să înceapă.


De aceea acest material arată ușurința de utilizare a Arduino și a releelor. În primul rând, este conceput pentru începătorii care se familiarizează cu Arduino și se asambla pe baza acestei plăci.



Pentru a crea circuit de relee vom avea nevoie de Arduino, un rezistor de 1KOhm, un rezistor de 10KOhm, un tranzistor BC547, un releu de 6V sau 12V, o diodă 1N4007 și luăm un ventilator de 12V ca obiect de control:



Odată apăsat butonul, ventilatorul ar trebui să pornească și să se rotească până când butonul este apăsat din nou. Schiță pentru un astfel de algoritm:


int pinButton = 8; int releu = 2; int stateRelay = LOW; int stateButton; int precedent = LOW; timp lung = 0; debond lung = 500; void setup() ( pinMode(pinButton, INPUT); pinMode(Releu, OUTPUT); ) void loop() (stateButton = digitalRead(pinButton); if(stateButton == HIGH && anterior == LOW && millis() - time > debounce) ( if(stateRelay == HIGH)( stateRelay = LOW; ) else (stateRelay = HIGH; ) time = millis(); ) digitalWrite(Relay, stateRelay precedent == stateButton);

Deci, cum funcționează schema noastră? După apăsarea butonului, Arduino va transforma pinul 2 într-o stare logică înaltă, adică pinul va avea o tensiune de 5 V. Această tensiune este folosită pentru a deschide tranzistorul, care va porni releul, după care sarcina noastră. (în în acest caz, ventilator) va fi alimentat de la sursa principală de alimentare.


Nu poți folosi 5V port USB pentru a alimenta tranzistorul și sarcina, deoarece curentul nu va fi suficient. Prin urmare, trebuie să utilizați alimentare externă Vcc cu o tensiune de 7-12 V pentru a alimenta atât Arduino, cât și circuitul tranzistor-releu. Sarcina folosește propria sursă de alimentare. Puteți, de exemplu, să utilizați o lampă ca sarcină și să o alimentați de la 220 V. Și în niciun caz nu conectați sursa de alimentare Arduino la sursa de alimentare a sarcinii!


Acum să ne complicăm puțin programul adăugând o întârziere când releul este oprit. Variabila stayON de aici va fi folosită pentru a seta perioada de întârziere în milisecunde (implicit 5 secunde). Ca urmare, după apăsarea butonului, releul se va porni și după 5 secunde se va opri. Cod:


int pinButton = 8; int releu = 2; int stateRelay = LOW; int stateButton; int precedent = LOW; timp lung = 0; debotant lung = 500; int stayON = 5000; //întârziere pentru 5000 ms void setup() ( pinMode(pinButton, INPUT); pinMode(Releu, OUTPUT); ) void loop() ( stateButton = digitalRead(pinButton); if(stateButton == HIGH && anterior == LOW && millis() - time > debounce) ( if(stateRelay == HIGH)( digitalWrite(Relay, LOW); ) else ( digitalWrite(Relay, HIGH); delay(stayON); digitalWrite(Relay, LOW); ) time = milis (); anterior == stateButton)

Acum, datorită informațiilor furnizate în acest exemplu, puteți introduce în siguranță relee în noile proiecte Arduino.


Un alt circuit de control al ventilatorului cu folosind Arduino Poate sa .

Mai devreme sau mai târziu, toată lumea se gândește la implementarea pornirii și opririi automate a diverselor aparate electrocasnice cei din jurul nostru în Viata de zi cu zi. Astfel de încărcări, și chiar și cu curent alternativ(AS) nu ne putem conecta direct la placa Arduino. Prin urmare, pentru a rezolva această problemă, există un astfel de dispozitiv precum un releu electromagnetic. În acest articol vom lua în considerare un modul care este deja gata cu curele, pe care este instalat un releu, gata pentru conexiune ușoară la microcontroler.

Are doar trei pini pentru conectare pe placa sa. VCC- nutriție, GND- pământ și ÎN- ieşire pentru recepţionarea unui semnal de control. Dacă numele pinilor de pe modulul dvs. sunt numite puțin diferit, cred că nu va fi dificil să ghiciți ce și unde. Vedem și două LED-uri pe placă. LED-ul roșu se aprinde când conectăm alimentarea la modulul releu. LED-ul verde indică modul de funcționare a releului. Dacă LED-ul verde se aprinde, înseamnă că releul s-a închis și invers, dacă LED-ul verde se stinge, înseamnă că releul s-a deschis. Pe cealaltă parte a modulului vedem terminale pentru conectarea sarcinii.

Să luăm placa Arduino. În acest caz, voi lua placa Arduino Nano. Poti lua oricare alta. Și hai să ne conectăm o lampă obișnuită incandescent, care este alimentat de o rețea de 220V.

După cum vedem, conectarea modulului releu la placa Arduino destul de simplu. Concluzie VCC conectați modulul releului la pin 5V Plăcile Arduino și ieșirea GND conectați modulul releului la ieșire GND Placi Arduino. Astfel modul releu Noi am oferit mâncare. Pin de control ÎN conectați la ieșire D2 Placi Arduino. Sarcina provenită din rețeaua de 220V sub forma lămpii noastre este conectată la modulul releu într-un circuit deschis al unuia dintre fire. Pur și simplu tăiați unul dintre fire și introduceți un capăt în contact general COM, care este întotdeauna pe pinul din mijloc. Și conectăm cel de-al doilea capăt la un contact normal deschis NU, care de obicei este situat deasupra dacă vă uitați la modul „corect”, ca în imaginea de mai sus (pentru ca toate numerele și inscripțiile de pe releu în sine să nu fie inversate).

Adesea, terminalele pot să nu fie semnate sau pot fi semnate, ca în figura de mai sus, sub formă de caractere chinezești. Acest lucru nu ar trebui să te deranjeze. Pur și simplu întoarceți modulul releului și priviți-l în spatele acestuia.

Vedem că avem un contact comun, un contact normal închis și unul normal deschis. Diagrama de pe placă vă ajută să înțelegeți ce contact este închis și care este deschis. LA contact închisîn diagramă linia este înclinată, adică este atras contactul comun. Când aplicăm tensiune joasă la modul releu, contactul comun se va închide cu contactul deschis. Prin urmare, conectați-vă exact la NU- contact normal deschis.

Controlul modulului releu este destul de simplu, la fel ca aprinderea unui LED obișnuit.

const int rele = 2; // Pinul Arduino la care este conectat pinul IN al releului void setup () ( pinMode(rele, OUTPUT); // setați pinul digital 2 în modul de ieșire) void loop () ( digitalWrite (rele, HIGH); // porniți întârzierea releului (3000 //pauză 3 secunde digitalWrite (rele, LOW) //opriți întârzierea releului (3000);

Lumina se aprinde și se stinge cu o pauză de 3 secunde. Toate acestea sunt destul de plictisitoare și vreau să conectez un fel de senzor pentru o interacțiune mai interesantă cu releul electronic.

Lejer pe bumbac

Să ne facem lampa să se aprindă și să se stingă bătând din palme. Pentru a face acest lucru, vom adăuga un senzor de sunet KY-037 la circuitul nostru.


Ieșire digitală D0 senzorul de sunet KY-037 este conectat Ieșire digitală D5 Placi Arduino. Concluzie + conectați senzorul de sunet la ieșire 5V Placi Arduino Nano. Concluzie G conectați senzorul de sunet la ieșire GND(masa) a plăcii Arduino. Adică alimentam senzorul de sunet de la aceiași pini Arduino de la care alimentam modulul releu. Ideal desigur diverși senzori iar dispozitivele trebuie alimentate separat de creier, dar Arduino trage destul de lin releul cu senzorul de sunet. Prin urmare, ne vom descurca cu un minim de fire în timpul acestui articol.

Am discutat deja despre lucrul cu acest senzor de sunet în detaliu în articolul Conectarea și configurarea senzorului de sunet KY-037. Deci, pentru o mai bună înțelegere a tot ceea ce se întâmplă, asigurați-vă că citiți acest articol. Se discută exemple de cod pentru declanșarea unui senzor pentru a aprinde și stinge lumina cu o singură palmă. Luăm în considerare și un exemplu de cod pentru a aprinde lumina cu două palme și pentru a o stinge cu o singură palmă. Aici voi posta un cod special pentru aprinderea luminii cu două palme și stingerea luminii tot cu două palme, parțial, pentru cei care nu au putut sau nu au vrut să schimbe puțin codul existent din articolul precedent.

Lucrul cu cel puțin două bătăi din palme obișnuite este mai fiabil, deoarece cazurile de operații imprevizibile din zgomot lateral cu această abordare sunt practic aproape de zero. Fiecare linie de cod este comentată, citiți cu atenție, totul ar trebui să devină clar.

const int senzorD0 = 5; // Pinul Arduino la care este conectată ieșirea D0 a senzorului const int rele = 2; // Pinul Arduino la care este conectat releul int releState = LOW; // Starea releului este "off" long soundTime=0; // ora primei aplauze void setup () ( pinMode(rele, OUTPUT); // setați pinul digital 2 în modul de ieșire) void loop () ( int sensorValue = digitalRead(sensorD0); // obțineți semnalul de la senzor if (sensorValue = = 1 && releState == LOW) //dacă este atins pragul de volum și releul a fost OPRIT (long diodTime=millis(); // scrie ora curentă//dacă timpul de aplaudare curent este mai mare decât timpul ultimului aplauământ cu 100 de milisecunde //și bătaia din palme a avut loc nu mai târziu de 1000 de milisecunde după cea anterioară //consideră această palmă ca fiind cea de-a doua REUSIT if((millis() >soundTime) && ((diodTime-soundTime)> 100) && ((diodTime-soundTime)<1000)) { digitalWrite(rele, HIGH); // включаем реле releState = HIGH; // устанавливаем статус реле "включен" delay(100); // небольшая задержка для фильтрации помех } soundTime=millis(); //записываем время последнего хлопка } else // иначе { if (sensorValue == 1 && releState == HIGH) // если порог громкости достигнут и реле было ВКЛЮЧЕНО { long diodTime=millis(); // записываем текущее время if((millis()>soundTime) && ((diodTime-soundTime)>100) && ((diodTime-soundTime)<1000)) { digitalWrite(rele, LOW); // выключаем реле releState = LOW; // устанавливаем статус реле "выключен" delay(100); // небольшая задержка для фильтрации помех } soundTime=millis(); //записываем время последнего хлопка } } }

Toate! Batem din palme de două ori, lumina se aprinde. Mai batem din palme de două ori și lumina se stinge. Nu uitați să reglați sensibilitatea senzorului de sunet. Totul despre configurare este în articolul Conectarea și configurarea senzorului de sunet KY-037.

Vă rugăm să rețineți că atunci când manipulați linia if((millis()>soundTime) && ((diodTime-soundTime)>100) && ((diodTime-soundTime)<1000)) , și anume în cifre 100 Și 1000 , puteți face ca senzorul să se declanșeze la diferite viteze de aplaudat. De exemplu, acest exemplu permite ca senzorul de sunet să fie declanșat prin bătăi din palme rapide cu o pauză între fiecare 100 de milisecunde. A doua cifră 1000 indică faptul că a doua palmă nu trebuie să vină mai târziu de 1000 de milisecunde (1 secundă). Dacă schimbăm, de exemplu, numărul de la 100 la 500, atunci senzorul va răspunde la aplauze doar cu o pauză suficientă între fiecare. Și această soluție de lumină slam poate fi mai potrivită în zonele în care există trântire frecventă a ușilor sau alte zgomote dure care pot determina declanșarea aleatorie a senzorului de sunet.

Nu va fi posibilă conectarea unei sarcini puternice direct la Arduino, de exemplu o lampă de iluminat sau o pompă electrică. Microcontrolerul nu oferă puterea necesară pentru a opera o astfel de sarcină. Curentul care poate circula prin ieșirile Arduino nu depășește 10-15 mA. Un releu vine în ajutor, cu care poți comuta curenți mari. În plus, dacă sarcina este alimentată de curent alternativ, de exemplu 220v, atunci nu există nicio modalitate de a face fără un releu. Pentru a conecta sarcini puternice la Arduino prin relee, se folosesc de obicei module de relee.

În funcție de numărul de sarcini comutate, sunt utilizate module de releu cu unul, două, trei, patru și mai multe canale.

Am cumpărat modulele mele, unul și patru canale, pe Aliexpress, pentru 0,5 USD, respectiv 2,09 USD.

Design modul releu pentru Arduino, folosind exemplul unui modul cu 4 canale HL-54S V1.0.

Să aruncăm o privire mai atentă asupra designului acestui modul, toate modulele multicanal sunt de obicei construite conform acestei scheme.

Schema schematică a modulului.

Pentru a proteja pinii Arduino de supratensiunile din bobina releului, se folosesc un tranzistor J3Y și un optocupler 817C. Vă rugăm să rețineți că semnalul de la pin În furnizate la catodul optocuplerului. Aceasta înseamnă că, pentru ca releul să închidă contactele, trebuie să aplicați la pinÎn logic 0 (semnal inversat).

Există și module care au semnal de la pin În furnizate la anodul optocuplerului. În acest caz, trebuie să trimiteți 1 logic pe pinÎn, pentru a activa releul.

Puterea de sarcină pe care modulele o pot porni/opri este limitată de releele instalate pe placă.

În acest caz, se folosesc relee electromecanice Songle SRD-05VDC-SL-C, având următoarele caracteristici:

Tensiune de operare: 5 V
Curent de funcționare a bobinei: 71 mA
Curent maxim de comutare: 10A
Tensiune DC de comutare maximă: 28 V
Tensiune AC de comutare maximă: 250 V
Temperatura de Operare: de la -25 la +70°C

Releul Songle SRD-05VDC-SL-C are 5 contacte. 1 Și 2 alimentare cu releu. Grup de contact 3 Și 4 sunt contacte în mod normal deschise ( NU), grup de contact 3 Și 5 - normal închis ( NC).

Relee similare vin în tensiuni diferite: 3, 5, 6, 9, 12, 24, 48 V. În acest caz, se folosește o versiune de 5 volți, care permite ca modulul de releu să fie alimentat direct de la Arduino.

Există un jumper pe tablă ( JDVcc), pentru a alimenta releul fie de la Arduino, fie de la o sursă de alimentare separată.

Pinami În 1,In2,In3,In4 Modulul este conectat la pinii digitali Arduino.

Conectarea releului modulului HL-54S V1.0 la Arduino.

Deoarece avem un modul cu relee de 5 volți, îl vom conecta conform acestei scheme, luând puterea de la Arduino însuși. În exemplu, voi conecta un releu, voi folosi un bec de 220 V ca sarcină.

Pentru a alimenta releul modulului de la Arduino, jumperul trebuie să scurtcircuiteze „ Vcc" Și " JDVcc", este de obicei instalat acolo în mod implicit.

Dacă releul nu este de 5 volți, nu puteți alimenta modulul de la Arduino;

Diagrama de mai jos arată cum să conectați alimentarea la modul de la o sursă separată. Folosind acest circuit, trebuie să conectați un releu proiectat să fie alimentat cu mai mult sau mai puțin de 5 V. Pentru releele de 5 volți, acest circuit va fi, de asemenea, mai preferabil.

Cu această conexiune, trebuie să scoateți jumperul dintre pini " Vcc" Și " JDVcc" Următorul pin " JDVcc" conectează la " + » sursă de alimentare externă, pin « Gnd" conectează la " - " alimentare electrică. Fixați „ Gnd", care în diagrama anterioară a fost conectat la " Gnd„Arduino nu este conectat în acest circuit. În exemplul meu, sursa de alimentare externă este de 5 V, dacă releul este proiectat pentru o tensiune diferită (3, 12, 24 V), selectați sursa de alimentare externă corespunzătoare.

Schiță pentru controlul unui modul releu prin Arduino.

Să încărcăm o schiță în Arduino care va aprinde și stinge becul (lumină intermitentă).

int relayPin = 7;

void setup() (
pinMode(relayPin, OUTPUT);
}

void loop() (
digitalWrite(relayPin, LOW);
întârziere (5000);
digitalWrite(relayPin, HIGH);
întârziere (5000);
}

În linie int relayPin = 7; indicați numărul pinului digital Arduino la care a fost conectat pinul În 1 releul modulului. Vă puteți conecta la orice pin digital și îl puteți indica în acest rând.

În linie întârziere (5000); Puteți modifica valoarea timpului la care lumina va fi aprinsă și la care se va stinge.

În linie digitalWrite(relayPin, LOW); indicat la aplicarea unui zero logic ( SCĂZUT), modulul releului va închide contactele și lumina se va aprinde.

În linie digitalWrite(relayPin, HIGH); indicat la trimiterea unei unități logice ( ÎNALT), modulul de releu va deschide contactele și lumina se va stinge.

După cum vedem, în linie digitalWrite(relayPin, LOW); a lăsat parametrul SCĂZUT. Dacă releul își închide contactele și lumina se aprinde, înseamnă pin În 1 trebuie să furnizați un zero logic, ca al meu. Dacă lumina nu se aprinde, încărcați o schiță în care înlocuim parametrul SCĂZUT pe ÎNALT.


Rezultatul schiței pe video.

Acum să adăugăm un buton tact la circuit și când îl apăsați, modulul releului va aprinde becul.

Conectăm butonul împreună cu un rezistor pull-up de 10k, care nu va permite interferențelor externe să afecteze funcționarea circuitului.

Încărcarea schiței

În linie if(digitalRead(14)==HIGH) setați numărul pinului digital pe care este conectat butonul. Vă puteți conecta la orice gratuit. În exemplu, acesta este un pin analogicA0, poate fi folosit și ca un digital cu 14 pini.

În linie întârziere (300); valoarea este specificată în milisecunde. Această valoare indică cât timp după apăsarea sau eliberarea butonului trebuie efectuate acțiuni. Aceasta este protecție împotriva respingerii contactului.

Pentru informații! Toate intrările analogicede la A0 ( numerotate ca 14) la A5 (19), poate fi folosit ca digital ( PWM digital).

În concluzie, rezultatul schiței este prezentat în videoclip.

Modulele de relee mai ieftine pot să nu conțină un optocupler în circuitul lor, ca de exemplu în cazul meu cu un modul cu un singur canal.



Schema unui modul de releu cu un singur canal. Producătorul a făcut economie la optocupler, motiv pentru care placa Arduino și-a pierdut izolarea galvanică. Pentru a opera o astfel de placă, pe pin În trebuie să furnizați un zero logic.

Conectarea releului modulului la Arduino Due.

Arduino Due funcționează la 3,3 volți, care este tensiunea maximă pe care o poate avea la intrările/ieșirile sale. Dacă există o tensiune mai mare, placa se poate arde.

Apare întrebarea cum se conectează modulul la releu?

Scoateți jumperul JDVcc. Conectați pinul " Vcc» de pe placa releului modulului la pin „3,3 V» Arduino. Dacă releul este proiectat pentru 5 volți, conectați pinul " GND» plăci de relee modul, cu pin « GND» Arduino Due. Fixați „ JDVcc"conectați la pin" 5V„pe placa Arduino Due. Dacă releul este proiectat pentru o tensiune diferită, atunci conectăm puterea la releu ca în figură, în exemplu este de 5 volți. Dacă aveți un modul releu multicanal, vă rugăm să verificați asta « JDVcc" conectat la o parte a tuturor releelor. Optocuplul este activat de un semnal de 3,3V, care la rândul său activează tranzistorul folosit pentru a porni releul.

Releu cu stare solidă realizat dintr-un triac pentru comutarea unei sarcini puternice prin Arduino

Mai devreme sau mai târziu, există dorința de a controla ceva mai puternic decât un LED sau de a crea ceva ca o casă inteligentă cu propriile mâini. O componentă radio, cum ar fi un releu, ne va ajuta în acest sens. În acest articol, vom analiza modul în care un releu este conectat la un microcontroler, cum să-l controlăm și, de asemenea, vom demonstra funcționarea acestuia folosind exemplul de aprindere a unei lămpi cu incandescență.

Componente folosite (cumpărare din China):

. Panou de control

Proiectarea și principiul de funcționare a releului

Să luăm în considerare un dispozitiv de releu bazat pe releul SONGLE SRD-05VDC, care este utilizat pe scară largă în domeniul Arduino.

Acest releu este controlat de o tensiune de 5V și este capabil să comute până la 10A 30V DC și 10A 250V AC.

Releul are două circuite separate: un circuit de control, reprezentat de contactele A1, A2, și un circuit controlat, contactele 1, 2, 3. Circuitele nu sunt interconectate în niciun fel.

Între contactele A1 și A2 este instalat un miez metalic, iar atunci când curentul trece prin el, o armătură mobilă (2) este atrasă de el. Contactele 1 și 3 sunt fixe. Este de remarcat faptul că armătura este încărcată cu arc și până când trecem curentul prin miez, armătura va fi ținută apăsată la contactul 3. Când se aplică curent, așa cum sa menționat deja, miezul se transformă într-un electromagnet și este atras de contact. 1. Când este dezactivat, arcul readuce armătura la contactul 3 din nou.

Conectarea modulului la Arduino

Majoritatea modulelor de relee pentru Arduino folosesc controlul pe canal N, ceea ce vom lua în considerare. De exemplu, să luăm un modul cu un singur canal.

Mai jos este un exemplu de diagramă a acestui modul. Următoarele părți sunt necesare pentru a controla releul: rezistența (R1), tranzistorul pnp (VT1), dioda (VD1) și releul în sine (Rel1). Celelalte două LED-uri sunt instalate pentru indicație. LED1 (roșu) - indicarea alimentării cu energie a modulului, iluminarea LED2 (verde) indică faptul că releul este închis.

Să vedem cum funcționează schema. Când controlerul este pornit, pinii sunt într-o stare de înaltă rezistență, tranzistorul nu este deschis. Deoarece avem un tranzistor de tip pnp, pentru a-l deschide trebuie să aplicăm un minus la bază. Pentru a face acest lucru, folosim funcția digitalWrite (pin, LOW); .Acum tranzistorul este deschis și curentul trece prin circuitul de comandă și releul este activat. Pentru a opri releul, opriți tranzistorul aplicând un plus pe bază, apelând funcția digitalWrite (pin, HIGH);. Putem spune că controlul releului modulului nu este diferit de controlul unui LED convențional.

Modulul are 3 pini (standard de 2,54 mm):

VCC: sursa de alimentare "+".

GND:"-" alimentare electrică

ÎN: semnal de intrare ieșire

Conectarea modulului este extrem de simplă:

VCC la + 5 volți pe Arduino.

GND la oricare dintre pinii GND --- Arduino.

ÎN la oricare dintre intrările/ieșirile digitale ale Arduino (în exemple este conectat la 4).

Să mergem direct la schiță. În acest exemplu, releul se va porni și va opri la intervale de 2 secunde.

exemplu de cod de program:

// Modul releu conectat la pinul digital 4 int releu = 4; gol înființat() ( pinMode (Releu, OUTPUT); ) nul buclă() (digitalWrite (Releu, LOW); // întârziere activată releu (2000); digitalWrite (Releu, HIGH); // releul este opritîntârziere (2000); )

Pentru a conecta o lampă incandescentă, plasați un releu în golul unuia dintre fire.

Pe modulul nostru, pinii 1, 2, 3 sunt localizați astfel. Pentru a conecta o lampă incandescentă, plasați un releu în golul unuia dintre fire.

Ar trebui să iasă așa cum se arată în figură.

Un exemplu de aprindere a unei lămpi cu incandescență împreună cu

P.S. Modulele mai scumpe au la bord și un optocupler, care permite, pe lângă izolarea între circuitele controlate și de control ale releului, izolarea galvanică completă direct între controler și circuitul de control al releului.

Folosind Arduino. Dar dacă decidem să gestionăm dispozitivele conectate la o rețea casnică? Permiteți-mi să vă reamintesc că chiar și o lampă de masă mică este alimentată de o sursă de curent alternativ cu o tensiune de 220 de volți. Tranzistorul obișnuit cu efect de câmp pe care l-am folosit în circuitul cu motorul nu va mai funcționa.

Pentru a controla o sarcină puternică și chiar și cu curent alternativ, folosim un releu. Acesta este un dispozitiv electromecanic care închide mecanic circuitul de sarcină folosind un electromagnet. Să ne uităm la interior:

Principiul de funcționare al releului este următorul. Aplicați tensiune la bobina electromagnetică. În bobină apare un câmp, care atrage urechea de metal. La rândul său, piciorul închide mecanic contactele de sarcină.

Releele au două utilizări principale. În primul rând, putem aplica numai 5 volți bobinei, închizând circuitul unei sarcini foarte puternice. De exemplu, un releu folosit în tutorialele Arduino poate porni un frigider sau o mașină de spălat. În al doilea rând, unele tipuri de relee pot închide și deschide simultan mai multe circuite diferite cu tensiuni diferite.

În această lecție nu vom lucra cu un singur releu, ci cu un întreg modul de relee. Pe lângă releul în sine, modulul conține și un decuplator optoelectronic cu un tranzistor, care protejează pinii Arduino de supratensiunile de pe bobină.

Un singur modul releu are doar trei contacte. Să le conectăm conform următoarei diagrame.

Apropo, intrarea releului este inversată. Aceasta înseamnă că nivelul de contact este ridicat În va opri bobina releului, iar un nivel scăzut o va porni.

Diagramă schematică

Aspectul aspectului

2. Program pentru Arduino

Să scriem un program simplu care va aprinde lampa timp de 3 secunde și apoi o va stinge timp de 1 secundă.

Const int relPin = 3; void setup() ( pinMode(relPin, OUTPUT); ) void loop() ( digitalWrite(relPin, HIGH); delay(1000); digitalWrite(relPin, LOW); delay(3000); )

Încărcați programul pe Arduino. Acum conectăm alimentarea la lampă și la releu. În cele din urmă, furnizăm energie controlerului.

3. Lampă automată sau lampă stradală

Folosind un controler, un releu și un senzor de lumină, puteți realiza o lampă automată simplă. Controlerul va aprinde lampa în momentul în care nivelul de lumină al senzorului devine mai mic decât valoarea setată.

Ca senzor folosim un modul gata făcut bazat pe . Să conectăm toate cele trei dispozitive conform următoarei diagrame.

Diagramă schematică

Aspectul aspectului

4. Program automat de iluminare

Ieșirea analogică a senzorului oferă valori în intervalul de la 0 la 1023. Mai mult, 0 este pentru nivelul maxim de lumină și 1023 pentru întuneric complet.

Mai întâi trebuie să decidem la ce nivel de lumină să aprindem lampa și la ce nivel să o stingem. În laboratorul nostru, la lumina zilei, senzorul arată valoarea L = 120, iar noaptea aproximativ L = 700. Vom porni releul când L > 600, și îl vom opri când L< 200. Вспомним как и напишем программу.

Const int photoPin = A5; const int relPin = 3; void setup() ( pinMode(photoPin, INPUT); pinMode(relPin, OUTPUT); ) void loop() ( if(analogRead(photoPin))< 200) digitalWrite(relPin, HIGH); if(analogRead(photoPin) >600) digitalWrite(relPin, LOW); )

Descărcăm programul în Arduino și efectuăm un experiment. Cel mai bine este să faci asta noaptea.

Sarcini

1. Releu muzical. După cum știți, un releu electromecanic emite un clic atunci când este activat. Încercați să utilizați aceasta pentru a reda o melodie simplă.

2. Controlul motorului. Având două relee cu trei pini, la fel ca în această lecție, puteți asambla un circuit pentru a schimba sensul de rotație al motorului.

Cele mai bune articole pe această temă