I detta projekt kommer vi att koppla ett relä med PIC Microcontroller PIC16F877A. Relä är en mekanisk enhet för att styra högspännings-, högströmsapparater ' PÅ ' eller ' AV ' från lägre spänningsnivåer. Reläet ger isolering mellan två spänningsnivåer och det används vanligtvis för att styra växelströmsapparater. Från mekaniska till halvledarreläer finns olika typer av reläer tillgängliga i elektronik. I detta projekt kommer vi att använda mekaniskt relä.
I detta projekt kommer vi att göra följande:
- Vi kommer att ansluta en switch för inmatning från användaren.
- Styr en 220V AC-lampa med 5V-relä.
- För att styra reläet använder vi BC547 NPN-transistorn och transistorn styrs från PIC16F877A. En lysdiod meddelar reläet PÅ eller AV-tillstånd.
Om du är ny på PIC Microcontroller, börja sedan med Komma igång med PIC Microcontroller.
Komponent krävs:
- PIC16F877A
- 20Mhz kristall
- 2 st 33pF keramik
- 3 st 4,7 k motstånd
- 1k motstånd
- 1 LED
- BC547 Transistor
- 1N4007 Diod
- 5V kubiskt relä
- AC-lampa
- Bakbord
- Ledningar för anslutning av delarna.
- 5V-adapter eller vilken 5V-strömkälla som helst med minst 200mA nuvarande kapacitet.
Relä och dess funktion:
Reläet fungerar som vanligt. Mekaniska reläer använder tillfällig magnet tillverkad av elektromagnetisk spole. När vi ger tillräckligt med ström över den här spolen, blev den energi och drar i en arm. På grund av detta kan kretsen ansluten över reläet vara stängd eller öppen. Ingångar och utgångar har inga elektriska anslutningar och isolerar därmed in- och utgång. Läs mer om relä och dess konstruktioner här.
Reläer finns i olika spänningsområden som 5V, 6V, 12V, 18V etc. I detta projekt kommer vi att använda 5V-relä eftersom vår arbetsspänning är 5 volt här. Detta 5V kubiska reläet kan växla 7A belastning vid 240VAC eller 10A belastning vid 110VAC. Men istället för den enorma belastningen kommer vi att använda en 220VAC-lampa och byta den med reläet.
Detta är 5V-reläet vi använder i detta projekt. Strömklassificeringen är tydligt specificerad för två spänningsnivåer, 10A vid 120VAC och 7A vid 240VAC. Vi måste ansluta belastningen över reläet mindre än det angivna värdet.
Detta relä har 5 stift. Om vi ser pinout kan vi se-
Den L1 och L2 är den interna elektromagnetisk spole PIN. Vi måste styra dessa två stift för att slå på reläet " PÅ " eller " AV ". Nästa tre stift är POLE, NO och NC. Stången är ansluten till den inre metallplattan som ändrar sin anslutning när reläet slås på. I normalt tillstånd kortsluts POLE med NC. NC står för normalt ansluten. När reläet slås på ändrar polen sin position och ansluts till NO. NO står för Normally Open.
I vår krets har vi gjort reläanslutningen med transistor och diod. Relä med transistor och diod finns på marknaden som relämodul, så när du använder relämodul behöver du inte ansluta drivkretsen (transistor och diod).
Relä används i alla hemautomatiseringsprojekt för att styra AC-hushållsapparater.
Kretsschema:
Komplett krets för anslutning av relä med PIC Microcontroller ges nedan:
I ovanstående schematiska bild används pic16F877A, där på port B är LED och transistorn anslutna, som styrs ytterligare med TAC-omkopplaren vid RBO. Den R1 tillhandahåller förspänningsström till transistorn. R2 är ett neddragbart motstånd, som används över taktil brytare. Det ger logik 0 när man inte trycker på omkopplaren. Den 1N4007 är en klämdiod, används för reläets elektromagnetiska spolen. När reläet stängs av finns det chanser för högspänningspiggaroch dioden kommer att undertrycka den. Transistorn krävs för att driva reläet eftersom det kräver mer än 50 mA ström som mikrokontrollern inte kan tillhandahålla. Vi kan också använda ULN2003 istället transistorn, det är ett klokare val om mer än två eller tre reläer krävs för applikationen, kontrollera relämodulens krets. Den LED över port RB2 meddelar ” reläet på ”.
Den sista kretsen kommer att se ut så här-
Du kan lära dig att styra relä med Arduino här, och om du verkligen är intresserad av relä, kolla alla reläkretsar här.
Kodförklaring:
I början av main.c- filen lade vi till konfigurationsraderna för pic16F877A och definierade också stiftnamnen över PORTB.
Som alltid först måste vi ställa in konfigurationsbitarna i pic-mikrokontrollern, definiera några makron, inklusive bibliotek och kristallfrekvens. Du kan kontrollera koden för alla dem i den fullständiga koden som ges i slutet. Vi gjorde RB0 som input. I denna stift är omkopplaren ansluten.
#omfatta
Efter det kallade vi system_init () -funktionen där vi initierade stiftriktningen och konfigurerade också stiftets standardläge.
I system_init () -funktionen ser vi
ogiltigt system_init (ogiltigt) { TRISBbits.TRISB0 = 1; // Ställa in Sw som ingång TRISBbits.TRISB1 = 0; // ställa in LED som utgång TRISBbits.TRISB2 = 0; // ställa in relästift som utgångslampa = 0; RELÄ = 0; }
I huvudfunktion kontrollerar vi ständigt växeln press, om vi upptäcker omkopplaren press genom avkänning logiskt högt över RB0; vi väntar en stund och ser om omkopplaren fortfarande är intryckt eller inte, om omkopplaren fortfarande är intryckt kommer vi att invertera RELAY och LED-stiftets tillstånd.
ogiltigt huvud (ogiltigt) { system_init (); // Systemet blir klart medan (1) { if (SW == 1) {// switch trycks ned __fördröjning_ms (50); // avstängningsfördröjning om (SW == 1) {// omkopplaren fortfarande trycks ned LED =! LED; // invertera stiftstatus. RELÄ =! RELÄ; } } } återvänd; }
Komplett kod och demonstrationsvideo för detta relägränssnitt ges nedan.