Πίνακας περιεχομένων:
- Βήμα 1: Πώς λειτουργεί το I2c
- Βήμα 2:
- Βήμα 3: Χρήση
- Βήμα 4: Διαβάστε την τιμή
- Βήμα 5: Διαβάστε το Vale από το κανάλι
- Βήμα 6: Γράψτε αξία
- Βήμα 7: Πρόσθετες δυνατότητες
- Βήμα 8: Παραδείγματα διαγράμματος σύνδεσης
- Βήμα 9: Ευχαριστώ
Βίντεο: PCF8591 (i2c Analog I/O Expander) Γρήγορη Εύκολη Χρήση: 9 Βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:36
Βιβλιοθήκη για χρήση i2c pcf8591 IC με arduino και esp8266.
Αυτό το IC μπορεί να ελέγξει (έως 4) την αναλογική είσοδο και/ή 1 αναλογική έξοδο, όπως μετρήσει την τάση, να διαβάσει την τιμή του θερμίστορ ή να ξεθωριάσει ένα led.
Μπορεί να διαβάσει αναλογική τιμή και να γράψει αναλογική τιμή μόνο με 2 σύρματα (ιδανικό για ESP-01).
Προσπαθώ να απλοποιήσω τη χρήση αυτού του IC, με ένα ελάχιστο σύνολο λειτουργιών.
Μπορείτε να βρείτε ενημερωμένη έκδοση στον ιστότοπό μου
Βήμα 1: Πώς λειτουργεί το I2c
Το I2C λειτουργεί με δύο καλώδια, το SDA (γραμμή δεδομένων) και το SCL (γραμμή ρολογιού).
Και οι δύο αυτές γραμμές είναι ανοιχτής αποστράγγισης, αλλά ανασύρονται με αντιστάσεις.
Συνήθως υπάρχει ένας κύριος και ένας ή πολλοί σκλάβοι στη γραμμή, αν και μπορεί να υπάρχουν πολλοί κύριοι, αλλά θα το συζητήσουμε αργότερα.
Τόσο οι κύριοι όσο και οι σκλάβοι μπορούν να μεταδώσουν ή να λάβουν δεδομένα, επομένως, μια συσκευή μπορεί να βρίσκεται σε μία από αυτές τις τέσσερις καταστάσεις: κύρια μετάδοση, κύρια λήψη, εκπομπή σκλάβης, λήψη σκλάβου.
Βήμα 2:
Μπορείτε να βρείτε τη βιβλιοθήκη μου εδώ.
Για να κατεβάσετε.
Κάντε κλικ στο κουμπί DOWNLOADS στην επάνω δεξιά γωνία, μετονομάστε τον ασυμπίεστο φάκελο PCF8591.
Βεβαιωθείτε ότι ο φάκελος PCF8591 περιέχει PCF8591.cpp και PCF8591.h.
Τοποθετήστε το φάκελο της βιβλιοθήκης PCF8591 στον / βιβλιοθήκες / φάκελό σας.
Mayσως χρειαστεί να δημιουργήσετε τον υποφάκελο βιβλιοθηκών εάν είναι η πρώτη σας βιβλιοθήκη.
Επανεκκινήστε το IDE.
Βήμα 3: Χρήση
Κατασκευαστής: πρέπει να συμπληρώσετε τη διεύθυνση του i2c (για να ελέγξετε τη διεύθυνση χρησιμοποιήστε αυτόν τον οδηγό I2cScanner)
PCF8591 (διεύθυνση uint8_t);
για το esp8266, αν θέλετε να καθορίσετε το SDA e SCL pin, χρησιμοποιήστε αυτό:
PCF8591 (διεύθυνση uint8_t, uint8_t sda, uint8_t scl);
Βήμα 4: Διαβάστε την τιμή
Το IC όπως βλέπετε στην εικόνα έχει 4 αναλογικές εισόδους και 1 αναλογικές εξόδους.
Έτσι, για να διαβάσετε όλες τις αναλογικές εισόδους σε μία μετάδοση μπορείτε να κάνετε (η τιμή είναι από 0 έως 255):
PCF8591:: AnalogInput ai = pcf8591.analogReadAll ();
Serial.print (ai.ain0); Serial.print (" -"); Serial.print (ai.ain1); Serial.print (" -"); Serial.print (ai.ain2); Serial.print (" -"); Serial.println (ai.ain3);
αν θέλετε να διαβάσετε μία μόνο αναλογική είσοδο ή κανάλι:
int ana = pcf8591.analogRead (AIN0); // διαβάστε αναλογικό 0
Βήμα 5: Διαβάστε το Vale από το κανάλι
Αυτό το IC έχει πολλαπλούς τύπους ανάγνωσης και μπορείτε να χρησιμοποιήσετε αναλογική είσοδο ή αναλογικό κανάλι (όταν χρησιμοποιείτε αναλογική ανάγνωση εισόδου και το κανάλι είναι στις εικόνες).
Για παράδειγμα, για να διαβάσετε την τιμή του καναλιού 0 σε δύο διαφορικές εισόδους, πρέπει να κάνετε:
int ana = pcf8591.analogRead (CHANNEL0, TWO_DIFFERENTIAL_INPUT); // διαβάστε αναλογικό 0
Βήμα 6: Γράψτε αξία
Εάν θέλετε να γράψετε μια αναλογική τιμή, πρέπει να κάνετε (η τιμή είναι από 0 έως 255):
pcf8591.analogWrite (128);
Βήμα 7: Πρόσθετες δυνατότητες
Πρόσθετο χαρακτηριστικό είναι η ανάγνωση τάσης εγγραφής: Για τον υπολογισμό της τάσης πρέπει να περάσετε κάποια παράμετρο:
- microcontrollerReferenceVoltage: λάβετε τάση από τάση μικροελεγκτή (μόνο AVR χωρίς esp8266 για esp 3.3v σταθερό)
- referenceVoltage: if microcontrollerReferenceVoltage false λάβετε αυτήν την τιμήΗ εντολή είναι:
void voltageWrite (float value, bool microcontrollerReferenceVoltage = true, float referenceVoltage = 5.0);
float voltageRead (uint8_t analogPin, bool microcontrollerReferenceVoltage = true, float referenceVoltage = 5.0);
Παραδείγματα είναι:
pcf8591.voltageWrite (2.7); // 2.7Volts έξοδος
καθυστέρηση (3000)?
float ana0V = pcf8591.voltageRead (AIN0); // Τάση ανάγνωσης από αναλογικό 0
Serial.println (ana0V);
Βήμα 8: Παραδείγματα διαγράμματος σύνδεσης
Βήμα 9: Ευχαριστώ
σειρά έργων i2c (Συλλογή):
- Αισθητήρας υγρασίας θερμοκρασίας
- Αναλογικός διαστολέας
- Digitalηφιακός διαστολέας
- Οθόνη LCD
Συνιστάται:
Γρήγορη και εύκολη τοποθέτηση υπολογιστών τοίχου: 8 βήματα
Γρήγορη και εύκολη τοποθέτηση υπολογιστών τοίχου: Εξοικονομήστε έναν τόνο χώρου, εντυπωσιάστε τους φίλους σας! Χρησιμοποιώντας μερικά απλά ξύλινα κομμάτια και ένα φύλλο έγχρωμου πλεξιγκλάς, μπορείτε να τοποθετήσετε τον υπολογιστή σας στον τοίχο γρήγορα
DHT12 (i2c φθηνός αισθητήρας υγρασίας και θερμοκρασίας), γρήγορη εύκολη χρήση: 14 βήματα
DHT12 (i2c Φτηνός αισθητήρας υγρασίας και θερμοκρασίας), γρήγορη εύκολη χρήση: Μπορείτε να βρείτε ενημερώσεις και άλλα στον ιστότοπό μου https://www.mischianti.org/2019/01/01/dht12-library-el/ Μου αρέσει ο αισθητήρας που μπορεί να χρησιμοποιηθεί με 2 καλώδια (πρωτόκολλο i2c), αλλά μου αρέσει το φθηνό. Αυτή είναι μια βιβλιοθήκη Arduino και esp8266 για τη σειρά DHT12 o
Γρήγορη και εύκολη θήκη έργου: 15 βήματα
Γρήγορη και εύκολη υπόθεση έργου: Αυτό το έργο δείχνει πώς να φτιάξετε μια απλή θήκη έργου από υλικά καταστήματος υλικού σε περίπου ένα απόγευμα. Είναι ιδιαίτερα κατάλληλο για έργα που χρειάζονται χειριστήρια ή οθόνες χρηστών. Για αυτό το παράδειγμα, έχτισα μια θήκη για το εκπληκτικό "Wacky soun
Γρήγορη και εύκολη επιδιόρθωση τροφοδοσίας φορητού υπολογιστή: 5 βήματα
Γρήγορη και εύκολη επιδιόρθωση τροφοδοσίας φορητού υπολογιστή: Ιστορικό: Έχω 2 φορητούς υπολογιστές HP στο σπίτι και δυστυχώς, και τα δύο βύσματα τροφοδοσίας που πηγαίνουν στην πρίζα των φορητών υπολογιστών έχουν χαλαρώσει για λίγο. Η αδερφή μου που έχει κουραστεί να προσπαθεί να γυρίσει το φις τροφοδοσίας έτσι ώστε να είναι ο προσαρμογέας AC
Γρήγορη και εύκολη Webcomic: 5 βήματα
Γρήγορη και εύκολη Webcomic: Αυτό είναι ένα σεμινάριο για το πώς να χτυπήσετε μαζί ένα webcomic χρησιμοποιώντας πολύ μικρό καλλιτεχνικό ταλέντο. Αυτή η τεχνική βασίζεται αποκλειστικά στη χρήση ψηφιακών φωτογραφιών και επεξεργαστή γραφικών. Το συγκεκριμένο κόμικ συντάχθηκε σε περίπου μία ώρα. Στην πραγματικότητα χρειάστηκε περισσότερος χρόνος για