In dit project zullen we een relais verbinden met PIC Microcontroller PIC16F877A. Relais is een mechanisch apparaat om apparaten met hoge spanning en hoge stroom ' AAN ' of ' UIT ' te regelen vanaf lagere spanningsniveaus. Relais biedt isolatie tussen twee spanningsniveaus en wordt over het algemeen gebruikt om AC-apparaten te bedienen. Van mechanische tot solid state relais, er zijn verschillende soorten relais beschikbaar in de elektronica. In dit project zullen we mechanisch relais gebruiken.
In dit project zullen we de volgende dingen doen-
- We zullen een schakelaar koppelen voor invoer van de gebruiker.
- Bedien een 220V AC lamp met 5V relais.
- Om het relais aan te sturen gebruiken we de BC547 NPN transistor en de transistor wordt aangestuurd vanaf de PIC16F877A. Een led geeft aan dat het relais AAN of UIT staat.
Als PIC Microcontroller nieuw voor je is, begin dan met Aan de slag met PIC Microcontroller.
Vereiste component:
- PIC16F877A
- 20Mhz kristal
- 2 stuks 33pF keramiek
- 3 stuks 4.7k weerstanden
- 1k weerstand
- 1 led
- BC547-transistor
- 1N4007 Diode
- 5V kubusvormig relais
- AC-lamp
- Breadboard
- Draden voor het verbinden van de onderdelen.
- 5V-adapter of een willekeurige 5V-voedingsbron met een stroomcapaciteit van ten minste 200mA.
Relais en zijn werking:
Relais werkt hetzelfde als een typische schakelaar. Mechanische relais gebruiken een tijdelijke magneet gemaakt van een elektromagnetische spoel. Wanneer we voldoende stroom over deze spoel leveren, wordt deze bekrachtigd en trekt aan een arm. Hierdoor kan het circuit dat over het relais is aangesloten, gesloten of open zijn. De input en output hebben geen elektrische aansluitingen en isoleert dus input en output. Lees hier meer over relais en zijn constructies.
Relais zijn te vinden in verschillende spanningsbereiken zoals 5V, 6V, 12V, 18V etc. In dit project zullen we 5V relais gebruiken aangezien onze werkspanning hier 5 Volt is. Dit kubieke relais van 5V is in staat om 7A- belasting op 240VAC of 10A- belasting op 110VAC te schakelen. Maar in plaats van die enorme belasting zullen we een 220VAC-lamp gebruiken en deze schakelen met behulp van het relais.
Dit is het 5V-relais dat we in dit project gebruiken. De stroomwaarde is duidelijk gespecificeerd voor twee spanningsniveaus, 10A bij 120VAC en 7A bij 240VAC. We moeten een belasting over het relais aansluiten die minder is dan de opgegeven classificatie.
Dit relais heeft 5 pinnen. Als we de pin-out zien, kunnen we zien-
De L1 en L2 is de pin van de interne elektromagnetische spoel. We moeten deze twee pinnen bedienen om het relais ' AAN ' of ' UIT ' te zetten. De volgende drie pinnen zijn POLE, NO en NC. De paal is verbonden met de interne metalen plaat die van verbinding verandert wanneer het relais wordt ingeschakeld. In normale toestand is POLE kortgesloten met NC. NC staat voor normaal verbonden. Wanneer het relais wordt ingeschakeld, verandert de pool van positie en wordt hij verbonden met de NO. NO staat voor Normally Open.
In ons circuit hebben we de relaisverbinding gemaakt met transistor en diode. Relais met transistor en diode is op de markt verkrijgbaar als relaismodule, dus als u een relaismodule gebruikt, hoeft u het stuurcircuit (transistor en diode) niet aan te sluiten.
Relais wordt gebruikt in alle domotica-projecten om de AC-huishoudelijke apparaten te bedienen.
Schakelschema:
Het volledige circuit voor het verbinden van relais met PIC-microcontroller wordt hieronder gegeven:
In het bovenstaande schema wordt pic16F877A gebruikt, waar op poort B de LED en de transistor zijn aangesloten, die verder wordt bestuurd met behulp van de TAC-schakelaar bij RBO. De R1 levert een instelstroom aan de transistor. R2 is een pull-down-weerstand die wordt gebruikt over een tactiele schakelaar. Het geeft logische 0 wanneer de schakelaar niet wordt ingedrukt. De 1N4007 is een klemdiode, voor elektromagnetische spoel van het relais. Wanneer het relais wordt uitgeschakeld, zijn er kansen op hoogspanningspiekenen de diode zal het onderdrukken. De transistor is vereist voor het aansturen van het relais, aangezien er meer dan 50 mA stroom nodig is, die de microcontroller niet kan leveren. We kunnen ook ULN2003 gebruiken in plaats van de transistor, het is een verstandiger keuze als er meer dan twee of drie relais nodig zijn voor de toepassing, controleer het circuit van de relaismodule. De LED over poort RB2 geeft aan " relais is aan ".
Het laatste circuit ziet er als volgt uit:
Je kunt hier het besturen van relais met Arduino leren, en als je echt geïnteresseerd bent in relais, bekijk dan hier alle relaiscircuits.
Code Verklaring:
Aan het begin van de main.c bestand, voegden we de configuratie lijnen voor PIC16F877A en ook gedefinieerd de pin namen over PORTB.
Zoals altijd eerst, moeten we de configuratiebits in de pic-microcontroller instellen, enkele macro's definiëren, inclusief bibliotheken en kristalfrequentie. U kunt de code voor al degenen in de volledige code aan het einde controleren. We hebben RB0 gemaakt als invoer. In deze pin is de schakelaar aangesloten.
# omvatten
Daarna hebben we de functie system_init () gebeld waar we de pin-richting hebben geïnitialiseerd en ook de standaardstatus van de pinnen hebben geconfigureerd.
In de system_init () functie zullen we zien
void system_init (void) { TRISBbits.TRISB0 = 1; // Sw instellen als invoer TRISBbits.TRISB1 = 0; // instelling LED als output TRISBbits.TRISB2 = 0; // instellen relais pin als output LED = 0; RELAY = 0; }
In de hoofdfunctie controleren we constant de druk op de schakelaar, als we de druk op de schakelaar detecteren door logisch hoog over RB0 te detecteren; we wachten enige tijd en kijken of de schakelaar nog steeds is ingedrukt of niet, als de schakelaar nog steeds is ingedrukt, zullen we de status van het RELAIS en de LED-pin omkeren.
void main (void) { system_init (); // Systeem maakt zich klaar terwijl (1) { if (SW == 1) {// schakelaar wordt ingedrukt __delay_ms (50); // vertraging vertraging als (SW == 1) {// schakelaar nog steeds ingedrukt is LED =! LED; // omkering van de pin-status. RELAY =! RELAY; } } } terugkeer; }
De volledige code en demovideo voor deze relaisinterface wordt hieronder gegeven.