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

Παρουσίαση του I2C με μονάδες Zio και Qwiic: 6 βήματα
Παρουσίαση του I2C με μονάδες Zio και Qwiic: 6 βήματα

Βίντεο: Παρουσίαση του I2C με μονάδες Zio και Qwiic: 6 βήματα

Βίντεο: Παρουσίαση του I2C με μονάδες Zio και Qwiic: 6 βήματα
Βίντεο: How to use LCD LCD1602 with I2C module for Arduino - Robojax 2024, Ιούλιος
Anonim
Παρουσίαση του I2C με μονάδες Zio και Qwiic
Παρουσίαση του I2C με μονάδες Zio και Qwiic

Ο Robin Sharma δήλωσε: «Οι μικρές καθημερινές βελτιώσεις με την πάροδο του χρόνου οδηγούν σε εκπληκτικά αποτελέσματα». Mightσως να σκέφτεστε: «Ω, άλλη ανάρτηση I2C;». Λοιπόν, υπάρχουν σίγουρα χιλιάδες πληροφορίες όταν πρόκειται για I2C. Αλλά μείνετε συντονισμένοι, αυτό δεν είναι μόνο ένα άλλο άρθρο I2C. Οι Qwiic Connect System και οι περιφερειακοί πίνακες Zio είναι σίγουρα εναλλάκτες παιχνιδιών I²C!

Εισαγωγή

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

Επιπλέον, εάν έχετε πολλά έργα σε εξέλιξη, αφιερώνετε ένα σωρό χρόνο για να αλλάξετε καλώδια από έργο σε έργο.

Είμαστε κατασκευαστές, οπότε καταλαβαίνουμε τον αγώνα. Η πιο πρόσφατη συμβολή μας στην κοινότητα OHS είναι ένα αρθρωτό σύστημα πρωτοτύπων που ονομάζεται ZIO, υιοθετώντας σύστημα σύνδεσης Qwiic. Το Qwiic είναι ένας πολύ βολικός τρόπος για την επικοινωνία μιας προγραμματιζόμενης πλακέτας κυκλωμάτων σε αισθητήρες, ενεργοποιητές και σανίδες διαρροής μέσω I²C.

Βήμα 1: Τι είναι το I²C και γιατί μας αρέσει

Τι είναι το I²C και γιατί μας αρέσει
Τι είναι το I²C και γιατί μας αρέσει

Το I²C είναι ο πιο διαδεδομένος πολυ-κύριος δίαυλος, πράγμα που σημαίνει ότι διάφορα τσιπ μπορούν να συνδεθούν στον ίδιο δίαυλο. Χρησιμοποιείται σε πολλές εφαρμογές μεταξύ κύριων και υποτελών ή πολλαπλών συσκευών κύριων και υποτελών. Από μικροελεγκτές, έως smartphone, έως βιομηχανικές εφαρμογές, ειδικά για συσκευές βίντεο όπως οθόνες υπολογιστών. Μπορεί να εφαρμοστεί εύκολα σε πολλά ηλεκτρονικά σχέδια (και πρόσφατα ακόμη ευκολότερα με την υποδοχή Qwiic).

Αν έπρεπε να περιγράψουμε το I²C με δύο λέξεις, πιθανότατα θα χρησιμοποιούσαμε απλότητα και ευελιξία.

Ένα από τα μεγαλύτερα πλεονεκτήματα του I²C έναντι άλλων πρωτοκόλλων επικοινωνίας είναι ότι είναι μια διεπαφή δύο καλωδίων που σημαίνει ότι χρειάζεται μόνο δύο καλώδια σήματος, SDA (Serial Data Line) και SCL (Serial Clock Line). Μπορεί να μην είναι το γρηγορότερο πρωτόκολλο, αλλά είναι γνωστό ότι είναι πολύ ευέλικτο, επιτρέποντας ευελιξία στην τάση διαύλου.

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

Βήμα 2: Ας ρίξουμε μια πιο προσεκτική ματιά

Ας ρίξουμε μια πιο προσεκτική ματιά
Ας ρίξουμε μια πιο προσεκτική ματιά
Ας ρίξουμε μια πιο προσεκτική ματιά
Ας ρίξουμε μια πιο προσεκτική ματιά
Ας ρίξουμε μια πιο προσεκτική ματιά
Ας ρίξουμε μια πιο προσεκτική ματιά
Ας ρίξουμε μια πιο προσεκτική ματιά
Ας ρίξουμε μια πιο προσεκτική ματιά

Λοιπόν, πώς λειτουργεί το I²C; Νωρίτερα αναφέραμε ότι ένα από τα πιο σημαντικά χαρακτηριστικά είναι το επίδομα τάσης, αυτό είναι δυνατό καθώς το I²C χρησιμοποιεί ανοικτό συλλέκτη (γνωστό και ως ανοιχτή αποστράγγιση) τόσο για τις γραμμές επικοινωνίας SDA όσο και για τις SCL.

Το SCL είναι το σήμα του ρολογιού, συγχρονίζει τη μεταφορά δεδομένων μεταξύ των συσκευών στο δίαυλο I²C και δημιουργείται από τον κύριο. Ενώ το SDA μεταφέρει τα δεδομένα για αποστολή ή λήψη από τους αισθητήρες ή άλλες συσκευές που είναι συνδεδεμένες στο δίαυλο.

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

Με τις μονάδες ZIO σας καλύψαμε, όλοι οι πίνακες διαρροής μας ενσωματώνουν την απαραίτητη αντίσταση έλξης.

Το I²C ακολουθεί ένα πρωτόκολλο μηνυμάτων για να επικοινωνήσει τον κύριο με τις υποτελείς συσκευές. Οι δύο γραμμές (SCL και SDA) είναι κοινές σε όλους τους σκλάβους I²C, όλοι οι σκλάβοι στο δίαυλο ακούνε το μήνυμα.

Το πρωτόκολλο μηνύματος ακολουθεί τη μορφή που εμφανίζεται στην επισυναπτόμενη εικόνα:

Μπορεί να φαίνεται περίπλοκο με την πρώτη ματιά, αλλά έχουμε λίγα καλά νέα. Όταν χρησιμοποιείτε το Arduino IDE υπάρχει η βιβλιοθήκη Wire.h, για να απλοποιήσετε όλες τις ρυθμίσεις για το πρωτόκολλο μηνυμάτων I²C.

Η συνθήκη εκκίνησης δημιουργείται όταν η γραμμή δεδομένων (SDA) πέσει χαμηλά ενώ η γραμμή ρολογιού (SCL) εξακολουθεί να είναι υψηλή. Κατά τη δημιουργία ενός έργου στη διεπαφή Arduino δεν χρειάζεται να ανησυχούμε για τη δημιουργία της συνθήκης έναρξης, θα ξεκινήσει με μια συγκεκριμένη λειτουργία (Wire.beginTransmission (slaveAddress)).

Επιπλέον, αυτή η λειτουργία ξεκινά επίσης τη μετάδοση με τη συγκεκριμένη διεύθυνση slave. Για να επιλέξει τον σκλάβο που θα επικοινωνήσει στο κοινόχρηστο λεωφορείο, ο κύριος προχωρά στη μετάδοση της διεύθυνσης στον σκλάβο για επικοινωνία. Αφού η διεύθυνση ρυθμιστεί ώστε να επικοινωνεί με την αντίστοιχη υποτελή, ακολουθεί το μήνυμα με ένα bit ανάγνωσης ή εγγραφής, ανάλογα με τον επιλεγμένο τρόπο λειτουργίας.

Το salve δίνει μια απάντηση με επιβεβαίωση (ACK ή NACK), και άλλες συσκευές slave στο δίαυλο μειώνουν τα υπόλοιπα δεδομένα έως ότου ολοκληρωθεί το μήνυμα και ο δίαυλος είναι δωρεάν. Μετά το ACK, μια ακολουθία εσωτερικού καταχωρητή διευθύνσεων των υποτελών συνεχίζει τη μετάδοση.

Όταν αποστέλλονται τα δεδομένα, το μήνυμα μεταφοράς τελειώνει με συνθήκη διακοπής. Για να τερματιστεί η μετάδοση, η γραμμή δεδομένων αλλάζει σε υψηλή και η γραμμή ρολογιού παραμένει υψηλή.

Βήμα 3: I²C και ZIO

I²C και ZIO
I²C και ZIO

Καταλήξαμε ότι θα ήταν καλύτερο να σχεδιάσω όλες τις παραπάνω πληροφορίες σε μια συνομιλία μεταξύ ενός πλοιάρχου (γνωστού και ως Zuino, του μικροϋπολογιστή μας) και των σκλάβων (γνωστών σανίδων διάσπασης ZIO).

Σε αυτό το βασικό παράδειγμα χρησιμοποιούμε τον αισθητήρα απόστασης ZIO TOF και την οθόνη ZIO OLED. Το TOF δίνει τις πληροφορίες απόστασης ενώ το ZIO Oled εμφανίζει τα δεδομένα. Τα εξαρτήματα και οι συσκευές που χρησιμοποιούνται:

  • ZUINO M UNO - ο Δάσκαλος
  • Οθόνη ZIO OLED - Slave_01
  • Αισθητήρας απόστασης ZIO TOF - Slave_02
  • Καλώδιο Qwiic - Εύκολη σύνδεση για συσκευές I²C

Εδώ είναι πόσο εύκολο είναι να συνδέσετε τις σανίδες μεταξύ τους χρησιμοποιώντας το Qwiic, δεν χρειάζεται ψωμί, επιπλέον καλώδια που έχουν τοποθετηθεί ή ακίδες ZUINO. Η σειριακή σειρά ρολογιού και δεδομένων του ZUINO συνδέεται αυτόματα με τον αισθητήρα απόστασης και το OLED χρησιμοποιώντας τον σύνδεσμο Qwiic. Τα άλλα δύο καλώδια είναι τα 3V3 και GND.

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

Συσκευή: Αισθητήρας απόστασης ZIO

  • Αριθμός ανταλλακτικού: RFD77402
  • Διεύθυνση I2C: 0x4C
  • Σύνδεσμος φύλλου δεδομένων

Συσκευή: Οθόνη ZIO OLED

  • Αριθμός ανταλλακτικού: SSD1306
  • Διεύθυνση: 0x3C
  • Σύνδεσμος φύλλου δεδομένων

Για να βρείτε τη μοναδική διεύθυνση για τις υποτελείς συσκευές, ανοίξτε το φύλλο δεδομένων που παρέχεται. Για τον αισθητήρα απόστασης η διεύθυνση παρέχεται στην ενότητα Διασύνδεση μονάδας. Κάθε αισθητήρας ή στοιχείο έχει διαφορετικό φύλλο δεδομένων με διαφορετικές πληροφορίες. Μερικές φορές μπορεί να είναι δύσκολο να το βρείτε σε ένα φύλλο δεδομένων 30 σελίδων (υπόδειξη: ανοίξτε το εργαλείο εύρεσης στο πρόγραμμα προβολής PDF και πληκτρολογήστε "διεύθυνση" ή "αναγνωριστικό συσκευής" για μια γρήγορη αναζήτηση).

Τώρα που είναι γνωστή η μοναδική διεύθυνση για κάθε συσκευή, για ανάγνωση/ εγγραφή δεδομένων, πρέπει να προσδιοριστεί η διεύθυνση εσωτερικού καταχωρητή (επίσης από το φύλλο δεδομένων). Ρίχνοντας μια ματιά στο φύλλο δεδομένων του αισθητήρα ZIO Distance, η διεύθυνση για να λάβετε την απόσταση αντιστοιχεί σε 0x7FF.

Σε αυτή τη συγκεκριμένη περίπτωση, πραγματικά δεν χρειαζόμαστε αυτές τις πληροφορίες για τη χρήση του αισθητήρα, όπως το κάνει ήδη η βιβλιοθήκη.

Επόμενο βήμα, παραδώστε τον κωδικό. Το ZUINO M UNO είναι συμβατό με το Arduino IDE, γεγονός που κάνει τη ρύθμιση πολύ πιο εύκολη. Οι βιβλιοθήκες που απαιτούνται για αυτό το έργο είναι οι ακόλουθες:

  • Wire.h
  • Adafruit_GFX.h
  • Adafruit_SSD1306.h
  • SparkFun_RFD77402_Arduino_Library.h

Το Wire.h είναι μια βιβλιοθήκη arduino, οι δύο βιβλιοθήκες Adafruit χρησιμοποιούνται για το OLED και οι τελευταίες χρησιμοποιούνται για τον αισθητήρα απόστασης. Ελέγξτε αυτό το σεμινάριο για τον τρόπο σύνδεσης *.zip βιβλιοθηκών με το Arduino IDE.

Κοιτάζοντας τον κώδικα, πρέπει πρώτα να δηλωθούν οι βιβλιοθήκες καθώς και η διεύθυνση για το OLED.

Στη ρύθμιση () ξεκινά η μετάδοση και εμφανίζεται κείμενο για τη λειτουργία του αισθητήρα απόστασης.

Ο βρόχος () λαμβάνει μετρήσεις στην απόσταση και το OLED την εκτυπώνει.

Ελέγξτε το παράδειγμα πηγαίου κώδικα στο σύνδεσμο github.

Η χρήση και των δύο σανίδων είναι πολύ εύκολη με όλες τις έννοιες. Από την πλευρά του υλικού, ο σύνδεσμος Qwiic κάνει τη ρύθμιση του υλικού ταχύτερη και πολύ λιγότερο βρώμικη από το να έχετε ένα breadboard και καλώδια jumper. Και για το υλικολογισμικό, χρησιμοποιώντας τις αντίστοιχες βιβλιοθήκες για την επικοινωνία I2C, ο αισθητήρας και η οθόνη κάνουν τον κώδικα πολύ πιο απλό.

Βήμα 4: Ποιο είναι το μέγιστο μήκος καλωδίου;

Το μέγιστο μήκος εξαρτάται από τις αντιστάσεις έλξης που χρησιμοποιούνται για SDA και SCL και την χωρητικότητα του καλωδίου. Οι αντιστάσεις καθορίζουν επίσης την ταχύτητα του διαύλου, όσο χαμηλότερη είναι η ταχύτητα διαύλου, τόσο μεγαλύτερο είναι το όριο καλωδίου. Η χωρητικότητα του καλωδίου περιορίζει τον αριθμό των συσκευών στο δίαυλο, καθώς και το μήκος του καλωδίου. Οι τυπικές εφαρμογές περιορίζουν το μήκος του σύρματος στα 2,5-3,5μ (9-12 πόδια), αλλά υπάρχει διακύμανση ανάλογα με το καλώδιο που χρησιμοποιείται. Για αναφορά, το μέγιστο μήκος σε εφαρμογές I2C που χρησιμοποιούν θωρακισμένα καλώδια περιστρεφόμενου ζεύγους 22 AWG είναι περίπου 1 m (3 ft) στα 100 kbaund, 10 m (30 ft) στα 10 kbaud.

Υπάρχουν ορισμένες τοποθεσίες όπως το mogami ή το WolframAlpha που επιτρέπουν την εκτίμηση του μήκους του καλωδίου.

Βήμα 5: Πώς να συνδέσετε πολλές συσκευές στο ίδιο δίαυλο;

Πώς να συνδέσετε πολλές συσκευές στο ίδιο λεωφορείο
Πώς να συνδέσετε πολλές συσκευές στο ίδιο λεωφορείο
Πώς να συνδέσετε πολλές συσκευές στο ίδιο λεωφορείο
Πώς να συνδέσετε πολλές συσκευές στο ίδιο λεωφορείο

Το I2C είναι ένας σειριακός δίαυλος, όπου όλες οι συσκευές είναι συνδεδεμένες σε κοινόχρηστο δίαυλο. Με τον σύνδεσμο Qwiic, οι διαφορετικές σανίδες διαχωρισμού μπορούν να συνδεθούν η μία μετά την άλλη χρησιμοποιώντας την υποδοχή Qwiic. Κάθε πλακέτα έχει τουλάχιστον 2 συνδετήρες Qwiic.

Δημιουργήσαμε διαφορετικούς πίνακες για να λύσουμε μερικούς από τους περιορισμούς Qwiic και I2C. Ο πίνακας προσαρμογέα Zio Qwiic χρησιμοποιείται για σύνδεση μέσω συσκευών Qwiic χωρίς σύνδεση Qwiic, χρησιμοποιώντας αρσενικό καλώδιο κεφαλίδας Qwiic to breadboard. Αυτό το απλό κόλπο δημιουργεί απεριόριστες δυνατότητες.

Για να συνδέσουμε διαφορετικές συσκευές σε δίκτυο λεωφορείων ή δέντρων, καταλήξαμε στο Zio Qwiic Hub.

Τέλος, το Zio Qwiic MUX επιτρέπει τη σύνδεση δύο ή περισσότερων συσκευών που χρησιμοποιούν την ίδια διεύθυνση.

Βήμα 6: Τι είναι ο τερματισμός I2C;

Το I2C απαιτείται για τερματισμό, επομένως η γραμμή είναι ελεύθερη για προσθήκη άλλων συσκευών. Αυτό μπορεί να είναι λίγο μπερδεμένο, καθώς ο όρος τερματισμού χρησιμοποιείται συνήθως για να περιγράψει τις αντιστάσεις έλξης διαύλου (για να παρέχει μια προεπιλεγμένη κατάσταση, σε αυτήν την περίπτωση για την παροχή ρεύματος στο κύκλωμα). Για τους πίνακες Zuino, η τιμή της αντίστασης είναι 4,7kΩ.

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

Για περισσότερες πληροφορίες και δυνατότητες Zio, ελέγξτε τα πιο πρόσφατα προϊόντα Zio. Ο στόχος σε αυτό το άρθρο είναι να εξηγήσει τα βασικά στοιχεία επικοινωνίας I²C και πώς λειτουργεί με το σύνδεσμο Zio και Qwiic. Μείνετε συντονισμένοι για περισσότερες ενημερώσεις.

Συνιστάται: