V tomto projektu propojíme relé s mikrokontrolérem PIC PIC16F877A. Relé je mechanické zařízení k ovládání vysokonapěťových a silnoproudých spotřebičů „ ZAPNUTO “ nebo „ VYPNUTO “ z nižších úrovní napětí. Relé zajišťuje izolaci mezi dvěma napěťovými hladinami a obvykle se používá k ovládání střídavých spotřebičů. Od mechanických po polovodičová relé jsou v elektronice k dispozici různé typy relé. V tomto projektu použijeme mechanické relé.
V tomto projektu uděláme následující věci -
- Budeme propojovat přepínač pro vstup od uživatele.
- Ovládejte žárovku 220V AC pomocí 5V relé.
- K ovládání relé použijeme NPN tranzistor BC547 a tranzistor bude ovládán z PIC16F877A. LED dioda upozorní na stav ZAPNUTO nebo VYPNUTO relé.
Pokud jste v mikrokontroléru PIC nováčkem, začněte kapitolou Začínáme s mikrokontrolérem PIC.
Požadovaná součást:
- PIC16F877A
- 20MHz krystal
- 2 ks 33pF keramika
- 3 ks 4,7k rezistory
- 1k rezistor
- 1 LED
- Tranzistor BC547
- Dioda 1N4007
- 5V kubické relé
- AC žárovka
- Nepájivá deska
- Dráty pro připojení dílů.
- 5V adaptér nebo jakýkoli 5V napájecí zdroj s proudem alespoň 200 mA.
Relé a jeho práce:
Relé funguje stejně jako typický spínač. Mechanická relé používají dočasný magnet vyrobený z elektromagnetické cívky. Když poskytneme dostatek proudu přes tuto cívku, stalo se to pod napětím a táhlo ruku. Díky tomu může být obvod připojený přes relé uzavřen nebo otevřen. Vstup a výstup nemají žádné elektrické připojení, a proto izolují vstup a výstup. Další informace o relé a jeho konstrukcích se dozvíte zde.
Relé lze nalézt v různých napěťových rozsazích, jako je 5V, 6V, 12V, 18V atd. V tomto projektu použijeme 5V relé, protože naše pracovní napětí je zde 5 Voltů. Toto 5V kubické relé je schopné přepínat zátěž 7A při 240VAC nebo 10A zátěž při 110VAC. Místo toho však použijeme 220VAC žárovku a přepneme ji pomocí relé.
Toto je 5V relé, které používáme v tomto projektu. Jmenovitý proud je jasně specifikován pro dvě úrovně napětí, 10A při 120VAC a 7A při 240VAC. Musíme připojit zátěž na relé méně, než je specifikovaná hodnota.
Toto relé má 5 pinů. Pokud uvidíme pinout, můžeme vidět-
L1 a L2 je pin interního elektromagnetické cívky je. Musíme tyto dva piny ovládat, aby bylo relé zapnuto nebo vypnuto. Další tři piny jsou POLE, NO a NC. Pól je spojen s vnitřní kovovou deskou, která mění sepnutí při zapnutí relé. Za normálních podmínek je POLE zkratován s NC. NC znamená normálně připojený. Když se relé zapne, pól změní svou polohu a připojí se k NO. NO znamená Normally Open.
V našem obvodu jsme provedli reléové spojení s tranzistorem a diodou. Relé s tranzistorem a diodou je na trhu k dispozici jako reléový modul, takže pokud používáte reléový modul, nemusíte připojovat jeho budicí obvod (tranzistor a dioda).
Relé se používá ve všech projektech domácí automatizace k ovládání domácích domácích spotřebičů.
Kruhový diagram:
Kompletní obvod pro připojení relé s mikrokontrolérem PIC je uveden níže:
Ve výše uvedeném schematickém pic16f877a se používá tam, kde na portu B LED a tranzistor je připojen, který je dále ovládá pomocí přepínače TAC na RBO. R1 poskytuje klidový proud do tranzistoru. R2 je stahovací rezistor, který se používá u hmatového spínače. Poskytne logickou 0, když spínač není stisknutý. 1N4007 je svorka dioda, který se používá pro elektromagnetické cívky na relé je. Když se relé vypne, je pravděpodobné, že dojde k vysokému napětía dioda to potlačí. Tranzistor je nutný pro řízení relé, protože vyžaduje více než 50 mA proudu, který mikrokontrolér není schopen poskytnout. Můžeme také použít ULN2003 místo tranzistoru, je to moudřejší volba, pokud jsou pro aplikaci vyžadována více než dvě nebo tři relé, zkontrolujte obvod modulu relé. LED přes přístavní RB2 oznámí „ relé je na “.
Poslední okruh bude vypadat takto-
Zde se můžete naučit ovládat relé pomocí Arduina, a pokud máte opravdu zájem o relé, zkontrolujte zde všechny reléové obvody.
Vysvětlení kódu:
Na začátek souboru main.c jsme přidali konfigurační řádky pro pic16F877A a také definovali názvy pinů přes PORTB.
Jako vždy nejdříve musíme nastavit konfigurační bity v mikrokontroléru pic, definovat některá makra, včetně knihoven a frekvence krystalů. Můžete zkontrolovat kód pro všechny v úplném kódu uvedeném na konci. Jako vstup jsme vytvořili RB0. V tomto pinu je připojen spínač.
#zahrnout
Poté jsme zavolali funkci system_init (), kde jsme inicializovali směr pinů, a také nakonfigurovali výchozí stav pinů.
Ve funkci system_init () uvidíme
void system_init (void) { TRISBbits.TRISB0 = 1; // Nastavení Sw jako vstupu TRISBbits.TRISB1 = 0; // nastavení LED jako výstupu TRISBbits.TRISB2 = 0; // nastavení pinu relé jako výstupní LED = 0; RELÉ = 0; }
V hlavní funkci neustále kontrolujeme stisknutí spínače, pokud detekujeme stisknutí spínače snímáním logiky vysoko přes RB0; počkáme nějakou dobu a uvidíme, zda je spínač stále stisknutý nebo ne, pokud je spínač stále stisknutý, invertujeme stav RELÉ a LED kolíku.
void main (void) { system_init (); // Systém se připravuje while (1) { if (SW == 1) {// je stisknutý spínač __delay_ms (50); // zpoždění debounce if (SW == 1) {// spínač je stále stisknutý LED =! LED; // invertování stavu pinu. RELÉ =! RELÉ; } } } vrátit; }
Kompletní kód a ukázkové video pro toto rozhraní relé je uvedeno níže.