- Επεξήγηση εργασίας:
- Αποκωδικοποίηση σημάτων τηλεχειριστηρίου IR χρησιμοποιώντας το Arduino:
- Περιγραφή κυκλώματος:
- Περιγραφή κωδικού:
Προηγουμένως έχουμε καλύψει πολλούς τύπους οικιακών αυτοματισμών χρησιμοποιώντας διαφορετικές τεχνολογίες, όπως DTMF Home Automation, PC Controlled Home Automation χρησιμοποιώντας Arduino, Bluetooth Controlled Home Automation. Σε αυτό το έργο, χρησιμοποιούμε ασύρματη επικοινωνία βάσει IR για τον έλεγχο οικιακών συσκευών. Σε αυτό το έργο, το Arduino χρησιμοποιείται για τον έλεγχο ολόκληρης της διαδικασίας. Στέλνουμε μερικές εντολές στο σύστημα ελέγχου χρησιμοποιώντας τηλεχειριστήριο IR TV / DVD / MP3 για τον έλεγχο οικιακών συσκευών AC. Αφού λάβει σήμα από το τηλεχειριστήριο IR, το Arduino στέλνει σχετικό σήμα σε ρελέ τα οποία είναι υπεύθυνα για την ενεργοποίηση ή απενεργοποίηση των οικιακών συσκευών μέσω ενός προγράμματος οδήγησης ρελέ.
Επεξήγηση εργασίας:
Η εργασία αυτού του έργου είναι εύκολα κατανοητή. Όταν πατάμε οποιοδήποτε κουμπί IR Remote, τότε το τηλεχειριστήριο στέλνει έναν κωδικό με τη μορφή τρένου κωδικοποιημένων παλμών χρησιμοποιώντας συχνότητα διαμόρφωσης 38Khz. Αυτοί οι παλμοί λαμβάνονται από τον αισθητήρα TSOP1738 και διαβάζονται από τον Arduino και έπειτα ο Arduino αποκωδικοποιεί τη διαδρομή του παλμού σε μια δεκαεξαδική τιμή και συγκρίνει αυτήν την αποκωδικοποιημένη τιμή με την προκαθορισμένη δεκαεξαδική τιμή του πατημένου κουμπιού. Εάν συμβεί κάποιος αγώνας τότε το Arduino εκτελεί σχετική λειτουργία και το αντίστοιχο αποτέλεσμα εμφανίζεται επίσης σε οθόνη LCD 16x2 χρησιμοποιώντας κατάλληλες εντολές. Εδώ σε αυτό το έργο χρησιμοποιήσαμε 3 λαμπτήρες διαφορετικών χρωμάτων, για επίδειξη που υποδεικνύει ανεμιστήρα, φως και τηλεόραση
Υπάρχουν πολλοί τύποι IR Remote που διατίθενται για διαφορετικές συσκευές, αλλά οι περισσότεροι από αυτούς λειτουργούν σε σήμα συχνότητας περίπου 38KHz. Εδώ σε αυτό το έργο ελέγχουμε τις οικιακές συσκευές χρησιμοποιώντας τηλεχειριστήριο IR TV. Για την ανίχνευση απομακρυσμένου σήματος IR, χρησιμοποιούμε TSOP1738 IR Receiver. Αυτός ο αισθητήρας TSOP1738 μπορεί να ανιχνεύσει σήμα συχνότητας 38Khz. Η εργασία του τηλεχειριστηρίου IR και του TSOP1738 μπορεί να καλυφθεί λεπτομερώς σε αυτό το άρθρο: Πομπός IR και δέκτης
Συστατικά:
- Arduino UNO
- TSOP1738
- Τηλεχειριστήριο IR TV / DVD
- ULN2003
- Ρελέ 5 volt
- Λάμπα με βάση
- Σύνδεση καλωδίων
- Πίνακας ψωμιού
- LCD 16x2
- Παροχή ηλεκτρικού ρεύματος
- PVT
- IC 7805
Εδώ σε αυτό το έργο χρησιμοποιήσαμε το κουμπί αριθμού 7, 8 και 9 του τηλεχειριστηρίου IR, για τον έλεγχο του ανεμιστήρα, του φωτός και της τηλεόρασης αντίστοιχα και το κουμπί ON / OFF (κουμπί λειτουργίας) χρησιμοποιείται για την ταυτόχρονη ενεργοποίηση και απενεργοποίηση όλων των συσκευών.
Εδώ χρησιμοποιήσαμε τη μέθοδο εναλλαγής για ενεργοποίηση και απενεργοποίηση της οικιακής συσκευής. Εναλλαγή μεθόδου δεν είναι τίποτα άλλο από το να το καταλάβουμε είτε το πάτημα του πλήκτρου έστω και τις φορές ή το περίεργο αριθμό των χρόνων. Αυτό εντοπίζεται με τη λήψη της υπενθύμισης μετά τη διαίρεσή της με το 2 (i% 2), εάν υπάρχει κάποια υπενθύμιση, τότε η συσκευή θα ενεργοποιηθεί και εάν η υπενθύμιση είναι 0, τότε θα απενεργοποιηθεί. Ας υποθέσουμε ότι το πλήκτρο 7 πιέζεται στο τηλεχειριστήριο και στη συνέχεια το τηλεχειριστήριο στέλνει ένα σήμα στο Arduino μέσω TSOP IR Receiver. Στη συνέχεια, το Arduino το αποκωδικοποίησε και αποθηκεύστε την αποκωδικοποιημένη τιμή στη μεταβλητή αποτελεσμάτων. Τώρα η μεταβλητή αποτελεσμάτων έχει μια δεκαεξαδική τιμή 0x1FE00FF, αφού την αντιστοιχίσει με την προκαθορισμένη δεκαεξαδική τιμή του κλειδιού 7 (βλ. Παραπάνω εικόνα), ο Arduino ενεργοποιεί τον ανεμιστήρα. Τώρα όταν πατάμε ξανά το ίδιο πλήκτρο (πλήκτρο 7) τότε το IR στέλνει τον ίδιο κωδικό. Ο Arduino παίρνει τον ίδιο κωδικό και ταιριάζει με τον ίδιο κωδικό όπως και πριν, αλλά αυτή τη φορά ο Fan απενεργοποιήθηκε λόγω εναλλαγής του bit (i% 2).
Αποκωδικοποίηση σημάτων τηλεχειριστηρίου IR χρησιμοποιώντας το Arduino:
Ακολουθεί μια λίστα με κωδικούς εξόδου απομακρυσμένης αποκωδικοποίησης τύπου DVD NEC:
Εάν δεν γνωρίζετε την αποκωδικοποιημένη έξοδο για το τηλεχειριστήριο υπερύθρων, μπορεί να βρεθεί εύκολα, απλώς ακολουθήστε τα εξής βήματα:
- Κατεβάστε την απομακρυσμένη βιβλιοθήκη υπερύθρων από εδώ
- Αποσυμπιέστε το και τοποθετήστε το στο φάκελο "Βιβλιοθήκες" του Arduino. Στη συνέχεια, μετονομάστε τον εξαγόμενο φάκελο σε IRremote.
- Εκτελέστε το παρακάτω πρόγραμμα από το Arduino και ανοίξτε το παράθυρο Serial Monitor στο Arduino IDE. Τώρα πατήστε οποιοδήποτε κουμπί IR Remote και δείτε την αντίστοιχη αποκωδικοποιημένη εξάγωνη έξοδο στο παράθυρο Serial Monitor.
* IRremote: IRrecvDemo - δείχνει τη λήψη κωδικών IR με IRrecv * Ένας ανιχνευτής IR / αποδιαμορφωτής πρέπει να είναι συνδεδεμένος στην είσοδο RECV_PIN. * Έκδοση 0,1 Ιουλίου 2009 * Πνευματικά δικαιώματα 2009 Ken Shirriff * http://arcfn.com * / #include
Το παραπάνω πρόγραμμα προέρχεται από το φάκελο «παραδείγματα» της βιβλιοθήκης IRremote, μπορείτε να δείτε περισσότερα παραδείγματα για να μάθετε περισσότερα σχετικά με τη χρήση του τηλεχειριστηρίου υπερύθρων. Έτσι αποκωδικοποιήσαμε την απομακρυσμένη έξοδο IR.
Περιγραφή κυκλώματος:
Οι συνδέσεις αυτού του κυκλώματος είναι πολύ απλές εδώ, μια οθόνη υγρών κρυστάλλων χρησιμοποιείται για την εμφάνιση της κατάστασης των οικιακών συσκευών που συνδέεται απευθείας με το arduino σε λειτουργία 4-bit. Οι καρφίτσες δεδομένων της LCD, συγκεκριμένα RS, EN, D4, D5, D6, D7 συνδέονται με τον ψηφιακό πείρο arduino με αριθμό 6, 7, 8, 9, 10, 11. Και ο πείρος εξόδου του TSOP1738 συνδέεται απευθείας στον ψηφιακό αριθμό pin 14 (A) του Arduino. Και ο πείρος Vcc είναι συνδεδεμένος ένας πείρος +5 βολτ και ο GND συνδεδεμένος στον ακροδέκτη γείωσης του κυκλώματος. Ένα πρόγραμμα οδήγησης ρελέ, το ULN2003, χρησιμοποιείται επίσης για την οδήγηση ρελέ. 5 ρελέ SPDT 3 ρελέ χρησιμοποιούνται για τον έλεγχο LIGHT, FAN και TV. Και τα ρελέ συνδέονται με τον αριθμό pin 3, 4 και 5 του arduino μέσω του προγράμματος οδήγησης ρελέ ULN2003 για τον έλεγχο LIGHT, FAN και TV αντίστοιχα.
Περιγραφή κωδικού:
Στο πρόγραμμα προγραμματισμού αυτού του έργου Πρώτα απ 'όλα στον προγραμματισμό περιλαμβάνεται βιβλιοθήκη για τηλεχειριστήριο IR που είναι εύκολα διαθέσιμη στο Google. Και ορίστε pin και δηλώστε μεταβλητές.
#περιλαμβάνω
Στη συνέχεια, συμπεριλάβετε μια κεφαλίδα για οθόνη υγρών κρυστάλλων και στη συνέχεια ορίζουμε δεδομένα και πείρους ελέγχου για LCD και οικιακές συσκευές.
#περιλαμβάνω
Μετά από αυτό πρέπει να αρχικοποιήσουμε την οθόνη LCD και να δώσουμε κατεύθυνση του πείρου που χρησιμοποιείται για ανεμιστήρα, φως και τηλεόραση.
άκυρη ρύθμιση () {Serial.begin (9600); lcd.begin (16,2); pinMode (Ανεμιστήρας, ΕΞΟΔΟΣ); pinMode (Light, OUTPUT); pinMode (TV, OUTPUT);
Όπως έχει ήδη εξηγηθεί, παρακάτω μέρος του κώδικα χρησιμοποιείται για τη σύγκριση της ληφθείσας δεκαεξαδικής τιμής με τον ήδη καθορισμένο δεκαεξαδικό κώδικα αυτού του κουμπιού. Εάν ταιριάζει τότε μια σχετική λειτουργία εκτελείται χρησιμοποιώντας κατάλληλες λειτουργίες που δίνονται σε κώδικα.
void loop () {if (irrecv.decode (& results)) {Serial.println (results.value, HEX); καθυστέρηση (100); lcd.setCursor (0,0); lcd.print ("Fan Light TV"); εάν (αποτελέσματα.value == 0x1FE00FF) {i ++; int x = i% 2; digitalWrite (Ανεμιστήρας, x);