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

Ενότητα ελεγκτή Uber I2C LCD: 6 βήματα
Ενότητα ελεγκτή Uber I2C LCD: 6 βήματα

Βίντεο: Ενότητα ελεγκτή Uber I2C LCD: 6 βήματα

Βίντεο: Ενότητα ελεγκτή Uber I2C LCD: 6 βήματα
Βίντεο: LCD1602 I2C Address for Arduino explained 2024, Ιούλιος
Anonim
Μονάδα ελεγκτή Uber I2C LCD
Μονάδα ελεγκτή Uber I2C LCD
Μονάδα ελεγκτή Uber I2C LCD
Μονάδα ελεγκτή Uber I2C LCD
Μονάδα ελεγκτή Uber I2C LCD
Μονάδα ελεγκτή Uber I2C LCD

Προοίμιο

Αυτό το Instructable περιγράφει λεπτομερώς τον τρόπο δημιουργίας μιας μονάδας ελεγκτή με βάση HD44780 LCD (εικόνα 1 παραπάνω). Η ενότητα επιτρέπει στον χρήστη να ελέγχει όλες τις πτυχές της οθόνης LCD μέσω προγραμματισμού μέσω του I2C, που περιλαμβάνει: LCD και οθόνη, αντίθεση και ένταση οπίσθιου φωτισμού. Παρόλο που το Arduino Uno R3 χρησιμοποιήθηκε για το πρωτότυπο, θα λειτουργήσει εξίσου καλά με οποιονδήποτε μικροελεγκτή που υποστηρίζει I2C.

Εισαγωγή

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

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

Από το αρχικό πρωτότυπο (εικόνα 2 παραπάνω) έως το ολοκληρωμένο, πλήρως δοκιμασμένο PCB (εικόνα 1 παραπάνω) χρειάστηκαν συνολικά 5,5 ημέρες.

Τι εξαρτήματα χρειάζομαι; Δείτε τον πίνακα υλικών που επισυνάπτεται παρακάτω

Τι λογισμικό χρειάζομαι;

  • Arduino IDE 1.6.9,
  • Kicad v4.0.7 εάν θέλετε να τροποποιήσετε το PCB. Διαφορετικά, απλώς στείλτε το 'LCD_Controller.zip' στο JLCPCB.

Τι εργαλεία χρειάζομαι;

  • Μικροσκόπιο τουλάχιστον x3 (για συγκόλληση SMT),
  • SMD συγκολλητικό σίδερο (με στυλό υγρής ροής και κόλλα συγκόλλησης ροής),
  • Ισχυρά τσιμπιδάκια (για συγκόλληση SMT),
  • Pιές πένσες (μύτη και μύτη),
  • DMM με ακουστικό έλεγχο συνέχειας.

Τι δεξιότητες χρειάζομαι;

  • Πολυ υπομονη,
  • Μεγάλη χειροτεχνική επιδεξιότητα και εξαιρετικός συντονισμός χεριών/ματιών,
  • Εξαιρετικές δεξιότητες συγκόλλησης.

Θέματα που καλύπτονται

  • Εισαγωγή
  • Επισκόπηση κυκλώματος
  • Κατασκευή PCB
  • Επισκόπηση λογισμικού
  • Δοκιμάζοντας το Σχέδιο
  • συμπέρασμα
  • Χρησιμοποιούνται αναφορές

Βήμα 1: Επισκόπηση κυκλώματος

Επισκόπηση κυκλώματος
Επισκόπηση κυκλώματος

Ένα διάγραμμα πλήρους κυκλώματος όλων των ηλεκτρονικών δίνεται στην εικόνα 1 παραπάνω, μαζί με ένα PDF του ίδιου παρακάτω.

Το κύκλωμα σχεδιάστηκε για να είναι μια ακριβής αντικατάσταση της τυπικής μονάδας ελεγκτή PCF8574A I2C LCD με τις ακόλουθες βελτιώσεις.

  • Συμβατότητα επιλογής χρήστη I2C 3v3 ή 5v,
  • Digitalηφιακός έλεγχος αντίθεσης ή συμβατική ρύθμιση δοχείου,
  • Μεταβλητή επιλογή έντασης οπίσθιου φωτισμού με έλεγχο λειτουργίας τετραγωνικής χαλάρωσης για ομαλό ξεθώριασμα.

Έλεγχος οθόνης LCD

Πρόκειται για τηλεομοιοτυπία της τυπικής μονάδας ελεγκτή I2C LCD που χρησιμοποιεί PCF8574A (IC2) για I2C σε παράλληλη μετατροπή.

Η προεπιλεγμένη διεύθυνση I2C για αυτό είναι 0x3F.

Συμβατότητα 3v3 ή 5v I2C

Για λειτουργία 3v3 ταιριάζουν Q1, Q2 ROpt1, 2, 5 & 6, IC1, C2 και C2.

Εάν απαιτείται λειτουργία 5v τότε μην ταιριάζετε σε κανένα στοιχείο 3v3, αντικαθιστώντας τα με αντιστάσεις 0 Ohm ROpt 3 και 4.

Digitalηφιακή αντίθεση

Ο ψηφιακός έλεγχος αντίθεσης επιτυγχάνεται με τη χρήση ψηφιακού ποτενσιόμετρου U2 MCP4561-103E/MS και C4, R5.

Εάν απαιτείται συμβατικό μηχανικό ποτενσιόμετρο, τότε μπορεί να τοποθετηθεί στο PCB, RV1 10K, αντί για U2, C4 και R5. Δείτε το BoM για συμβατό ποτενσιόμετρο.

Γεφυρώνοντας τον άλτη J6, η διεύθυνση I2C είναι 0x2E. Υποτίθεται ότι για κανονική λειτουργία αυτό είναι γεφυρωμένο.

Μεταβλητή επιλογή έντασης πίσω φωτός

Η μεταβλητή ένταση του οπίσθιου φωτισμού ελέγχεται με διαμόρφωση PWM του οπίσθιου φωτισμού LED LCD μέσω ακίδας U1 6 και ATTiny85. Προκειμένου να διατηρηθεί η πλήρης συμβατότητα με το πρότυπο I2C LCD Controller Module R1, τα T1 R7 και T2 χρησιμοποιούνται για τη διαμόρφωση της ράγας τροφοδοσίας +ve.

Η προεπιλεγμένη διεύθυνση I2C για αυτό είναι 0x08. Αυτό είναι επιλέξιμο από το χρήστη, κατά τη μεταγλώττιση πριν από τον προγραμματισμό του U1.

Βήμα 2: Κατασκευή PCB

Κατασκευή PCB
Κατασκευή PCB
Κατασκευή PCB
Κατασκευή PCB
Κατασκευή PCB
Κατασκευή PCB
Κατασκευή PCB
Κατασκευή PCB

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

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

Το σχηματικό διάγραμμα και η διάταξη PCB αναπτύχθηκαν με τις φωτογραφίες Kicad v4.0.7 2 και 3. Αυτό ολοκληρώθηκε το απόγευμα της Κυριακής και τα εξαρτήματα παραγγέλθηκαν από τον Farnell και το PCB μεταφορτώθηκε στο JLCPCB μέχρι την Κυριακή το βράδυ.

Τα εξαρτήματα έφτασαν από την Farnell την Τετάρτη, ακολουθούμενα από τα PCB από την JLCPCB την Πέμπτη (χρησιμοποίησα την υπηρεσία παράδοσης DHL για να επιταχύνω τα πράγματα) εικόνες 4, 5, 6 & 7.

Μέχρι το βράδυ της Πέμπτης είχαν κατασκευαστεί δύο πίνακες (παραλλαγές 3v3 και 5v) και δοκιμάστηκαν επιτυχώς σε οθόνη LCD 4 επί 20. Φωτογραφίες 8, 9 & 10.

Ένα εκπληκτικό 5,5 ημέρες από την αρχική ιδέα μέχρι την ολοκλήρωση.

Με εκπλήσσει πόσο γρήγορα η JLCPCB είναι σε θέση να παραγγείλει, να κατασκευάσει ένα PCB διπλής όψης PTH και να το στείλει στο Ηνωμένο Βασίλειο. Φουσκάλες 2 ημέρες για την κατασκευή και 2 ημέρες για παράδοση. Αυτό είναι ταχύτερο από τους κατασκευαστές PCB με έδρα το Ηνωμένο Βασίλειο και σε κλάσμα της τιμής.

Βήμα 3: Επισκόπηση λογισμικού

Επισκόπηση λογισμικού
Επισκόπηση λογισμικού
Επισκόπηση λογισμικού
Επισκόπηση λογισμικού

Υπάρχουν τρία βασικά μέρη του λογισμικού που είναι απαραίτητα για τον έλεγχο της μονάδας ελεγκτή LCD I2C.

1. LiquidCrystal_I2C_PCF8574 Βιβλιοθήκη Arduino

Διαθέσιμο εδώ

Για χρήση στο σκίτσο Arduino για τον έλεγχο της οθόνης LCD.

Σημείωση: Αυτό λειτουργεί εξίσου καλά με τον ελεγκτή Generic I2C LCD Module Controller. Μόνο που δίνει δίνει λειτουργικότητα από άλλες βιβλιοθήκες.

2. MCP4561_DIGI_POT Βιβλιοθήκη Arduino

Για χρήση στο σκίτσο σας για προγραμματικό έλεγχο της αντίθεσης LCD

Διαθέσιμο εδώ

3. Προγραμματικός έλεγχος των επιπέδων οπίσθιου φωτισμού LCD χρησιμοποιώντας τη λειτουργία PWM και Quartic διευκόλυνσης για ομαλή εξασθένιση

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

Λεπτομέρειες σχετικά με αυτό το λογισμικό δίνονται σε προηγούμενη Οδηγία 'Smooth PWM LED Fading With the ATTiny85'

Σε αυτήν την περίπτωση, προκειμένου να διατηρηθούν οι τελικές διαστάσεις PCB ίδιες με μια γενική μονάδα ελεγκτή LCD, επιλέχθηκε η παραλλαγή SOIC του ATTiny85. Οι εικόνες 1 και 2 δείχνουν πώς προγραμματίστηκε και δοκιμάστηκε το ATTiny85 SOIC στο πρωτότυπο που δημιουργήθηκε.

Ο κωδικός που ήταν προγραμματισμένος στο ATTiny85 ήταν 'Tiny85_I2C_Slave_PWM_2.ino' διαθέσιμος εδώ

Για λεπτομέρειες σχετικά με τον τρόπο δημιουργίας του δικού σας προγραμματιστή ATTiny85, ανατρέξτε στο παρόν εγχειρίδιο «Προγραμματισμός των ATTiny85, ATTiny84 και ATMega328P: Arduino As ISP»

Βήμα 4: Δοκιμή του σχεδίου

Δοκιμάζοντας το Σχέδιο
Δοκιμάζοντας το Σχέδιο
Δοκιμάζοντας το Σχέδιο
Δοκιμάζοντας το Σχέδιο

Για να δοκιμάσω το σχέδιο, δημιούργησα ένα σκίτσο που ονομάζεται «LCDControllerTest.ino», το οποίο επιτρέπει στον χρήστη να ορίσει οποιαδήποτε συγκεκριμένη παράμετρο LCD για απευθείας σύνδεση σε σειριακή τερματική σύνδεση.

Το σκίτσο βρίσκεται στο αποθετήριο GitHub I2C-LCD-Controller-Module

Η εικόνα 1 παραπάνω δείχνει το πιεστήριο συμβατό με 5v I2C προσαρμοσμένο σε LCD 4 επί 20 και στην εικόνα 2 την προεπιλεγμένη οθόνη κατά την εκτέλεση του κωδικού δοκιμής για πρώτη φορά.

Χρησιμοποιεί τις ακόλουθες προεπιλεγμένες τιμές για οπίσθιο φωτισμό και αντίθεση.

  • #define DISPLAY_BACKLIGHT_LOWER_VALUE_DEFAULT ((χωρίς υπογραφή μακρύ) (10))
  • #define DISPLAY_CONTRAST_VALUE_DEFAULT ((uint8_t) (40))

Βρήκα ότι αυτά λειτουργούσαν καλά με την οθόνη LCD 4 στα 20 που είχα εφεδρική.

Βήμα 5: Συμπέρασμα

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

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

Τα PCB ονομάστηκαν «έργα τέχνης», επειδή ήταν πραγματικά έργα τέχνης. Δημιουργήθηκε δύο φορές σε πλήρες μέγεθος χρησιμοποιώντας κολλητική μαύρη ταινία κρέπας από έναν «ιχνηλάτη» ή έναν φορέα χειροτεχνίας και μειώθηκε φωτογραφικά από το fab fab house για να κάνει τη φωτογραφία να αντέχει στα στένσιλ.

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

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

Ως κατασκευαστής εκείνη την εποχή, το απλό κόστος της αλυσίδας εργαλείων ανάπτυξης λογισμικού ήταν απαγορευτικό, αναγκαστικά αναγκαστήκατε να εισάγετε εξαγωνικές τιμές απευθείας στο EPROM (RAM/Flash αν ήσασταν πολύ τυχεροί) και στη συνέχεια να αφιερώνετε ώρες ερμηνεύοντας την προκύπτουσα συμπεριφορά για να προσδιορίσετε τι ο κωδικός σας λειτουργούσε αν δεν λειτουργούσε όπως αναμενόταν (το bit 'wiggling' ή το serial printf είναι οι πιο δημοφιλείς τεχνικές εντοπισμού σφαλμάτων. Μερικά πράγματα δεν αλλάζουν ποτέ). Συνήθως έπρεπε να γράψετε όλες τις δικές σας βιβλιοθήκες καθώς καμία δεν ήταν διαθέσιμη (σίγουρα δεν υπήρχε πλούσια πηγή όπως το διαδίκτυο).

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

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

Ως επί το πλείστον, το τελικό κύκλωμά σας αναπτύχθηκε χρησιμοποιώντας veroboard για μονιμότητα και τοποθετήθηκε σε ένα απλό περίβλημα ABS για να του δώσει αυτό το «επαγγελματικό άγγιγμα».

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

Κάτι που θα μπορούσατε να έχετε ονειρευτεί μόλις πριν από μια δεκαετία.

Πώς άλλαξαν τα πράγματα προς το καλύτερο.

Βήμα 6: Χρησιμοποιούνται αναφορές

KiCAD Σχηματική σύλληψη και σχεδιασμός PCB

KiCAD EDA

Εργαλείο ανάπτυξης λογισμικού Arduino ORG

Arduino

LiquidCrystal_I2C_PCF8574 Βιβλιοθήκη Arduino

Εδώ

MCP4561_DIGI_POT Βιβλιοθήκη Arduino

Εδώ

Ομαλή φωτεινή ένδειξη PWM LED με το ATTiny85

Εδώ

Προγραμματισμός των ATTiny85, ATTiny84 και ATMega328P: Arduino ως ISP

Συνιστάται: