Πίνακας περιεχομένων:

Χρήση αισθητήρα υπερύθρων με Arduino: 8 βήματα (με εικόνες)
Χρήση αισθητήρα υπερύθρων με Arduino: 8 βήματα (με εικόνες)

Βίντεο: Χρήση αισθητήρα υπερύθρων με Arduino: 8 βήματα (με εικόνες)

Βίντεο: Χρήση αισθητήρα υπερύθρων με Arduino: 8 βήματα (με εικόνες)
Βίντεο: Leap Motion SDK 2024, Ιούνιος
Anonim
Χρήση αισθητήρα υπερύθρων με το Arduino
Χρήση αισθητήρα υπερύθρων με το Arduino

Τι είναι ο αισθητήρας υπερύθρων (γνωστός και ως IR);

Ο αισθητήρας IR είναι ένα ηλεκτρονικό όργανο που σαρώνει σήματα IR σε συγκεκριμένες περιοχές συχνοτήτων που ορίζονται από πρότυπα και τα μετατρέπει σε ηλεκτρικά σήματα στον πείρο εξόδου του (που συνήθως ονομάζεται ακίδα σήματος). Τα σήματα IR χρησιμοποιούνται κυρίως για τη μετάδοση εντολών στον αέρα σε μικρές αποστάσεις (συνήθως λίγα μέτρα), όπως αυτό με το οποίο έχετε ήδη εργαστεί σε τηλεχειριστήρια τηλεόρασης ή άλλες παρόμοιες ηλεκτρονικές συσκευές.

Πρωτόκολλο επικοινωνίας IR

Κάθε σήμα αντιπροσωπεύει έναν συγκεκριμένο κωδικό. Τα ηλεκτρικά σήματα μπορούν να μετατραπούν ξανά στα πραγματικά δεδομένα/κώδικα που έχει στείλει ο αποστολέας. Όταν πατάτε ένα κουμπί στο τηλεχειριστήριο της τηλεόρασής σας, παράγει ένα σήμα που αντιστοιχεί στον κωδικό του κουμπιού (π.χ. On/Off, Volume Up, κ.λπ.) και το στέλνει για δέκτη (στην περίπτωση αυτή την τηλεόρασή σας). Τόσο ο αποστολέας όσο και ο παραλήπτης συμφώνησαν σε ένα σύνολο κωδικών, ώστε ο παραλήπτης να γνωρίζει τι πρέπει να κάνει με βάση κάθε κωδικό. Ο τρόπος με τον οποίο ένας κώδικας πρέπει να διαμορφώνεται (διαμορφώνεται) ως σήμα ορίζεται σε διαφορετικά πρότυπα και κάθε κατασκευαστής αισθητήρων προσπαθεί κανονικά να παράγει ένα προϊόν συμβατό με αυτά, ώστε να μπορεί να χρησιμοποιηθεί σε διαφορετικές συσκευές. Ένα από τα πιο γνωστά πρότυπα πρωτόκολλα είναι από το NEC. Μπορείτε να βρείτε ένα σύντομο ιστορικό πρωτοκόλλων IR στη Wikipedia με τίτλο Consumer IR.

Βήμα 1: Πώς μοιάζει ένας αισθητήρας IR;

Πώς μοιάζει ένας αισθητήρας IR
Πώς μοιάζει ένας αισθητήρας IR
Πώς φαίνεται ένας αισθητήρας IR
Πώς φαίνεται ένας αισθητήρας IR
Πώς μοιάζει ένας αισθητήρας IR
Πώς μοιάζει ένας αισθητήρας IR

Οι αισθητήρες IR διατίθενται σε διαφορετικά πακέτα. Εδώ μπορείτε να δείτε μερικές τυπικές συσκευασίες για δέκτη IR.

Βήμα 2: Πίνακας/μονάδα διάσπασης αισθητήρα IR

IR Sensor Breakout Board/module
IR Sensor Breakout Board/module
IR Sensor Breakout Board/module
IR Sensor Breakout Board/module
IR Sensor Breakout Board/module
IR Sensor Breakout Board/module
IR Sensor Breakout Board/module
IR Sensor Breakout Board/module

Μπορείτε επίσης να τα αγοράσετε ως μονάδα IR/board breakout σε eBay, Aliexpress ή Amazon. Τέτοιες μονάδες κανονικά ενσωματώνουν έναν από τους αισθητήρες που αναφέρονται παραπάνω με ένα ωραίο πακέτο φιλικό προς το ψωμί μαζί με ένα LED που θα αναβοσβήνει όταν ο αισθητήρας ανιχνεύσει ένα σήμα. Με αυτόν τον τρόπο θα παρατηρήσετε εάν μεταφέρονται δεδομένα. Σας προτείνω να ξεκινήσετε με μία από αυτές τις ενότητες.

Σημείωση: εάν έχετε έναν ακατέργαστο αισθητήρα IR, τίποτα δεν θα αλλάξει, εκτός από το ότι πρέπει να ελέγξετε το φύλλο δεδομένων του αισθητήρα για να βεβαιωθείτε ότι τον συνδέετε σωστά, διότι διαφορετικά μπορεί να έχετε έναν όμορφο μπλε καπνό με μυρωδιά που θα διαρκέσει για ώρα. Ξέρεις τι εννοώ;)

Βήμα 3: Απαιτούμενα μέρη και εξαρτήματα

Απαιτούμενα μέρη και εξαρτήματα
Απαιτούμενα μέρη και εξαρτήματα

Εδώ μπορείτε να βρείτε τη λίστα των στοιχείων που θα χρειαστείτε για να ολοκληρώσετε αυτό το σεμινάριο:

σύνδεσμοι eBay:

  • 1 x Arduino Uno:
  • 1 x μονάδα αισθητήρα IR με τηλεχειριστήριο:
  • 4 x 220 ohm αντιστάσεις:
  • 4 x LED:
  • 8 x καλώδιο Dupont:
  • 1 x Πάνελ χωρίς κόλλα:
  • 1 x Mini breadboard (προαιρετικό):

Σύνδεσμοι Amazon.com:

  • 1 x Arduino Uno:
  • 1 x μονάδα αισθητήρα IR με τηλεχειριστήριο:
  • 1 x Χωρίς ψωμί χωρίς κόλλα:
  • 4 x 220 ohm αντιστάσεις:
  • 4 x LED:
  • 8 x καλώδιο Dupont:
  • 1 x Mini breadboard (προαιρετικό):

Βήμα 4: Σύνδεση αισθητήρα IR στο Arduino

Σύνδεση αισθητήρα IR στο Arduino
Σύνδεση αισθητήρα IR στο Arduino
Σύνδεση αισθητήρα IR στο Arduino
Σύνδεση αισθητήρα IR στο Arduino
Σύνδεση αισθητήρα IR στο Arduino
Σύνδεση αισθητήρα IR στο Arduino

Η ρύθμιση της σύνδεσης αισθητήρα IR στο Arduino είναι πολύ απλή. Εκτός από τον πείρο VCC και GND, ο αισθητήρας έχει μόνο έναν ακροδέκτη εξόδου που πρέπει να συνδεθεί με έναν από τους ψηφιακούς πείρους του Arduino. Σε αυτήν την περίπτωση συνδέεται με τον ακροδέκτη 13.

Προσπάθησα να δείξω τόσο τη μονάδα αισθητήρα IR όσο και την ακατέργαστη ρύθμιση αισθητήρα IR. Όπως φαίνεται στις εικόνες, η θέση των ακίδων VCC και GND στη μονάδα αισθητήρα είναι η αντίθετη από τον ακατέργαστο αισθητήρα. Ωστόσο, μπορεί να μην ισχύει για τον αισθητήρα σας, οπότε όπως αναφέρθηκε στο προηγούμενο βήμα, σε περίπτωση χρήσης του ακατέργαστου αισθητήρα, ελέγξτε πρώτα το φύλλο δεδομένων.

Βήμα 5: Βρείτε τον κωδικό που αντιστοιχεί σε κάθε κλειδί στο τηλεχειριστήριο

Βρείτε τον κωδικό που αντιστοιχεί σε κάθε κλειδί στο τηλεχειριστήριο
Βρείτε τον κωδικό που αντιστοιχεί σε κάθε κλειδί στο τηλεχειριστήριο
Βρείτε τον κωδικό που αντιστοιχεί σε κάθε κλειδί στο τηλεχειριστήριο
Βρείτε τον κωδικό που αντιστοιχεί σε κάθε κλειδί στο τηλεχειριστήριο
Βρείτε τον κωδικό που αντιστοιχεί σε κάθε κλειδί στο τηλεχειριστήριο
Βρείτε τον κωδικό που αντιστοιχεί σε κάθε κλειδί στο τηλεχειριστήριο

Για να προγραμματίσετε το Arduino να κάνει κάτι όταν πατάτε ένα πλήκτρο στο τηλεχειριστήριο, θα πρέπει πρώτα να έχετε τον κωδικό που αντιστοιχεί σε αυτό το κλειδί. Ο βασικός κωδικός είναι ένας αριθμός που συνήθως παρουσιάζεται ως δεκαεξαδικός. Κάθε τηλεχειριστήριο έχει το δικό του σύνολο κωδικών κλειδιού, ενώ είναι πιθανό δύο ελεγκτές να μοιράζονται τον ίδιο κωδικό για διαφορετικούς σκοπούς. Έχοντας διαφορετικούς κωδικούς -κλειδιά μαζί με τη χρήση διαφορετικών εύρους συχνοτήτων, διασφαλίζεται ότι δύο τηλεχειριστήρια διαφορετικών συσκευών δεν θα έχουν παρεμβολές. Αυτός είναι ο λόγος για τον οποίο όταν αλλάζετε το τηλεοπτικό σας κανάλι, η συσκευή αναπαραγωγής DVD δεν αντιδρά καθόλου.

Για να εντοπίσετε τους κωδικούς για το τηλεχειριστήριο IR, πρέπει πρώτα να εκτελέσετε ένα απλό σκίτσο που προσπαθεί να διαβάσει τον κώδικα από τον αισθητήρα όταν πατάτε ένα πλήκτρο και το στέλνει μέσω της σειριακής θύρας στον υπολογιστή σας, όπου μπορείτε να έχετε πρόσβαση χρησιμοποιώντας εργαλεία Serial Monitor του Arduino IDE. Αυτό κάνει το σκίτσο που επισυνάπτεται σε αυτήν την ενότητα. Θα ήταν καλύτερο να πατήσετε κάθε κουμπί για να δείτε τον κωδικό και να γράψετε κάπου τη λίστα των κωδικών, ώστε να μην χρειαστεί να εκτελέσετε ξανά αυτόν τον κώδικα στο μέλλον. Η λίστα με τους βασικούς κωδικούς που βλέπετε ως πίνακα στην εικόνα είναι στην πραγματικότητα κωδικοί που έλαβα όταν πατούσα κουμπιά στο φτηνό τηλεχειριστήριο IR.

Μπορείτε επίσης να αποκτήσετε πρόσβαση στον πραγματικό πηγαίο κώδικα που κοινοποιείται στον επεξεργαστή ιστού Arduino στο ir-key-code-logger.

Σημείωση: Μην φοβηθείτε αν δείτε έναν κωδικό όπως το FFFFFF κάπου στο ενδιάμεσο. Σημαίνει ότι έχετε πατήσει και κρατήσετε πατημένο ένα κουμπί για λίγο. Θα επανέλθουμε αργότερα. Προς το παρόν απλά αγνοήστε τα και επικεντρωθείτε σε άλλους κωδικούς.

Βήμα 6: Ελέγξτε ένα σύνολο LED με τη χρήση τηλεχειριστηρίου IR

Ελέγξτε ένα σύνολο LED με τηλεχειριστήριο IR
Ελέγξτε ένα σύνολο LED με τηλεχειριστήριο IR
Ελέγξτε ένα σύνολο LED με τηλεχειριστήριο IR
Ελέγξτε ένα σύνολο LED με τηλεχειριστήριο IR
Ελέγξτε ένα σύνολο LED με τηλεχειριστήριο IR
Ελέγξτε ένα σύνολο LED με τηλεχειριστήριο IR

Τώρα που έχουμε έναν κωδικό για κάθε κουμπί, ήρθε η ώρα να εστιάσουμε στον τρόπο με τον οποίο μπορούμε να τα χρησιμοποιήσουμε. Κανονικά χρησιμοποιείτε το τηλεχειριστήριο IR για να στείλετε εντολές στο Arduino για να κάνετε κάτι όπως να ενεργοποιήσετε ή να απενεργοποιήσετε μια λάμπα, να μετακινήσετε ένα ρομπότ σε συγκεκριμένη κατεύθυνση, να εμφανίσετε κάτι σε οθόνη LCD/OLED κλπ. Εδώ προσπαθούμε να αποδείξουμε τη διαδικασία χρησιμοποιώντας ένα απλό κύκλωμα που αποτελείται από 4 LED σε διαφορετικά χρώματα. Θέλουμε να ενεργοποιήσουμε ή να απενεργοποιήσουμε καθένα από αυτά με ένα ειδικό κουμπί του τηλεχειριστηρίου IR. Όπως μπορείτε να δείτε στο σχήμα, πρέπει να συνδέσετε το Arduino με τον ακόλουθο τρόπο σε LED και αισθητήρα:

Arduino GND -> IR αισθητήρας GND.

Arduino VCC -> Αισθητήρας IR VCC.

Arduino 13 -> Έξοδος σήματος αισθητήρα IR.

Arduino 2 -> Άνοδος του μπλε LED (μικρότερη ακίδα του μπλε LED)

Arduino 3 -> Άνοδος του πράσινου LED (μικρότερη ακίδα του πράσινου LED)

Arduino 4 -> Άνοδος του κίτρινου LED (κοντύτερος πείρος του κίτρινου LED)

Arduino 5 -> Άνοδος του κόκκινου LED (μικρότερη ακίδα του κόκκινου LED)

Arduino GND -> Κάθοδος όλων των LED μέσω αντίστασης 220 ohm (μεγαλύτερη ακίδα των LED)

Μπορείτε να βρείτε τον κωδικό που αντιστοιχεί σε αυτό το κύκλωμα στο συνημμένο αρχείο ή στον επεξεργαστή ιστού Arduino στο ir-led-control.

Βήμα 7: Αντιμετώπιση προβλημάτων

Κατά τη ρύθμιση του έργου σας και ακολουθώντας τα βήματα μπορεί να συναντήσετε πολλές περίεργες καταστάσεις. Ακολουθεί η λίστα με ορισμένα κοινά σφάλματα που ενδέχεται να αντιμετωπίσετε κατά την εργασία με αισθητήρα IR.

Λήψη FFFFFF όταν πατάτε ένα πλήκτρο

Πιέζοντας ένα κουμπί μπορεί να παρατηρήσετε ότι τις περισσότερες φορές αναφέρει έναν κωδικό όπως το FFFFFF. Αυτό συμβαίνει όταν πατάτε ένα κουμπί και το κρατάτε για λίγο, ακόμη και για μικρό χρονικό διάστημα. Το σενάριο είναι ότι όταν πατάτε αρχικά το κουμπί, το τηλεχειριστήριο IR στέλνει τον κωδικό του κουμπιού και όσο κρατάτε το κουμπί, επαναλαμβάνει την αποστολή FFFFFF, πράγμα που σημαίνει ότι ο χρήστης εξακολουθεί να πατά το κουμπί που αναφέρθηκε πρόσφατα. Αυτό θα ήταν εντάξει. Μπορείτε απλά να τα παραλείψετε. Ο πραγματικός κωδικός είναι αυτός που πήρατε ακριβώς πριν από το FFFFFF στη Σειριακή οθόνη.

Ο αισθητήρας IR δεν αντιδρά καθόλου και φαίνεται ότι ζεσταίνεται

Κόψτε το ρεύμα !!! Εάν είστε βέβαιοι ότι το σκίτσο του κλειδιού καταγραφής κωδικών είναι σωστό, τότε το πρόβλημα ίσως οφείλεται στη λανθασμένη ρύθμιση των καλωδίων σας. Το σενάριο που μου συνέβη ήταν ότι για τη μονάδα IR μου (αυτή που είναι προσαρτημένη στον πίνακα) είχα συνδέσει το VCC και το GND με τον αντίθετο τρόπο (λόγω της μη χρήσης κατάλληλων χρωμάτων για τα καλώδια σύνδεσης). Με αυτόν τον τρόπο το εξάρτημα του αισθητήρα κάηκε και ένας καλός μπλε καπνός σηκώθηκε. Αγόρασα ένα πακέτο ωμών αισθητήρων IR και προσπάθησα να το αντικαταστήσω και τώρα λειτουργεί σαν γούρι:). Δυστυχώς έκανα το ίδιο λάθος όταν έκανα δοκιμές με τον ακατέργαστο αισθητήρα IR και αυτή τη φορά δεν συνέβη τίποτα παρά μόνο ότι ο αισθητήρας ζεστάθηκε. Ελέγχετε πάντα το κύκλωμα πριν ενεργοποιήσετε το ρεύμα!

Μερικές φορές ο αισθητήρας ανιχνεύει έναν κωδικό που δεν έχω ξαναδεί

Αυτό είναι ένα από τα πιο κοινά ζητήματα. Πιθανότατα οφείλεται σε έναν από τους ακόλουθους λόγους:

Δεν στρέφετε το τηλεχειριστήριο IR απευθείας προς τον αισθητήρα

Αυτό θα οδηγήσει στην κατοχή νέων κωδικών (κυρίως μεγαλύτερων κωδικών) που δεν έχετε λάβει ποτέ πριν και κανονικά δεν ταιριάζει με το μήκος των κωδικών που έχετε ήδη. Έτσι θυμηθείτε να στρέφετε πάντα το τηλεχειριστήριο προς τον αισθητήρα σας.

Χρησιμοποιείτε ένα φτηνό τηλεχειριστήριο IR (όπως αυτό που χρησιμοποίησα σε αυτό το σεμινάριο)

Αντί να χρησιμοποιήσετε ένα φθηνό απρόβλεπτο τηλεχειριστήριο, μπορείτε να δοκιμάσετε το ίδιο σενάριο χρησιμοποιώντας το τηλεχειριστήριο τηλεόρασης ή DVD Player ή ένα τηλεχειριστήριο IR οποιασδήποτε συσκευής έχετε. Κανονικά έχουν καλή ποιότητα σήματος/υλικού (και φυσικά είναι πιο ακριβά) και με βάση την εμπειρία μου, κανονικά λειτουργούν καλά ακόμη και αν δεν στρέφετε το τηλεχειριστήριό σας απευθείας προς τον αισθητήρα.

Πώς μπορώ να ξέρω εάν ένας κωδικός που έχει καταγραφεί δεν είναι σκουπίδι

Οι κωδικοί παρουσιάζονται κανονικά σε δεκαεξαδική μορφή. Εάν τα μετατρέψετε στην αντίστοιχη δυαδική τιμή, θα παρατηρήσετε ότι η δυαδική αναπαράσταση του τελευταίου byte είναι η άρνηση του byte που προηγείται. Εάν το γνωρίζετε αυτό, μπορείτε να κάνετε αυτόν τον έλεγχο στον κωδικό σας για να βεβαιωθείτε ότι ο κωδικός που λάβατε είναι όντως έγκυρος ή όχι. Για παράδειγμα, αν είχατε το FF7A85 η δυαδική του αναπαράσταση θα ήταν όπως παρακάτω:

1111 1111 0111 1010 1000 0101

Από αριστερά προς τα δεξιά, κάθε παρτίδα 4 ψηφίων αντιπροσωπεύει έναν χαρακτήρα στον αρχικό δεκαεξαδικό αριθμό. Όπως μπορείτε να δείτε, η παρτίδα που αντιστοιχεί στο 7 είναι 0111 και η παρτίδα που αντιστοιχεί στο 8 είναι 1000 που είναι η ακριβής άρνηση της. Με άρνηση εννοώ ότι όλα τα 0 θα ήταν 1 και όλα τα 1 θα αντικατασταθούν με 0. Το ίδιο ισχύει και για το επόμενο που είναι το Α (1010) και το 5 (0101).

Βήμα 8: Τι να κάνετε στη συνέχεια;

Τωρα ειναι η σειρα σου. Όλα εξαρτώνται από τη φαντασία σας να δείτε τι μπορείτε να κάνετε με αυτόν τον μικρό απλό αισθητήρα στο χέρι σας. Ακολουθούν μερικές ιδέες για αρχή:

  • Χρησιμοποιήστε το τηλεχειριστήριο IR μιας από τις συσκευές που έχετε στο σπίτι (τηλεόραση, στερεοφωνικό κ.λπ.) και προσπαθήστε να το χρησιμοποιήσετε στο έργο σας Arduino
  • Προσπαθήστε να ενεργοποιήσετε ταυτόχρονα όλες τις λυχνίες LED πατώντας ένα πλήκτρο και, στη συνέχεια, απενεργοποιήστε τις χρησιμοποιώντας ένα άλλο πλήκτρο
  • Χρησιμοποιήστε το κουμπί Επάνω/Κάτω του τηλεχειριστηρίου για να ενεργοποιήσετε/απενεργοποιήσετε τις λυχνίες LED μία έως μία έως ότου ενεργοποιηθούν/απενεργοποιηθούν όλες
  • Δημιουργήστε ένα φανάρι με LED και ελέγξτε το χρησιμοποιώντας το τηλεχειριστήριό σας
  • Εάν έχετε έναν μικρό κινητήρα DC στο χέρι, προσπαθήστε να ξεκινήσετε/σταματήσετε ή να αλλάξετε την κατεύθυνση περιστροφής του μέσω τηλεχειριστηρίου IR
  • Μπορείτε να χρησιμοποιήσετε το τηλεχειριστήριο της τηλεόρασής σας για να ελέγξετε το ρομπότ σας ή να ενεργοποιήσετε/απενεργοποιήσετε ορισμένους αισθητήρες/ενεργοποιητές σε αυτό

Ενημερώστε με σχετικά με τα σχόλια, τι θα κάνατε (ή έχετε ήδη κάνει) χρησιμοποιώντας το τηλεχειριστήριο IR.

Συνιστάται: