Kodi ya Arduino na Video ya Solid-State Relay Kudhibiti Bulb ya AC au Mzigo
Katika mafunzo haya, tutachunguza jinsi ya kutumia relay ya hali dhabiti (SSR) kudhibiti mzigo wa AC au DC, kama vile balbu ya taa. Relay ya hali dhabiti inaruhusu kubadilisha mizigo ya umeme kwa usalama na kwa ufanisi kwa kutumia ishara ya voltage ya chini kutoka kwa Arduino. Kufikia mwisho wa mafunzo haya, utakuwa na mpangilio unaofanya kazi ambao unaweza kuwasha na kuzima taa kwa vipindi maalum.

Ili kutekeleza mradi huu, tutatumia SSR, haswa mfano wa G3MB-202P, ambao unaweza kushughulikia mizigo hadi 2A. Relay itadhibitiwa na pini ya dijiti kutoka kwa bodi ya Arduino, ikituruhusu kutuma ishara inayowasha au kuzima mzigo. Mradi huu sio tu wa vitendo bali pia ni utangulizi mzuri wa kufanya kazi na relay na Arduino.
Kwa maelezo ya kina ya kuona, hakikisha umeangalia video inayoandamana (katika video saa 00:00).
Vifaa Vimeelezwa
Katika mradi huu, kipengele kikuu ni relay ya hali dhabiti ya G3MB-202P. Relay hii inakuruhusu kudhibiti mzigo wa voltage ya juu kwa ishara ya voltage ya chini. Inafanya kazi kwa kutumia opto-isolator kubadilisha mzunguko wa mzigo, ikitoa utengaji wa umeme kati ya upande wa udhibiti na mzigo. Relay ina pini tatu: DC+, DC-, na chaneli ya kuingiza, ambayo inaunganishwa na Arduino.
Wakati ishara ya kuingiza iko chini (0V), relay inawasha na kuruhusu mkondo kupita kupitia mzigo. Kinyume chake, wakati ishara ya kuingiza iko juu (5V), relay inazima, ikikata mkondo kwa mzigo. Utaratibu huu wa kuwasha kwa chini ni muhimu kwa kudhibiti vifaa vya voltage ya juu kwa usalama bila mawasiliano ya moja kwa moja ya umeme.
Maelezo ya Datasheet
| Mtengenezaji | Omron |
|---|---|
| Nambari ya sehemu | G3MB-202P |
| Voltage ya Logic/IO | 5 V |
| Voltage ya usambazaji | 5–24 V |
| Mkondo wa pato (kwa chaneli) | 2 A |
| Mkondo wa kilele (kwa chaneli) | 4 A |
| Mwongozo wa mzunguko wa PWM | Hadi 1 kHz |
| Viwango vya mantiki ya kuingiza | Chini: 0–1.5 V, Juu: 3–30 V |
| Kushuka kwa voltage / RDS(on) / kueneza | 1.5 V max |
| Mipaka ya joto | –30 hadi 100 °C |
| Kifurushi | Through-hole |
| Vidokezo / lahaja | Inapatikana katika viwango mbalimbali vya voltage ya kuingiza |
- Hakikisha relay imekadiriwa kwa mzigo unaokusudia kudhibiti.
- Tumia uondoaji wa joto sahihi ikiwa unafanya kazi karibu na kiwango cha juu cha mkondo.
- Angalia mara mbili wiring ili kuepuka matatizo ya polarity iliyogeuzwa.
- Tumia capacitors za decoupling kwenye mistari ya usambazaji wa nguvu.
- Jihadharini na pembejeo zinazoelea; hakikisha ishara ya udhibiti imewekwa ardhini kwa usahihi.
- Thibitisha mzunguko wa PWM uko ndani ya vipimo vya relay kwa matumizi ya kubadilisha.
Maagizo ya Wiring

Kuunganisha relay ya hali dhabiti ni rahisi. Unganisha terminal chanya ya relay (DC+) kwenye pini ya 5V kwenye Arduino. Terminal hasi (DC-) inapaswa kuunganishwa kwenye ardhi (GND) ya Arduino. Pini ya kuingiza, inayodhibiti relay, inaunganishwa na pini ya dijiti 8 kwenye Arduino. Pini hii itatuma ishara ya chini au ya juu kuwasha au kuzima relay.
Kwenye upande wa mzigo, unganisha waya moja kutoka kwa balbu ya AC kwenye terminal ya pato ya relay na waya nyingine kwenye usambazaji wa AC. Hakikisha unatumia viunganishi sahihi na uhakikishe kwamba viunganisho vyote viko salama ili kuzuia hatari zozote za umeme.
Mifano ya Msimbo na Maelezo
Hapa kuna muhtasari mfupi wa msimbo wa Arduino wa kudhibiti relay ya hali dhabiti:
int relayPin = 8; // weka pini 8 kwa pato la relay
void setup() {
Serial.begin(9600); // anzisha mawasiliano ya serial
pinMode(relayPin, OUTPUT); // weka pini ya relay kama pato
}
Katika sehemu hii, tunafafanua relayPin kama 8, ambayo inalingana na pini ya dijiti iliyounganishwa na relay. Kazi ya setup() inaanzisha mawasiliano ya serial na kuweka pini ya relay kama pato.
void loop() {
digitalWrite(relayPin, LOW); // washa relay
Serial.println("Relay ON"); // toa kwenye monitor ya serial
delay(2000); // subiri sekunde 2
}
Katika kazi ya loop(), tunawasha relay kwa kuweka relayPin kuwa LOW, ambayo inawasha relay na kuruhusu mkondo kupita kwa mzigo. Ujumbe unachapishwa kwenye monitor ya serial kwa uthibitisho.
digitalWrite(relayPin, HIGH); // zima relay
Serial.println("Relay OFF"); // toa kwenye monitor ya serial
delay(2000); // subiri sekunde 2
}
Ifuatayo, tunazima relay kwa kuweka relayPin kuwa HIGH, ambayo inakata mkondo kwa mzigo. Tena, tunachapisha ujumbe kwenye monitor ya serial kuonyesha hali ya relay. Utaratibu huu unarudiwa bila kikomo, ukiwasha na kuzima relay kila sekunde mbili.
Kwa msimbo kamili wa Arduino, tafadhali angalia msimbo kamili uliopakiwa chini ya makala.
Maonyesho / Nini cha Kutarajia
Wakati msimbo umepakiwa kwenye Arduino, unapaswa kuona relay ikiwasha na kuzima, ikiwasha na kuzima balbu iliyounganishwa kila sekunde mbili. Ikiwa relay haifanyi kazi kama inavyotarajiwa, angalia viunganisho vya wiring na uhakikishe kwamba relay inapokea ishara sahihi ya udhibiti. Matatizo ya kawaida ni pamoja na polarity iliyogeuzwa kwenye upande wa mzigo au viunganisho visivyo sahihi kwenye Arduino.
Kwa uthibitisho zaidi wa kuona wa uendeshaji wa relay, rejea video (katika video saa 06:00) ambapo balbu inaonyeshwa ikiwasha na kuzima wakati relay inawasha.
Vidokezo vya Muda wa Video
- 00:00 - Utangulizi wa mradi
- 01:30 - Usanidi wa vifaa
- 03:15 - Maelezo ya msimbo
- 05:45 - Onyesho la moja kwa moja
- 07:00 - Hitimisho
/*
* This is the Arduino code for a Solid State Relay
* to control turning ON or OFF an AC or DC load
* Watch the video https://youtu.be/64NatLeGsaE
* *
* Written by Ahmad Shamshiri for Robojax Video
* Date: January 13, 2018, in Ajax, Ontario, Canada
* Permission granted to share this code given that this
* note is kept with the code.
* Disclaimer: this code is "AS IS" and for educational purposes only.
*
*/
// Introduction to a 5v Solid State relay.
int relayPin = 8;// set pin 8 for relay output
// setup code for Robojax Solid State Relay
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
Serial.println("Robojax Solid State Relay");
pinMode(relayPin, OUTPUT);
}
// loop code for Robojax Solid State Relay
void loop() {
// Turn the relay switch ON (Robojax.com/learn/arduino)
digitalWrite(relayPin, LOW);// set relay pin to low
Serial.println("Relay ON");
delay(2000);
// Turn the relay switch OFF (Robojax.com/learn/arduino)
digitalWrite(relayPin, HIGH);// set relay pin to HIGH
Serial.println("Relay OFF");
delay(2000);
}
Resurser och referenser
Inga resurser än.
Filer📁
Fritzing-fil
-
Solid State High Level Relay Module
Solid State High Level Relay Module .fzpz0.04 MB