
Πίνακας περιεχομένων:
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-23 14:39

Αυτή η ανάρτηση στοχεύει να εξηγήσει έναν ευκολότερο τρόπο χρήσης του Arduino Due (ή άλλου πίνακα 3.3V) με τη δημοφιλή οθόνη LCD 16x2 με τη μονάδα προσαρμογέα I2C.
Το αρχικό πρόβλημα είναι ότι η οθόνη LCD χρειάζεται 5V για να λειτουργήσει σωστά ο οπίσθιος φωτισμός της, αλλά οι ακίδες SCL και SDA πρέπει να λειτουργούν στα 3.3V για να επικοινωνούν με το Arduino Due χωρίς να προκαλούν ζημιά. Για να το λύσω αυτό, βρήκα δύο επιλογές:
Η πιο αναφερόμενη λύση είναι να χρησιμοποιήσετε έναν Μετατροπέα Επιπέδου Λογικής Διεύθυνσης, ο οποίος πράγματι λύνει το πρόβλημα. Αλλά προσθέτει επίσης ένα άλλο στοιχείο στη λίστα σας και πρόσθετες συνδέσεις καλωδίωσης στο κύκλωμά σας
Ο άλλος τρόπος που βρήκα είναι να ξεκολλήσω απλά 2 αντιστάσεις έλξης στο "σακίδιο προσαρμογέα I2C" από την οθόνη LCD. Εκτός από πολύ πιο εύκολο, έχει άλλα πλεονεκτήματα που εξηγούνται στη σύγκριση στο τέλος. Αυτή η μέθοδος είναι ο κύριος στόχος αυτής της ανάρτησης
Προμήθειες
Arduino Due
Οθόνη LCD 16x2 με τη μονάδα προσαρμογέα I2C
Συγκολλητικό σίδερο
Αντλία συγκόλλησης ή φυτίλι συγκόλλησης
Τσιμπιδακι ΦΡΥΔΙΩΝ
Βήμα 1: Προέλευση της λύσης
Η λύση δεν εφευρέθηκε από εμένα, είδα μια αρκετά καλή πρόταση και εξήγηση στο Arduino Forum στον παρακάτω σύνδεσμο, την οποία θα αναπαράγω σε αυτήν την ανάρτηση.
forum.arduino.cc/index.php?topic=553725.0
Απάντηση από: david_prentice
Δεν βρήκα κανένα πλήρες σεμινάριο στο διαδίκτυο και, επειδή είναι ένα πολύ συνηθισμένο πρόβλημα, προσπαθώ να παρουσιάσω τη λύση εδώ λεπτομερώς, να δω ότι λειτουργεί πραγματικά και να προσθέσω πληροφορίες που θα μπορούσαν να μετριάσουν κάποιο σκεπτικισμό σχετικά με τα αποτελέσματά του.
Βήμα 2: Επεξήγηση
συσκευές
Για να λειτουργήσει η επικοινωνία I2C, απαιτούνται αντιστάσεις έλξης συνδεδεμένες με τις καρφίτσες SDA και SCL. Αυτό συμβαίνει επειδή οι συσκευές γυρίζουν αυτές τις ακίδες μόνο ΧΑΜΗΛΑ κατά την επικοινωνία. Για να αντιπροσωπεύσει ένα Υ HIGHΗΛΟ, δεν χρειάζεται παρά να στείλει ένα ΧΑΜΗΛΟ, και χάρη στα τραβήγματα πηγαίνει στο ΥΗΛΟ. (αυτή η κατανόηση θα είναι πολύ σημαντική αργότερα)
Η οθόνη LCD "I2C backpack" διαθέτει δύο 4K7 pull-up αντιστάσεις που εξυπηρετούν την απαίτηση I2C. Αλλά επειδή είναι συνδεδεμένα με Vcc, εάν χρησιμοποιείτε 5 V, θα τραβήξουν το SDA και το SCL στα 5 V.
Αν κοιτάξετε το φύλλο δεδομένων, μπορείτε να δείτε ότι, σε αντίθεση με άλλους πίνακες, το Due έχει ήδη ενσωματωμένες αντιστάσεις έλξης 1K5 στους κύριους ακροδέκτες του SDA, SCL, που τους τραβούν σε 3,3 V.
Δοκιμές
- Οθόνη LCD -> Arduino
- Gnd -> Gnd
- Vcc -> 5V
- SDA -> SDA
- SCL -> SCL
Εάν απλώς συνδέσετε την οθόνη LCD στο δέσιμο (ακολουθώντας την παραπάνω καλωδίωση), τα τραβήγματα 1k5 (ή 1k0) Due που συνδέονται σε 3,3V και τα τραβήγματα LCD 4K7 που συνδέονται με τα 5 V θα έχουν ως αποτέλεσμα αδρανείς γραμμές I2C στα 3,7 V (3,6 V με 1k0). Αυτό δεν είναι καλό, δεδομένου ότι το φύλλο δεδομένων Due ορίζει μέγιστη τάση 3,6 V για τις γραμμές εισόδου/εξόδου.
Δοκιμάζοντας αυτό το σενάριο, μόνο με την οθόνη LCD, πήρα 3, 56 V. Προσθέτοντας μια μονάδα EEPROM στο ίδιο SDA και SCL, ανέβηκε στα 3,606 V. Και στις δύο περιπτώσεις όλα λειτουργούσαν κανονικά, αλλά αυτά απέχουν πολύ από την ιδανική τάση επίπεδα λαμβάνοντας υπόψη το καθορισμένο μέγιστο 3,6 V.
Οπότε ναι, υπάρχει πιθανότητα να λειτουργήσει ακριβώς όπως το δικό μου ενώ δεν έκανε καμία αλλαγή. Αλλά το επίπεδο τάσης είναι ακόμα πολύ μακριά από το ιδανικό και κάποια ασυμφωνία στην έλξη λόγω ή LCD μπορεί να το κάνει να ξεπεράσει το όριο των 3,6 V. (Θα ήταν σκόπιμο να δοκιμάσετε τουλάχιστον πριν προσεκτικά με ένα ποτενσιόμετρο 20K ή 100K ποια είναι η χαμηλότερη αντίσταση μεταξύ των ακίδων 5 V και SCL/SDA πριν φτάσουν στα 3,6 V, αν και το υπόλοιπο διάλυμα είναι πολύ ασφαλέστερο και πιθανώς ευκολότερο)
Λύση
Η λύση που παρουσιάζεται είναι να αφαιρέσετε απλώς τις αντιστάσεις έλξης από το σακίδιο LCD, οι οποίες προσπαθούν να τραβήξουν τη γραμμή έως και 5 V. Στη συνέχεια, θα παραμείνουν μόνο οι αντιστασιακές αντιστάσεις έλξης, τραβώντας τις γραμμές SCL και SDA στα 3,3V Το Λειτούργησε τέλεια, διατηρώντας τις καρφίτσες ρελαντί περίπου στα 3,262 V!
Οι συνδέσεις παραμένουν οι ίδιες:
- Οθόνη LCD -> Arduino
- Gnd -> Gnd
- Vcc -> 5V
- SDA -> SDA
- SCL -> SCL
Αν αναρωτιέστε εάν η οθόνη LCD δεν θα τραβήξει τη γραμμή στα 5 V για να αντιπροσωπεύει Υ HIGHΗΛΟ κατά την επικοινωνία, θυμηθείτε ότι στο I2C οι συσκευές τραβούν μόνο τις γραμμές ΧΑΜΗΛΑ, καθώς είναι το σήμα Υ HIGHΗΛΟΥ που αναπαρίσταται όταν δεν παρεμβαίνει, το οποίο θα είναι το 3,3 V από οι αναρτήσεις του Due είναι επί του σκάφους.
Επίσης, το 3,3 V είναι αρκετό για να θεωρηθεί το σακίδιο I2C ως σήμα HIGH.
Βήμα 3: Προσδιορίστε και αφαιρέστε τις αντιστάσεις


Η παραπάνω εικόνα δείχνει με κόκκινο χρώμα τις αντιστάσεις έλξης που βρήκα στη μονάδα μου.
Αναγνωρίζω
Καθώς το σακίδιο προσαρμογέα LCD I2C μπορεί να διαφέρει, οι αντιστάσεις μπορεί να μην έχουν την ίδια διαμόρφωση. Για να προσδιορίσετε τις αντιστάσεις έλξης, μπορείτε να χρησιμοποιήσετε ένα πολύμετρο με δοκιμή συνέχειας. Κάθε αντίσταση έλξης πρέπει να έχει το ένα άκρο συνδεδεμένο με τον πείρο SCL ή SDA και το άλλο άκρο με Vcc.
Στην περίπτωσή μου, υπήρχαν τρεις από τις αντιστάσεις 4K7 (472 σε κωδικό SMD) στον πίνακα. Μόνο δύο από αυτούς ικανοποίησαν τις παραπάνω απαιτήσεις, επισημαίνοντας ότι αυτά είναι τα pullups που ψάχναμε!
Για πρόσθετη προφύλαξη (αν για κάποιο λόγο δεν ήταν 4K7), δοκίμασα επίσης τις άλλες αντιστάσεις και επιβεβαίωσα ότι καμία από αυτές δεν πληροί τις απαιτήσεις για έλξη.
Αφαιρώ
Τώρα, το μόνο που έχετε να κάνετε είναι να τα ξεκολλήσετε! Είναι ευκολότερο αν έχετε αντλία συγκόλλησης ή φυτίλι συγκόλλησης και τσιμπιδάκια για βοήθεια.
Βήμα 4: Σύγκριση μεταξύ λύσεων
Μετατροπέας επιπέδου λογικής διπλής κατεύθυνσης (LLC)
Πλεονεκτήματα:
Δεν απαιτεί εξοπλισμό ή ικανότητα συγκόλλησης
Μειονεκτήματα:
Διαφημίζει περισσότερα καλώδια και το LLC στη λίστα στοιχείων της λίστας σας
Μεγαλύτερες συνδέσεις με τα επιπλέον εξαρτήματα
Λίγο πιο ακριβό
Αποσυγκολλήστε τις αντιστάσεις έλξης LCD
Πλεονεκτήματα:
Καθαρότερο τελικό αποτέλεσμα
Πιθανότατα μπορείτε να το κάνετε αμέσως, χωρίς να χρειάζεται να περιμένετε για την LLC
Ιδιαίτερα καλό εάν θέλετε να μειώσετε την ποικιλία των εξαρτημάτων και την πολυπλοκότητα συναρμολόγησης σε ένα πολύπλοκο έργο ή που θέλετε να αναπαράγετε
Μειονεκτήματα:
Αλλάζει το κύκλωμα LCD (Εάν θέλετε να είναι "έτοιμο για χρήση" με το Uno, έχοντας ήδη τα τραβήγματα 4K7, μπορείτε να αναιρέσετε τις αλλαγές που τα μεταπωλούν)
Βήμα 5: Τελικές σκέψεις
Ελπίζω ότι αυτό το σεμινάριο ρίχνει λίγο φως σε αυτό το ζήτημα συμβατότητας και μερικές από τις πιθανές λύσεις του.
Εάν έχετε οποιεσδήποτε ιδέες βελτίωσης, καλύτερες εξηγήσεις, νέες λύσεις ή εντοπίσετε κάποιο λάθος στην ανάρτηση, πείτε μου στα σχόλια!:)
Συνιστάται:
Οθόνη θερμοκρασίας με οθόνη LCD DHT11 και I2C 20x4: 6 βήματα

Παρακολούθηση θερμοκρασίας με DHT11 και I2C 20x4 LCD: Σε αυτό το σεμινάριο θα μάθουμε πώς να φτιάχνουμε μια απλή οθόνη θερμοκρασίας χρησιμοποιώντας έναν αισθητήρα DHT11 και I2C LCDΔείτε το βίντεο
Οθόνη LCD I2C / IIC - Χρήση LCD SPI στην οθόνη LCD I2C Χρήση μονάδας SPI σε IIC με Arduino: 5 βήματα

Οθόνη LCD I2C / IIC | Χρησιμοποιήστε μια οθόνη SPI στην οθόνη I2C LCD χρησιμοποιώντας μονάδα SPI σε IIC με Arduino: Γεια σας παιδιά, καθώς ένα κανονικό SPI LCD 1602 έχει πάρα πολλά καλώδια για να συνδεθεί, οπότε είναι πολύ δύσκολο να το διασυνδέσετε με το arduino, αλλά υπάρχει μια μονάδα διαθέσιμη στην αγορά που μπορεί μετατρέψτε την οθόνη SPI σε οθόνη IIC, οπότε πρέπει να συνδέσετε μόνο 4 καλώδια
Οθόνη LCD I2C / IIC - Μετατρέψτε μια οθόνη SPI LCD στην οθόνη LCD I2C: 5 βήματα

Οθόνη LCD I2C / IIC | Μετατρέψτε ένα SPI LCD σε οθόνη I2C LCD: η χρήση της οθόνης spi LCD χρειάζεται πάρα πολλές συνδέσεις για να γίνει κάτι που είναι πραγματικά δύσκολο να το κάνω, έτσι βρήκα μια μονάδα που μπορεί να μετατρέψει το i2c LCD σε spi LCD οπότε ας ξεκινήσουμε
Οθόνη θερμοκρασίας και επιπέδου φωτός με οθόνη στην οθόνη NOKIA 5110: 4 βήματα

Οθόνη θερμοκρασίας και φωτός με οθόνη στην οθόνη NOKIA 5110: Γεια σε όλους! Σε αυτήν την ενότητα κατασκευάζουμε απλή ηλεκτρονική συσκευή για την παρακολούθηση της θερμοκρασίας και του επιπέδου φωτός. Οι μετρήσεις αυτών των παραμέτρων εμφανίζονται στην οθόνη LCD NOKIA 5110. Η συσκευή βασίζεται στον μικροελεγκτή AVR ATMEGA328P. Η παρακολούθηση
Πώς να φτιάξετε ρολόι σε πραγματικό χρόνο χρησιμοποιώντας οθόνη Arduino και TFT - Arduino Mega RTC με οθόνη TFT 3,5 ιντσών: 4 βήματα

Πώς να φτιάξετε ρολόι σε πραγματικό χρόνο χρησιμοποιώντας οθόνη Arduino και TFT | Arduino Mega RTC με οθόνη TFT 3,5 ιντσών: Επισκεφτείτε το κανάλι μου στο Youtube. Εισαγωγή:- Σε αυτήν την ανάρτηση πρόκειται να φτιάξω "Ρολόι πραγματικού χρόνου" χρησιμοποιώντας οθόνη αφής TFT 3,5 ιντσών, Arduino Mega Ενότητα 2560 και DS3231 RTC…. Πριν ξεκινήσετε… ελέγξτε το βίντεο από το κανάλι μου στο YouTube..Σημείωση:- Εάν χρησιμοποιείτε Arduin