В този проект ще свържем реле с PIC микроконтролер PIC16F877A. Релето е механично устройство за управление на устройства с високо напрежение, силен ток „ ON “ или „ OFF “ от по-ниски нива на напрежение. Релето осигурява изолация между две нива на напрежение и обикновено се използва за управление на променливотокови уреди. От механични до твърдотелни релета има различни видове релета, които се предлагат в електрониката. В този проект ще използваме механично реле.
В този проект ще направим следните неща-
- Ще свържем превключвател за въвеждане от потребителя.
- Управлявайте 220V AC крушка с 5V реле.
- За управление на релето ще използваме транзистор BC547 NPN и транзисторът ще се управлява от PIC16F877A. Светодиодът ще извести състоянието на включване или изключване на релето.
Ако сте нов в PIC Microcontroller, започнете с Първи стъпки с PIC Microcontroller.
Необходим компонент:
- PIC16F877A
- 20Mhz кристал
- 2 бр. 33pF керамика
- 3 бр 4.7k резистори
- 1k резистор
- 1 LED
- BC547 транзистор
- 1N4007 Диод
- 5V кубично реле
- AC крушка
- Макет
- Проводници за свързване на частите.
- 5V адаптер или всеки 5V източник на захранване с поне 200mA текущи възможности.
Реле и неговата работа:
Релето работи по същия начин като типичния превключвател. Механичните релета използват временен магнит, направен от електромагнитна намотка. Когато осигурим достатъчно ток през тази намотка, тя се активира и дърпа ръка. Поради това веригата, свързана през релето, може да бъде затворена или отворена. Входът и изходът нямат електрически връзки и по този начин изолират входа и изхода. Научете повече за релето и неговите конструкции тук.
Релетата могат да бъдат намерени в различни диапазони на напрежение като 5V, 6V, 12V, 18V и т.н. В този проект ще използваме 5V реле, тъй като нашето работно напрежение тук е 5 волта. Това 5V кубично реле е способно да превключва 7A натоварване при 240VAC или 10A натоварване при 110VAC. Вместо това огромно натоварване обаче ще използваме 220VAC крушка и ще я превключим с помощта на релето.
Това е 5V релето, което използваме в този проект. Номиналният ток е ясно определен за две нива на напрежение, 10A при 120VAC и 7A при 240VAC. Трябва да свържем натоварване през релето по-малко от определената номинална стойност.
Това реле има 5 щифта. Ако видим пиноут, можем да видим-
Най- L1 и L2 е пин вътрешната електромагнитна намотка. Ние трябва да се контролират тези две игли за включване на релето " ON " или " OFF ". Следващите три щифта са POLE, NO и NC. Полюсът е свързан с вътрешната метална плоча, която променя връзката си при включване на релето. В нормално състояние POLE е късо с NC. NC означава нормално свързан. Когато релето се включи, полюсът променя позицията си и се свързва с NO. NO означава Normally Open.
В нашата схема сме направили релейната връзка с транзистор и диод. Релето с транзистор и диод се предлага на пазара като релеен модул, така че когато използвате релеен модул, не е необходимо да свързвате веригата на неговия драйвер (транзистор и диод).
Релето се използва във всички проекти за домашна автоматизация за управление на AC домакински уреди.
Електрическа схема:
Пълната схема за свързване на реле с микроконтролер PIC е дадена по-долу:
В горната схема PIC16F877A се използва, когато на порт B на LED и транзистор е свързана, което допълнително се контролира с помощта на ключа ТАС в RBO. В R1 осигури пристрастие ток на транзистора. R2 е падащ резистор, използван през тактилния превключвател. Той ще осигури логика 0, когато ключът не е натиснат. В 1N4007 е скоба диод, използван за електромагнитна намотка на релето. Когато релето се изключи, има шансове за скокове с високо напрежениеи диодът ще го потисне. Транзисторът е необходим за задвижване на релето, тъй като изисква повече от 50 mA ток, който микроконтролерът не може да осигури. Можем да използваме и ULN2003 вместо транзистора, по-разумен избор е, ако за приложението са необходими повече от две или три релета, проверете веригата на модула за реле. В светодиод през порт RB2 ще уведоми " реле е ".
Финалната верига ще изглежда така-
Можете да се научите да управлявате релето с Arduino тук и ако наистина се интересувате от реле, проверете всички релейни вериги тук.
Обяснение на кода:
В началото на файла main.c добавихме конфигурационните редове за pic16F877A и също така дефинирахме имената на пиновете в PORTB.
Както винаги първо, трябва да зададем конфигурационните битове в микроконтролера pic, да дефинираме някои макроси, включително библиотеки и кристална честота. Можете да проверите кода за всички в пълния код, даден в края. Направихме RB0 като вход. В този щифт превключвателят е свързан.
#include
След това извикахме функцията system_init (), където инициализирахме посоката на пина и конфигурирахме състоянието по подразбиране на пиновете.
Във функцията system_init () ще видим
void system_init (void) { TRISBbits.TRISB0 = 1; // Задаване на Sw като вход TRISBbits.TRISB1 = 0; // задаване на LED като изход TRISBbits.TRISB2 = 0; // настройка на релейния щифт като светодиод на изхода = 0; РЕЛЕ = 0; }
В основната функция непрекъснато проверяваме натискането на превключвателя, ако открием пресата на превключвателя, като усетим логика високо в RB0; изчакваме известно време и виждаме дали превключвателят все още е натиснат или не, ако превключвателят все още е натиснат, тогава ще инвертираме състоянието на РЕЛЕ и LED щифт.
void main (void) { system_init (); // Системата се подготвя, докато (1) { if (SW == 1) {// ключът е натиснат __delay_ms (50); // отлагане на забавяне, ако (SW == 1) {// ключът все още е натиснат LED =! LED; // обръщане на състоянието на щифта. РЕЛЕ =! РЕЛЕ; } } } връщане; }
Пълният код и демонстрационното видео за това взаимодействие на реле е дадено по-долу.