Σε αυτό το έργο θα διασυνδέσουμε ένα ρελέ με PIC Microcontroller PIC16F877A. Το ρελέ είναι μια μηχανική συσκευή για τον έλεγχο των συσκευών υψηλής τάσης, υψηλής τάσης « ON » ή « OFF » από τα χαμηλότερα επίπεδα τάσης. Το ρελέ παρέχει απομόνωση μεταξύ δύο επιπέδων τάσης και γενικά χρησιμοποιείται για τον έλεγχο συσκευών AC. Από τα ρελέ μηχανικής έως στερεάς κατάστασης, υπάρχουν διάφοροι τύποι ρελέ που διατίθενται στα ηλεκτρονικά. Σε αυτό το έργο θα χρησιμοποιήσουμε μηχανικό ρελέ.
Σε αυτό το έργο θα κάνουμε τα ακόλουθα πράγματα-
- Θα διασυνδέσουμε έναν διακόπτη για εισαγωγή από τον χρήστη.
- Ελέγξτε έναν λαμπτήρα 220V AC με ρελέ 5V.
- Για τον έλεγχο του ρελέ θα χρησιμοποιήσουμε το τρανζίστορ BC547 NPN και το τρανζίστορ θα ελέγχεται από το PIC16F877A. Ένα led θα ειδοποιήσει την κατάσταση ON ή OFF του ρελέ.
Εάν είστε νέοι στο PIC Microcontroller, ξεκινήστε με το Ξεκινώντας με το PIC Microcontroller.
Απαιτούμενο στοιχείο:
- PIC16F877Α
- 20Mhz Crystal
- 2 τεμάχια κεραμικά 33pF
- 3 τεμ 4,7k αντιστάσεις
- 1 k αντίσταση
- 1 LED
- Τρανζίστορ BC547
- 1N4007 Δίοδος
- 5V κυβικό ρελέ
- Λάμπα AC
- Ψωμί
- Σύρματα για τη σύνδεση των μερών.
- Προσαρμογέας 5V ή οποιαδήποτε πηγή τροφοδοσίας 5V με τρέχουσες δυνατότητες τουλάχιστον 200mA.
Ρελέ και η λειτουργία του:
Το ρελέ λειτουργεί ίδιο με τον τυπικό διακόπτη. Τα μηχανικά ρελέ χρησιμοποιούν προσωρινό μαγνήτη κατασκευασμένο από ηλεκτρομαγνητικό πηνίο. Όταν παρέχουμε αρκετό ρεύμα σε αυτό το πηνίο, ενεργοποιήθηκε και τραβάει ένα χέρι. Λόγω αυτού, το κύκλωμα που είναι συνδεδεμένο στο ρελέ μπορεί να κλείσει ή να ανοίξει. Η είσοδος και η έξοδος δεν έχουν ηλεκτρικές συνδέσεις και έτσι απομονώνουν την είσοδο και την έξοδο. Μάθετε περισσότερα για το ρελέ και τις κατασκευές του εδώ.
Τα ρελέ μπορούν να βρεθούν σε διαφορετικά εύρη τάσης όπως 5V, 6V, 12V, 18V κ.λπ. Σε αυτό το έργο θα χρησιμοποιήσουμε ρελέ 5V καθώς η τάση λειτουργίας μας είναι 5 Volts εδώ. Αυτό το κυβικό ρελέ 5V είναι ικανό να αλλάζει φορτίο 7Α στα 240VAC ή φορτίο 10Α στα 110VAC. Ωστόσο, αντί για αυτό το τεράστιο φορτίο, θα χρησιμοποιήσουμε μια λάμπα 220VAC και θα την αλλάξουμε χρησιμοποιώντας το ρελέ.
Αυτό είναι το 5V ρελέ που χρησιμοποιούμε σε αυτό το έργο. Η τρέχουσα βαθμολογία καθορίζεται σαφώς για δύο επίπεδα τάσης, 10A στα 120VAC και 7A στα 240VAC. Πρέπει να συνδέσουμε το φορτίο στο ρελέ λιγότερο από την καθορισμένη βαθμολογία.
Αυτό το ρελέ έχει 5 ακίδες. Αν δούμε το pinout μπορούμε να δούμε-
Τα L1 και L2 είναι ο πείρος του εσωτερικού ηλεκτρομαγνητικού πηνίου. Πρέπει να ελέγξουμε αυτούς τους δύο ακροδέκτες για να γυρίσετε το ρελέ « ON » ή « OFF ». Οι επόμενες τρεις ακίδες είναι POLE, NO και NC. Ο πόλος συνδέεται με την εσωτερική μεταλλική πλάκα που αλλάζει τη σύνδεσή του όταν το ρελέ ενεργοποιείται. Σε κανονική κατάσταση, το POLE είναι βραχυκυκλωμένο με NC. NC σημαίνει κανονικά συνδεδεμένο. Όταν το ρελέ ανάβει, ο πόλος αλλάζει τη θέση του και συνδέεται με το ΝΟ. ΟΧΙ σημαίνει Normally Open.
Στο κύκλωμα μας, έχουμε κάνει τη σύνδεση ρελέ με τρανζίστορ και δίοδο. Το ρελέ με τρανζίστορ και δίοδος διατίθεται στην αγορά ως Relay Module, οπότε όταν χρησιμοποιείτε το Relay Module δεν χρειάζεται να συνδέσετε το κύκλωμα οδήγησης (Transistor και diode).
Το ρελέ χρησιμοποιείται σε όλα τα έργα οικιακού αυτοματισμού για τον έλεγχο των οικιακών συσκευών AC.
Διάγραμμα κυκλώματος:
Το πλήρες κύκλωμα για τη σύνδεση του ρελέ με τον μικροελεγκτή PIC δίνεται παρακάτω:
Στο παραπάνω σχηματικό pic16F877A χρησιμοποιείται, όπου στη θύρα Β συνδέεται το LED και το τρανζίστορ, το οποίο ελέγχεται περαιτέρω χρησιμοποιώντας το διακόπτη TAC στο RBO. Το R1 παρέχει ρεύμα πόλωσης στο τρανζίστορ. Το R2 είναι μια αντίσταση pull-down, που χρησιμοποιείται σε διακόπτη αφής. Θα παρέχει λογική 0 όταν ο διακόπτης δεν πατηθεί. Το 1N4007 είναι μια δίοδος σφιγκτήρα, που χρησιμοποιείται για το ηλεκτρομαγνητικό πηνίο του ρελέ. Όταν το ρελέ απενεργοποιηθεί, υπάρχουν πιθανότητες ακίδων υψηλής τάσηςκαι η δίοδος θα την καταστείλει. Το τρανζίστορ απαιτείται για την οδήγηση του ρελέ καθώς απαιτεί περισσότερο από 50mA ρεύματος, το οποίο δεν μπορεί να παρέχει ο μικροελεγκτής. Μπορούμε επίσης να χρησιμοποιήσουμε το ULN2003 αντί για το τρανζίστορ, είναι μια σοφή επιλογή εάν απαιτούνται περισσότερα από δύο ή τρία ρελέ για την εφαρμογή, ελέγξτε το κύκλωμα της μονάδας ρελέ. Το LED σε όλη τη θύρα RB2 θα ειδοποιεί ότι το ρελέ είναι ενεργοποιημένο.
Το τελικό κύκλωμα θα μοιάζει με αυτό-
Μπορείτε να μάθετε να ελέγχετε το Relay με το Arduino εδώ και αν σας ενδιαφέρει πραγματικά το ρελέ, ελέγξτε όλα τα κυκλώματα ρελέ εδώ
Επεξήγηση κώδικα:
Στην αρχή του αρχείου main.c, προσθέσαμε τις γραμμές διαμόρφωσης για το pic16F877A και επίσης ορίσαμε τα ονόματα των pin στα PORTB.
Όπως πάντα πρώτα, πρέπει να ρυθμίσουμε τα bit διαμόρφωσης στον μικροελεγκτή pic, να ορίσουμε μερικές μακροεντολές, συμπεριλαμβανομένων των βιβλιοθηκών και της συχνότητας κρυστάλλου. Μπορείτε να ελέγξετε τον κωδικό για όλους εκείνους στον πλήρη κώδικα που δίνεται στο τέλος. Κάναμε το RB0 ως είσοδο. Σε αυτόν τον πείρο ο διακόπτης είναι συνδεδεμένος.
#περιλαμβάνω
Μετά από αυτό, καλέσαμε τη συνάρτηση system_init () όπου αρχικοποιήσαμε την κατεύθυνση του pin και επίσης διαμορφώσαμε την προεπιλεγμένη κατάσταση των pin.
Στη συνάρτηση system_init () θα δούμε
void system_init (void) { TRISBbits.TRISB0 = 1; // Ρύθμιση Sw ως είσοδος TRISBbits.TRISB1 = 0; // ρύθμιση LED ως έξοδος TRISBbits.TRISB2 = 0; // ρύθμιση του πείρου ρελέ ως LED εξόδου = 0; RELAY = 0; }
Στην κύρια λειτουργία ελέγχουμε συνεχώς τον διακόπτη, αν εντοπίσουμε τον διακόπτη πιέζοντας την λογική ψηλά στο RB0. περιμένουμε για λίγο και θα δούμε αν ο διακόπτης είναι ακόμα πατημένος ή όχι, εάν ο διακόπτης είναι ακόμα πατημένος τότε θα αντιστρέψουμε την κατάσταση του πείρου RELAY και LED.
void main (void) { system_init (); // Το σύστημα ετοιμάζεται ενώ (1) { if (SW == 1) {// ο διακόπτης είναι πατημένος __delay_ms (50); // καθυστέρηση απόρριψης εάν (SW == 1) {// ο διακόπτης εξακολουθεί να πιέζεται LED =! LED; // αναστρέφοντας την κατάσταση του πείρου. RELAY =! RELAY; } } } επιστροφή; }
Ο πλήρης κώδικας και το Demo Video για αυτήν τη διασύνδεση ρελέ δίνεται παρακάτω.