Hľadať kód

Arduino kód a video pre polovodičové relé na ovládanie AC žiarovky alebo záťaže

Arduino kód a video pre polovodičové relé na ovládanie AC žiarovky alebo záťaže

V tomto návode si ukážeme, ako použiť polovodičové relé (SSR) na ovládanie AC alebo DC záťaže, napríklad žiarovky. Polovodičové relé umožňuje bezpečné a efektívne spínanie elektrických záťaží pomocou nízkonapäťového signálu z Arduina. Na konci tohto návodu budete mať funkčné zapojenie, ktoré dokáže zapínať a vypínať svetlo v určených intervaloch.

single channel solid state relay

Na realizáciu tohto projektu použijeme SSR, konkrétne model G3MB-202P, ktorý zvládne záťaže do 2A. Relé bude ovládané digitálnym pinom z dosky Arduino, čo nám umožní posielať signál, ktorý zapína alebo vypína záťaž. Tento projekt je nielen praktický, ale slúži aj ako skvelý úvod do práce s relé a Arduinom.

Podrobné vizuálne vysvetlenie nájdete v sprievodnom videu (vo videu o 00:00).

Vysvetlenie hardvéru

V tomto projekte je hlavným komponentom polovodičové relé G3MB-202P. Toto relé umožňuje ovládať vysokonapäťovú záťaž nízkonapäťovým signálom. Funguje na princípe optoizolátora, ktorý spína obvod záťaže a zabezpečuje elektrické oddelenie medzi riadiacou stranou a stranou záťaže. Relé má tri piny: DC+, DC- a vstupný kanál, ktorý sa pripája k Arduinu.

Keď je vstupný signál nízky (0V), relé sa aktivuje a umožní prechod prúdu cez záťaž. Naopak, keď je vstupný signál vysoký (5V), relé sa vypne a preruší prúd do záťaže. Tento mechanizmus nízkeho spúšťania je nevyhnutný na bezpečné riadenie vysokonapäťových zariadení bez priameho elektrického kontaktu.

Podrobnosti z datasheetu

VýrobcaOmron
Označenie súčiastkyG3MB-202P
Logické/IO napätie5 V
Napájacie napätie5–24 V
Výstupný prúd (na kanál)2 A
Špičkový prúd (na kanál)4 A
Odporúčaná frekvencia PWMDo 1 kHz
Logické prahové hodnoty vstupuNízka: 0–1,5 V, Vysoká: 3–30 V
Pokles napätia / RDS(on) / saturáciaMax. 1,5 V
Tepelné limity–30 až 100 °C
PuzdroThrough-hole
Poznámky / variantyDostupné v rôznych hodnotách vstupného napätia

  • Uistite sa, že relé je dimenzované na záťaž, ktorú chcete ovládať.
  • Pri prevádzke blízko maximálneho prúdového zaťaženia použite vhodné chladenie.
  • Skontrolujte zapojenie, aby ste predišli problémom s obrátenou polaritou.
  • Použite oddeľovacie kondenzátory na napájacích vedeniach.
  • Pozor na plávajúce vstupy; uistite sa, že riadiaci signál je správne uzemnený.
  • Overte, či je frekvencia PWM v rámci špecifikácií relé pre spínacie aplikácie.

Pokyny na zapojenie

Arduino wiring for single channel solid state relay
Arduino wiring for single channel solid state relay

Zapojenie polovodičového relé je jednoduché. Pripojte kladný terminál relé (DC+) na pin 5V na Arduine. Záporný terminál (DC-) pripojte na zem (GND) Arduina. Vstupný pin, ktorý ovláda relé, sa pripája na digitálny pin 8 na Arduine. Tento pin bude posielať nízky alebo vysoký signál na aktiváciu alebo deaktiváciu relé.

Na strane záťaže pripojte jeden vodič z AC žiarovky na výstupný terminál relé a druhý vodič na AC napájanie. Použite vhodné konektory a uistite sa, že všetky spojenia sú pevné, aby ste predišli elektrickým rizikám.

Príklady kódu a vysvetlenie

Tu je stručný prehľad kódu pre Arduino na ovládanie polovodičového relé:

int relayPin = 8; // nastavenie pinu 8 pre výstup relé

void setup() {
    Serial.begin(9600); // inicializácia sériovej komunikácie
    pinMode(relayPin, OUTPUT); // nastavenie pinu relé ako výstup
}

V tomto úryvku definujeme relayPin ako 8, čo zodpovedá digitálnemu pinu pripojenému k relé. Funkcia setup() inicializuje sériovú komunikáciu a nastaví pin relé ako výstup.

void loop() {
    digitalWrite(relayPin, LOW); // zapnutie relé
    Serial.println("Relay ON"); // výstup do sériového monitora
    delay(2000); // čakanie 2 sekundy
}

Vo funkcii loop() zapneme relé nastavením relayPin na LOW, čo aktivuje relé a umožní prechod prúdu do záťaže. Pre potvrdenie sa vytlačí správa do sériového monitora.

    digitalWrite(relayPin, HIGH); // vypnutie relé
    Serial.println("Relay OFF"); // výstup do sériového monitora
    delay(2000); // čakanie 2 sekundy
}

Ďalej vypneme relé nastavením relayPin na HIGH, čo zastaví prechod prúdu do záťaže. Opäť vytlačíme správu do sériového monitora, aby sme indikovali stav relé. Tento proces sa nekonečne opakuje, pričom sa relé zapína a vypína každé dve sekundy.

Kompletný kód pre Arduino nájdete nižšie pod článkom.

Demonštrácia / Čo očakávať

Po nahratí kódu do Arduina by ste mali vidieť, ako sa relé zapína a vypína, pričom sa pripojená žiarovka každé dve sekundy zapína a vypína. Ak relé nefunguje podľa očakávania, skontrolujte zapojenie a uistite sa, že relé dostáva správny riadiaci signál. Bežné problémy zahŕňajú obrátenú polaritu na strane záťaže alebo nesprávne pripojenia na Arduine.

Pre ďalšie vizuálne potvrdenie činnosti relé si pozrite video (vo videu o 06:00), kde je vidieť, ako sa žiarovka zapína a vypína pri aktivácii relé.

Časové značky videa

  • 00:00 - Úvod do projektu
  • 01:30 - Nastavenie hardvéru
  • 03:15 - Vysvetlenie kódu
  • 05:45 - Živá ukážka
  • 07:00 - Záver

Obrázky

single channel solid state relay
single channel solid state relay
single channel solid state relay
single channel solid state relay
Arduino wiring for single channel solid state relay
Arduino wiring for single channel solid state relay
59-This is the Arduino code for a 5V solid-state relay.
Jazyk: C++
/*
 * 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);
}

Zdroje a referencie

Zatiaľ žiadne zdroje.

Súbory📁

Súbor Fritzing