Πίνακας περιεχομένων:
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-13 06:57
Ο SI7050 είναι ένας ψηφιακός αισθητήρας θερμοκρασίας που λειτουργεί στο πρωτόκολλο επικοινωνίας I2C και προσφέρει υψηλή ακρίβεια σε όλο το εύρος τάσης και θερμοκρασίας λειτουργίας. Αυτή η υψηλή ακρίβεια του αισθητήρα αποδίδεται από τη νέα επεξεργασία σήματος και τον αναλογικό σχεδιασμό. Αυτοί οι αισθητήρες είναι ενσωματωμένοι με μια μνήμη στο τσιπ που αποθηκεύει τα δεδομένα καλλιγραφίας που διευκολύνει τη χρήση τους σε ένα ευρύ φάσμα. Εδώ είναι η επίδειξή του με τον Arduino Nano.
Βήμα 1: Αυτό που χρειάζεστε..
1. Arduino Nano
2. SI7050
3. Καλώδιο I²C
4. I²C Shield για Arduino Nano
Βήμα 2: Σύνδεση:
Πάρτε μια ασπίδα I2C για το Arduino Nano και σπρώξτε την απαλά πάνω από τις ακίδες του Nano.
Στη συνέχεια, συνδέστε το ένα άκρο του καλωδίου I2C στον αισθητήρα SI7050 και το άλλο άκρο στην ασπίδα I2C.
Οι συνδέσεις φαίνονται στην παραπάνω εικόνα.
Βήμα 3: Κωδικός:
Μπορείτε να κατεβάσετε τον κωδικό arduino για το SI7050 από το αποθετήριο github-DCUBE Store.
Εδώ είναι ο σύνδεσμος για το ίδιο:
github.com/DcubeTechVentures/SI7050/blob/master/Arduino/SI7050.ino
Περιλαμβάνουμε τη βιβλιοθήκη Wire.h για τη διευκόλυνση της επικοινωνίας I2c του αισθητήρα με την πλακέτα Arduino.
Μπορείτε επίσης να αντιγράψετε τον κώδικα από εδώ, δίνεται ως εξής:
// Διανέμεται με άδεια ελεύθερης βούλησης.
// Χρησιμοποιήστε το με όποιον τρόπο θέλετε, κερδοφόρο ή δωρεάν, υπό την προϋπόθεση ότι ταιριάζει στις άδειες των σχετικών έργων του.
// SI7050
// Αυτός ο κώδικας έχει σχεδιαστεί για να λειτουργεί με το Mini Module SI7050_I2CS I2C
#περιλαμβάνω
// Η διεύθυνση SI7050 I2C είναι 0x40 (64)
#define Addr 0x40
void setup ()
{
// Αρχικοποίηση επικοινωνίας I2C ως MASTER
Wire.begin ();
// Αρχικοποίηση σειριακής επικοινωνίας, ρυθμισμένος ρυθμός baud = 9600
Serial.begin (9600);
// Έναρξη μετάδοσης I2C
Wire.beginTransmission (Addr);
// Διακοπή μετάδοσης I2C
Wire.endTransmission ();
καθυστέρηση (300)?
}
κενός βρόχος ()
{
ανυπόγραφα δεδομένα int [2];
// Έναρξη μετάδοσης I2C
Wire.beginTransmission (Addr);
// Αποστολή εντολής μέτρησης θερμοκρασίας, NO HOLD MASTER
Wire.write (0xF3);
// Διακοπή μετάδοσης I2C
Wire.endTransmission ();
καθυστέρηση (500)?
// Ζητήστε 2 byte δεδομένων
Wire.requestFrom (Addr, 2)?
// Διαβάστε 2 byte δεδομένων
// temp msb, temp lsb
εάν (Wire.available () == 2)
{
δεδομένα [0] = Wire.read ();
δεδομένα [1] = Wire.read ();
}
// Μετατρέψτε τα δεδομένα
float temp = ((δεδομένα [0] * 256.0) + δεδομένα [1]);
float ctemp = ((175,72 * temp) / 65536,0) - 46,85;
float ftemp = ctemp * 1.8 + 32;
// Έξοδος δεδομένων σε σειριακή οθόνη
Serial.print ("Θερμοκρασία σε Κελσίου:");
Serial.print (ctemp);
Serial.println ("C");
Serial.print ("Θερμοκρασία σε Φαρενάιτ:");
Serial.print (ftemp);
Serial.println ("F");
καθυστέρηση (500)?
}
Βήμα 4: Εφαρμογές:
Το SI7050 μπορεί να ενσωματωθεί σε διάφορα συστήματα, συμπεριλαμβανομένων εξοπλισμών υπολογιστών, φορητών καταναλωτικών συσκευών και ιατρικού εξοπλισμού. Αυτός ο αισθητήρας μπορεί να χρησιμοποιηθεί σε αλυσίδες ψυκτικής αποθήκευσης, παρακολούθηση περιουσιακών στοιχείων καθώς και διάφορα βιομηχανικά συστήματα ελέγχου. Παίζει επίσης κεντρικό ρόλο στην προστασία της μπαταρίας.