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

Υπολογισμός έντασης φωτός με χρήση BH1715 και Arduino Nano: 5 βήματα
Υπολογισμός έντασης φωτός με χρήση BH1715 και Arduino Nano: 5 βήματα

Βίντεο: Υπολογισμός έντασης φωτός με χρήση BH1715 και Arduino Nano: 5 βήματα

Βίντεο: Υπολογισμός έντασης φωτός με χρήση BH1715 και Arduino Nano: 5 βήματα
Βίντεο: Διάθλαση Φωτός & Νόμος του Snell: το πείραμα με τα αναστρεφόμενα βέλη και το καλαμάκι 2024, Ιούλιος
Anonim
Image
Image

Χθες δουλεύαμε σε οθόνες LCD και ενώ τις δουλεύαμε συνειδητοποιήσαμε τη σημασία του υπολογισμού της έντασης του φωτός. Η ένταση του φωτός δεν είναι σημαντική μόνο στη φυσική περιοχή αυτού του κόσμου, αλλά έχει τον καλά αναφερόμενο ρόλο της και στον βιολογικό τομέα. Η ακριβής εκτίμηση της έντασης του φωτός παίζει κεντρικό ρόλο στο οικοσύστημά μας, στην ανάπτυξη των φυτών κλπ. Έτσι, για την εξυπηρέτηση αυτού του σκοπού, μελετήσαμε αυτόν τον αισθητήρα BH1715, ο οποίος είναι ένας σειριακός αισθητήρας φωτισμού περιβάλλοντος 16-bit σειριακής εξόδου.

Σε αυτό το σεμινάριο, θα παρουσιάσουμε τη συνεργασία του BH1715 με τον Arduino Nano.

Το υλικό που θα χρειαστείτε για αυτό το σκοπό είναι το ακόλουθο:

1. BH1715 - Αισθητήρας φωτός περιβάλλοντος

2. Arduino nano

3. Καλώδιο I2C

4. I2C Shield For Arduino Nano

Βήμα 1: Επισκόπηση BH1715:

Ο, τι χρειάζεσαι..!!
Ο, τι χρειάζεσαι..!!

Πρώτα απ 'όλα θα θέλαμε να σας εξοικειώσουμε με τα βασικά χαρακτηριστικά της μονάδας αισθητήρα που είναι το BH1715 και το πρωτόκολλο επικοινωνίας στο οποίο λειτουργεί.

Το BH1715 είναι ένας ψηφιακός αισθητήρας φωτός περιβάλλοντος με διεπαφή διαύλου I²C. Το BH1715 χρησιμοποιείται συνήθως για τη λήψη δεδομένων φωτισμού περιβάλλοντος για τη ρύθμιση της ισχύος του οπίσθιου φωτισμού LCD και πληκτρολογίου για κινητές συσκευές. Αυτή η συσκευή προσφέρει ανάλυση 16-bit και ρυθμιζόμενο εύρος μέτρησης, επιτρέποντας την ανίχνευση από 0,23 έως 100, 000 lux.

Το πρωτόκολλο επικοινωνίας στο οποίο λειτουργεί ο αισθητήρας είναι I2C. Το I2C σημαίνει το ενσωματωμένο κύκλωμα. Είναι ένα πρωτόκολλο επικοινωνίας στο οποίο η επικοινωνία πραγματοποιείται μέσω γραμμών SDA (σειριακά δεδομένα) και SCL (σειριακό ρολόι). Επιτρέπει τη σύνδεση πολλαπλών συσκευών ταυτόχρονα. Είναι ένα από τα πιο απλά και αποτελεσματικά πρωτόκολλα επικοινωνίας.

Βήμα 2: Αυτό που χρειάζεστε..

Ο, τι χρειάζεσαι..!!
Ο, τι χρειάζεσαι..!!
Ο, τι χρειάζεσαι..!!
Ο, τι χρειάζεσαι..!!
Ο, τι χρειάζεσαι..!!
Ο, τι χρειάζεσαι..!!

Τα υλικά που χρειαζόμαστε για την επίτευξη του στόχου μας περιλαμβάνουν τα ακόλουθα στοιχεία υλικού:

1. BH1715 - Αισθητήρας φωτός περιβάλλοντος

2. Arduino Nano

3. Καλώδιο I2C

4. I2C Shield για Arduino nano

Βήμα 3: Σύνδεση υλικού:

Σύνδεση υλικού
Σύνδεση υλικού
Σύνδεση υλικού
Σύνδεση υλικού

Το τμήμα σύνδεσης υλικού εξηγεί βασικά τις συνδέσεις καλωδίωσης που απαιτούνται μεταξύ του αισθητήρα και του raspberry pi. Η διασφάλιση των σωστών συνδέσεων είναι η βασική ανάγκη ενώ εργάζεστε σε οποιοδήποτε σύστημα για την επιθυμητή έξοδο. Έτσι, οι απαιτούμενες συνδέσεις είναι οι εξής:

Το BH1715 θα λειτουργήσει μέσω I2C. Ακολουθεί το παράδειγμα διαγράμματος καλωδίωσης, που δείχνει πώς συνδέεται κάθε διασύνδεση του αισθητήρα.

Εκτός συσκευασίας, ο πίνακας έχει διαμορφωθεί για διεπαφή I2C, ως εκ τούτου συνιστούμε τη χρήση αυτής της σύνδεσης εάν είστε αλλιώς αγνωστικιστής. Το μόνο που χρειάζεστε είναι τέσσερα καλώδια!

Απαιτούνται μόνο τέσσερις συνδέσεις ακροδέκτες Vcc, Gnd, SCL και SDA και αυτές συνδέονται με τη βοήθεια καλωδίου I2C.

Αυτές οι συνδέσεις φαίνονται στις παραπάνω εικόνες.

Βήμα 4: Μέτρηση έντασης φωτός Κωδικός Arduino:

Κωδικός Arduino μέτρησης έντασης φωτός
Κωδικός Arduino μέτρησης έντασης φωτός
Κωδικός Arduino μέτρησης έντασης φωτός
Κωδικός Arduino μέτρησης έντασης φωτός

Ας ξεκινήσουμε με τον κώδικα Arduino τώρα.

Κατά τη χρήση της μονάδας αισθητήρα με το Arduino, συμπεριλαμβάνουμε τη βιβλιοθήκη Wire.h. Η βιβλιοθήκη "Wire" περιέχει τις λειτουργίες που διευκολύνουν την επικοινωνία i2c μεταξύ του αισθητήρα και της πλακέτας Arduino.

Ολόκληρος ο κωδικός Arduino δίνεται παρακάτω για τη διευκόλυνση του χρήστη:

#περιλαμβάνω

// Η διεύθυνση BH1715 I2C είναι 0x23 (35) #define Addr 0x23 void setup () {// Αρχικοποίηση επικοινωνίας I2C ως MASTER Wire.begin (); // Initialise Serial Communication, set baud rate = 9600 Serial.begin (9600); // Έναρξη I2C Transmission Wire.beginTransmission (Addr); // Αποστολή ισχύος στην εντολή Wire.write (0x01); // Διακοπή I2C Transmission Wire.endTransmission (); // Έναρξη I2C Transmission Wire.beginTransmission (Addr); // Αποστολή εντολής συνεχούς μέτρησης Wire.write (0x10); // Διακοπή I2C Transmission Wire.endTransmission (); καθυστέρηση (300)? } void loop () {unsigned int data [2]; // Αίτημα 2 byte δεδομένων Wire.requestFrom (Addr, 2); // Διαβάστε 2 byte δεδομένων // ALS msb, ALS lsb if (Wire.available () == 2) {data [0] = Wire.read (); δεδομένα [1] = Wire.read (); } καθυστέρηση (300); // μετατρέψτε τη φωτεινότητα float δεδομένων = ((δεδομένα [0] * 256) + δεδομένα [1]) /1,20; // Έξοδος δεδομένων σε σειριακή οθόνη Serial.print ("Φωτεινότητα περιβάλλοντος φωτός:"); Serial.print (φωτεινότητα); Serial.println ("lux"); }

Το ακόλουθο μέρος του κώδικα ξεκινά την επικοινωνία i2c και τη σειριακή επικοινωνία με τη βοήθεια των λειτουργιών Wire.begin () και Serial.begin ().

// Αρχικοποίηση επικοινωνίας I2C ως MASTER

Wire.begin (); // Initialise Serial Communication, set baud rate = 9600 Serial.begin (9600); // Έναρξη I2C Transmission Wire.beginTransmission (Addr); // Αποστολή ισχύος στην εντολή Wire.write (0x01); // Διακοπή I2C Transmission Wire.endTransmission (); // Έναρξη I2C Transmission Wire.beginTransmission (Addr); // Αποστολή εντολής συνεχούς μέτρησης Wire.write (0x10); // Διακοπή I2C Transmission Wire.endTransmission (); καθυστέρηση (300)?

Η ένταση του φωτός μετράται στην ακόλουθη ενότητα του κώδικα.

ανυπόγραφα δεδομένα int [2];

// Αίτημα 2 byte δεδομένων Wire.requestFrom (Addr, 2); // Διαβάστε 2 byte δεδομένων // ALS msb, ALS lsb if (Wire.available () == 2) {data [0] = Wire.read (); δεδομένα [1] = Wire.read (); } καθυστέρηση (300); // μετατρέψτε τη φωτεινότητα float δεδομένων = ((δεδομένα [0] * 256) + δεδομένα [1]) /1,20; // Έξοδος δεδομένων σε σειριακή οθόνη Serial.print ("Φωτεινότητα περιβάλλοντος φωτός:"); Serial.print (φωτεινότητα); Serial.println ("lux");

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

Βήμα 5: Εφαρμογές:

Εφαρμογές
Εφαρμογές

Το BH1715 είναι ένας ψηφιακός αισθητήρας φωτισμού περιβάλλοντος εξόδου που μπορεί να ενσωματωθεί σε κινητό τηλέφωνο, τηλεόραση LCD, ΣΗΜΕΙΩΣΗ Η / Υ κ.λπ. Μπορεί επίσης να χρησιμοποιηθεί σε φορητή μηχανή παιχνιδιών, ψηφιακή φωτογραφική μηχανή, ψηφιακή βιντεοκάμερα, PDA, οθόνη LCD και πολλές άλλες συσκευές που απαιτούν αποτελεσματικές εφαρμογές ανίχνευσης φωτός.

Συνιστάται: