In diesem Projekt werden wir ein Relais mit dem PIC-Mikrocontroller PIC16F877A verbinden. Das Relais ist ein mechanisches Gerät zur Steuerung von Hochspannungs- und Hochstromgeräten ' EIN ' oder ' AUS ' von niedrigeren Spannungspegeln. Das Relais bietet eine Isolation zwischen zwei Spannungspegeln und wird im Allgemeinen zur Steuerung von Wechselstromgeräten verwendet. Von mechanischen bis hin zu Halbleiterrelais gibt es in der Elektronik verschiedene Arten von Relais. In diesem Projekt werden wir ein mechanisches Relais verwenden.
In diesem Projekt werden wir die folgenden Dinge tun:
- Wir werden einen Schalter für die Eingabe vom Benutzer anschließen.
- Steuern Sie eine 220- V- Wechselstromlampe mit 5-V-Relais.
- Zur Steuerung des Relais verwenden wir den BC547-NPN-Transistor und der Transistor wird vom PIC16F877A aus gesteuert. Eine LED benachrichtigt den EIN- oder AUS-Zustand des Relais.
Wenn Sie mit PIC Microcontroller noch nicht vertraut sind, beginnen Sie mit Erste Schritte mit PIC Microcontroller.
Erforderliche Komponente:
- PIC16F877A
- 20 MHz Kristall
- 2 Stück 33pF Keramik
- 3 Stück 4,7k Widerstände
- 1k Widerstand
- 1 LED
- BC547 Transistor
- 1N4007 Diode
- 5V kubisches Relais
- AC Glühbirne
- Steckbrett
- Drähte zum Verbinden der Teile.
- 5-V-Adapter oder eine beliebige 5-V-Stromquelle mit mindestens 200 mA Stromkapazität.
Relais und seine Funktionsweise:
Das Relais funktioniert genauso wie ein typischer Schalter. Mechanische Relais verwenden temporäre Magnete aus elektromagnetischen Spulen. Wenn wir genug Strom über diese Spule liefern, wird sie erregt und zieht einen Arm. Aufgrund dessen kann der über das Relais angeschlossene Stromkreis geschlossen oder offen sein. Der Ein- und Ausgang hat keine elektrischen Anschlüsse und isoliert somit Eingang und Ausgang. Erfahren Sie hier mehr über Relais und seine Konstruktionen.
Relais können in verschiedenen Spannungsbereichen wie 5 V, 6 V, 12 V, 18 V usw. gefunden werden. In diesem Projekt werden wir 5 V Relais verwenden, da unsere Arbeitsspannung hier 5 Volt beträgt. Diese 5V cubic Relais ist Schalter Lage 7A Last bei 240 V AC oder 10A Last bei 110 V AC. Anstelle dieser riesigen Last werden wir jedoch eine 220-VAC-Lampe verwenden und diese mithilfe des Relais schalten.
Dies ist das 5-V-Relais, das wir in diesem Projekt verwenden. Die Nennstromstärke ist für zwei Spannungspegel klar spezifiziert: 10 A bei 120 VAC und 7 A bei 240 V AC. Wir müssen eine Last über das Relais anschließen, die unter der angegebenen Nennleistung liegt.
Dieses Relais hat 5 Pins. Wenn wir die Pinbelegung sehen, können wir sehen:
Die L1 und L2 ist die interne elektromagnetische Spule Stecknadel. Wir müssen diese beiden Pins steuern, um das Relais ein- oder auszuschalten. Die nächsten drei Pins sind POLE, NO und NC. Der Pol ist mit der internen Metallplatte verbunden, die beim Einschalten des Relais ihre Verbindung ändert. Im Normalzustand ist POLE mit NC kurzgeschlossen. NC steht für normal verbunden. Wenn sich das Relais einschaltet, ändert der Pol seine Position und wird mit dem NO verbunden. NEIN steht für Normal offen.
In unserer Schaltung haben wir die Relaisverbindung mit Transistor und Diode hergestellt. Relais mit Transistor und Diode ist auf dem Markt als Relaismodul erhältlich. Wenn Sie also Relaismodul verwenden, müssen Sie dessen Treiberschaltung (Transistor und Diode) nicht anschließen.
Relais wird in allen Hausautomationsprojekten zur Steuerung der AC-Haushaltsgeräte verwendet.
Schaltplan:
Die vollständige Schaltung zum Verbinden des Relais mit dem PIC-Mikrocontroller ist unten angegeben:
In der obigen schematischen Darstellung wird pic16F877A verwendet, wobei an Port B die LED und der Transistor angeschlossen sind, die weiter über den TAC-Schalter bei RBO gesteuert werden. Die R1 versorgen den Transistor mit einem Vorspannungsstrom. R2 ist ein Pulldown-Widerstand, der über den Tastschalter verwendet wird. Es liefert eine logische 0, wenn der Schalter nicht gedrückt wird. Der 1N4007 ist eine Klemmdiode, die für die elektromagnetische Spule des Relais verwendet wird. Wenn das Relais ausgeschaltet wird, besteht die Möglichkeit von Hochspannungsspitzenund die Diode wird es unterdrücken. Der Transistor wird zum Ansteuern des Relais benötigt, da er mehr als 50 mA Strom benötigt, den der Mikrocontroller nicht liefern kann. Wir können auch ULN2003 anstelle des Transistors verwenden. Wenn mehr als zwei oder drei Relais für die Anwendung erforderlich sind, sollten Sie die Schaltung des Relaismoduls überprüfen. Die LED an Port RB2 zeigt an, dass das Relais eingeschaltet ist.
Die letzte Schaltung wird so aussehen:
Hier können Sie lernen, wie man Relais mit Arduino steuert. Wenn Sie wirklich an Relais interessiert sind, überprüfen Sie hier alle Relaisschaltungen.
Code Erläuterung:
Am Anfang der Datei main.c haben wir die Konfigurationszeilen für pic16F877A hinzugefügt und auch die Pin-Namen in PORTB definiert.
Wie immer müssen wir zuerst die Konfigurationsbits im pic-Mikrocontroller setzen, einige Makros definieren, einschließlich Bibliotheken und Kristallfrequenz. Sie können den Code für alle im vollständigen Code überprüfen, der am Ende angegeben ist. Wir haben RB0 als Eingabe gemacht. In diesem Pin ist der Schalter angeschlossen.
#einschließen
Danach haben wir die Funktion system_init () aufgerufen, bei der wir die Pin-Richtung initialisiert und auch den Standardstatus der Pins konfiguriert haben.
In der Funktion system_init () werden wir sehen
void system_init (void) { TRISBbits.TRISB0 = 1; // Sw als Eingabe setzen TRISBbits.TRISB1 = 0; // LED als Ausgang setzen TRISBbits.TRISB2 = 0; // Relaisstift als Ausgangs- LED setzen = 0; RELAIS = 0; }}
In der Hauptfunktion überprüfen wir ständig die Schalterpresse, wenn wir die Schalterpresse erkennen, indem wir die Logik über RB0 hoch erfassen. Wir warten einige Zeit und sehen, ob der Schalter noch gedrückt ist oder nicht. Wenn der Schalter noch gedrückt wird, kehren wir den Status des Relais und des LED-Pins um.
void main (void) { system_init (); // System bereitet sich vor, während (1) { if (SW == 1) {// Schalter gedrückt wird __delay_ms (50); // Entprellverzögerung, wenn (SW == 1) {// Schalter noch gedrückt ist LED =! LED; // Pin-Status invertieren. RELAIS =! RELAIS; } } } return; }}
Der vollständige Code und das Demo-Video für diese Relaisschnittstelle sind unten angegeben.