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

Οθόνη LCD 5V με Arduino Due 3.3V I2C: 5 βήματα
Οθόνη LCD 5V με Arduino Due 3.3V I2C: 5 βήματα

Βίντεο: Οθόνη LCD 5V με Arduino Due 3.3V I2C: 5 βήματα

Βίντεο: Οθόνη LCD 5V με Arduino Due 3.3V I2C: 5 βήματα
Βίντεο: Output DC or AC Voltage using MCP4725 DAC with LCD and PWM to Voltage Converter with Arduino 2024, Ιούλιος
Anonim
Οθόνη LCD 5V με Arduino Due 3.3V I2C
Οθόνη LCD 5V με Arduino Due 3.3V I2C

Αυτή η ανάρτηση στοχεύει να εξηγήσει έναν ευκολότερο τρόπο χρήσης του 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: Τελικές σκέψεις

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

Εάν έχετε οποιεσδήποτε ιδέες βελτίωσης, καλύτερες εξηγήσεις, νέες λύσεις ή εντοπίσετε κάποιο λάθος στην ανάρτηση, πείτε μου στα σχόλια!:)

Συνιστάται: