Πώς να συνδέσετε την οθόνη OLED I2C στο ARDUINO

Pin
Send
Share
Send

Εισαγωγή: Παρουσιάζοντας την Οθόνη I2C OLED 128 * 64/128 * 32.

Γεια σου Όντας ερασιτέχνης - ένας ενθουσιώδης ηλεκτρονικός, είμαι βέβαιος ότι το μόνο που κάνουμε είναι ηλεκτρονικά παιχνίδια - σπιτικά προϊόντα ή μεγάλα έργα, όλα από την περιέργεια και την τεμπελιά. Η περιέργεια προσπαθεί να καταλάβει και να κατανοήσει το τεράστιο, δεν είναι γνωστό, να καταλάβει πώς λειτουργεί εκεί, τι κάνει, πώς κινείται. Και η τεμπελιά εφευρίσκει, για να καταλήξει σε αυτό, έτσι ώστε να μην σηκωθεί, να μην ταιριάζει, να μην ανυψώνει, να μην είναι βρώμικο ή κάτι άλλο σημαντικό.
Δεδομένου ότι η προβολή πληροφοριών είναι καλύτερη από την κατανόηση του τι πρόκειται να συμβεί στη συσκευή μας ή έχει ήδη συμβεί ή συμβαίνει, σίγουρα θα θέλαμε να λάβουμε αυτές τις πολύ χρήσιμες πληροφορίες από τους μικροελεγκτές, τους αισθητήρες ή άλλες συσκευές μας. Και εγώ, εν πάση περιπτώσει, θέλω να λαμβάνω μηνύματα, όπως ερωτήσεις, προειδοποιήσεις, υπενθυμίσεις, emoticons, αστερίσκους, καρδιές και τα παρόμοια.
Για όσους έχουν παρόμοια επιθυμία, εδώ είναι ένας γρήγορος οδηγός για τη σύνδεση και τον έλεγχο μικρών και ανέξοδων οθονών OLED.
Στη συνέχεια, θα μιλήσουμε για ένα από τα ευρέως διαθέσιμα ραδιοερασιτεχνικά μοντέλα οθονών OLED που ελέγχονται από το τσιπ SSD1306, με μέγεθος οθόνης 0,96 ίντσες και ανάλυση 128 * 64 ή 128 * 32 pixel. Αυτές οι οθόνες είναι ιδανικές για μικρά ερασιτεχνικά ραδιοφωνικά σχέδια και σπιτικά προϊόντα.

Βήμα 1: Βασικές έννοιες


Θα το συνδέσουμε με το Arduino UNO / NANO, καλά, και για να προγραμματίσουμε, αντίστοιχα, θα το συνδέσουμε και μέσω του Arduino.
  • Το OLED είναι μια δίοδος εκπομπής οργανικών φωτεινών σημάτων, δηλ. Μια διάταξη ημιαγωγού κατασκευασμένη από οργανικές ενώσεις, η οποία αρχίζει να εκπέμπει φως όταν διέρχεται από αυτό ένα ηλεκτρικό ρεύμα.
  • Το ARDUINO είναι μια πλατφόρμα για συστήματα κατάρτισης και αυτοματισμού κτιρίων και ρομποτικών συστημάτων.
  • Το ArduinoIDE είναι ένα αναπτυξιακό περιβάλλον. Αυτό είναι ένα δωρεάν εργαλείο προγραμματισμού Arduino.
  • I2C - Διασυνδεδεμένα κυκλώματα, γραμμή επικοινωνίας μεταξύ μικροκυκλωμάτων.
  • Ένα σκίτσο, είναι ένας κώδικας, είναι ένα πρόγραμμα - ορολογία Arduino.

Ακολουθήστε τις οδηγίες για να κατανοήσετε τον τρόπο σωστής σύνδεσης και διαμόρφωσης μιας οθόνης OLED στο Arduino και πώς να εμφανίσετε το δικό σας μήνυμα στην οθόνη του.
Κάνουμε τα πάντα με βήματα.

Βήμα 2: Αξεσουάρ


Θα χρειαστούμε μόνο τέσσερα πράγματα:
  • 1. Η ίδια η οθόνη OLED είναι 0.96 "(μπορεί να αγοραστεί σε Aliexpress ή Ebay, - μακρύ, αλλά φθηνό!).
  • 2. Arduino UNO / Nano (στην ίδια θέση με την οθόνη).
  • 3. Σύνδεση καλωδίων (ibid.).
  • 4. Ένας υπολογιστής ή φορητός υπολογιστής με εγκατεστημένο το ArduinoIDE.

Γενικά, η αγορά ανταλλακτικών για διάφορα έργα σε Aliexpress και Ebay είναι ένα πολύ δροσερό πράγμα, ενώ κάνετε ένα έργο, τμήματα για άλλα είναι ήδη στο δρόμο. Το κύριο πράγμα είναι να μην ξεχάσουμε να δώσουμε μια παραγγελία.

Βήμα 3: Συνδέστε την οθόνη


Η οθόνη ελέγχεται από το τσιπ SSD1306, το οποίο υποστηρίζει πέντε πρωτόκολλα επικοινωνίας και ένα από τα οποία είναι το I2C. Δεδομένα σχετικά με αυτό το πρωτόκολλο μεταδίδονται σε δύο μόνο καλώδια, και τα λιγότερα καλώδια στην περίπτωση, τόσο το καλύτερο, έτσι μας ταιριάζει καλά. Αλλά! Υπάρχουν μονάδες με πρωτόκολλο SPI και ακόμη και μεταγωγή πρωτοκόλλου, οπότε προσέχετε κατά την αγορά αυτής της μονάδας.

Χρησιμοποιημένα συμπεράσματα:
Οθόνη OLED - SCL / SCK (ρολόι) και SDA (δεδομένα), ισχύς "Plus" (VCC) και "Μείον" (GND).

Χρησιμοποιημένα συμπεράσματα:
Arduino UNO - SCL / SCK σε A5 και SSD σε ισχύ Α4, "Plus" (+ 5V) και "Minus" (GND).
Συνδέστε την οθόνη στο Arduino:
  • Vcc - 5V
  • GND - GND
  • SDA - A4
  • SCL - A5

Βήμα 4: Σαρωτής I2C


Κάθε συσκευή στο δίαυλο I2C έχει μια δεκαεξαδική διεύθυνση, δεν μπορείτε να την αλλάξετε, είναι ραμμένη σφιχτά, κάθε υπεύθυνος κατασκευαστής πρέπει να το δηλώσει κάπου στην περίπτωση ή στις οδηγίες. Υπάρχουν μονάδες με διακόπτες και jumper με τις οποίες μπορείτε να αλλάξετε τη διεύθυνση, αλλά ... αν οι συσκευές είναι φθηνές, στην ασχήμια, τότε ο κατασκευαστής δεν μπορεί να κάνει τον κόπο να αντιμετωπίσει μια τέτοια μικροσκοπία, οπότε θα πρέπει να το προσδιορίσετε μόνοι σας.
Συνολικά, μπορούν να χρησιμοποιηθούν έως 127 διευθύνσεις στο δίαυλο - 119 για συσκευές και 8 διευθύνσεις υπηρεσιών. Η επικοινωνία πραγματοποιείται σε αυτές τις διευθύνσεις. Υπάρχει ένας δάσκαλος, είναι Δάσκαλος, αλλά υπάρχει ένας σκλάβος, είναι επίσης ένας Σκλάβος - ρωτούν οι Δάσκαλοι, οι οπαδοί απαντούν, όλα είναι απλά.
Δεδομένου ότι η οθόνη μας OLED χρησιμοποιεί το πρωτόκολλο επικοινωνίας I2C και η διεύθυνση μπορεί να μην αναφέρεται, θα προσπαθήσουμε να μάθουμε αυτή την ίδια τη διεύθυνση.
Αυτό μπορεί να γίνει με τη λήψη ενός σύντομου σκίτσου στον πίνακα Arduino με σύνδεση OLED. ΑΛΛΑ!
Πάρτε το χρόνο σας για να φορτώσετε το σκίτσο στο Arduino αμέσως! Πρώτα κατεβάστε το "πρόγραμμα οδήγησης", δηλ. θα συνδέσουμε τις βιβλιοθήκες και γι 'αυτό θα πάμε κατευθείαν στο "Βήμα 5" και μετά θα επιστρέψουμε και θα συνεχίσουμε.

Βήμα 4: Συνέχεια:


Κατεβάστε CODE Finder_I2C_Hex_Address.ino, μεταφορτώστε το στο Arduino.
Ανοίξτε το "Port Monitor", ρυθμίστε την ταχύτητα σε 9600 και αν όλα είναι συνδεδεμένα σωστά, το πρόγραμμα θα εμφανίσει τη διεύθυνση της συσκευής, στην περίπτωσή μου OLED με τη διεύθυνση 0x3F.

Βήμα 5: Λήψη και σύνδεση βιβλιοθηκών


Για να λειτουργήσουν σωστά τα πάντα και δεν χρειάστηκε να ανακαλύψετε τον τροχό, πρέπει να συνδέσετε μερικές βιβλιοθήκες στο περιβάλλον ArduinoIDE, δηλαδή: ADAFRUIT GFX και ADAFRUIT SSD1306, είναι απαραίτητες για την ανεξάρτητη επικοινωνία της Arduino με την οθόνη OLED.
Μπορείτε να συνδέσετε αυτές τις βιβλιοθήκες ακολουθώντας αυτά τα βήματα.
  • 1. Στο ArduinoIDE, μεταβείτε στο μενού Σκίτσο.
  • 2. Επιλέξτε "Συμπεριλάβετε τις Βιβλιοθήκες" / Συμπεριλάβετε τις Βιβλιοθήκες.
  • 3. Επιλέξτε "Διαχείριση Βιβλιοθηκών" / Διαχειριζόμενες Βιβλιοθήκες.
  • 4. Βρείτε το ADAFRUIT GFX και εγκαταστήστε τα.
  • 5. Βρείτε το ADAFRUIT SSD1306 και εγκαταστήστε τα.

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

Ένας άλλος τρόπος για να εγκαταστήσετε βιβλιοθήκες είναι να βρείτε, να κατεβάσετε και να εγκαταστήσετε αυτές τις βιβλιοθήκες μόνοι σας.
Για παράδειγμα του Github:
//github.com/adafruit/Adafruit-GFX-Library
//github.com/adafruit/Adafruit_SSD1306

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

Βήμα 6: Δοκιμή της οθόνης


Για να ελέγξετε αν όλα λειτουργούν όπως αναμένεται, εκτελέστε το παράδειγμα δοκιμής από το ArduinoIDE.
Για να γίνει αυτό:
Πηγαίνετε ΑΡΧΕΙΟ> ΠΑΡΑΔΕΙΓΜΑΤΑ> SSD 1306> Επιλέξτε 128x64 i2c
Αν εμφανίσετε "Σφάλμα", δοκιμάστε να επιλέξετε το SSD 1306> 128x32 i2c.
Αν υπάρχει ξανά σφάλμα, δοκιμάστε να αλλάξετε τη διεύθυνση I2C στη γραμμή 61 του κώδικα επίδειξης και να την αντικαταστήσετε με τη διεύθυνση της οθόνης που ορίσατε στο βήμα # 4.
Αν το σφάλμα εμφανιστεί ξανά, μπορείτε να δοκιμάσετε να επεξεργαστείτε το αρχείο Adafruit_SSD1306.h, βρίσκεται στο φάκελο με τις βιβλιοθήκες Arduino.

Ανοίξτε το αρχείο Adafruit_SSD1306.h σε ένα πρόγραμμα επεξεργασίας κειμένου και βρείτε τις γραμμές:
// # καθορίστε SSD1306_128_64 #define SSD1306_128_32 // #define SSD1306_96_16

Αποσύνδεση της γραμμής:
#define SSD1306_128_64.

Θα πρέπει να είναι έτσι:
#define SSD1306_128_64 // # καθορίστε SSD1306_128_32 // #define SSD1306_96_16

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

Όταν απολαμβάνετε αυτήν την κινούμενη εικόνα, μπορείτε να προχωρήσετε στο επόμενο βήμα.

Βήμα 7: Γράφοντας το δικό σας μήνυμα


Για να γράψετε το δικό σας μήνυμα, δημιουργήστε πρώτα ένα νέο σκίτσο στο περιβάλλον προγραμματισμού ArduinoIDE.
Στην κεφαλίδα, συνδέουμε 4 βιβλιοθήκες:
#include #include #include #include 

Στη συνέχεια, γράφουμε το πρωτόκολλο επαναφοράς:
#define OLED_RESET 4 εμφάνιση Adafruit_SSD1306 (OLED_RESET);

Στην VOID SETUP, καθορίστε τη δεκαεξαδική διεύθυνση της οθόνης 0x3C, την οποία βρήκαμε στο "Βήμα 4".
Στη συνέχεια, αρχικοποιήστε την οθόνη και διαγράψτε την:
display.begin (SSD1306_SWITCHCAPVCC, 0x3C). display.clearDisplay ();

Στη συνέχεια, στο VOID LOOP, γράφουμε τον κύριο κώδικα, δηλαδή το μήνυμά μας, το οποίο θέλουμε να εμφανίσουμε στην οθόνη.
Για να γίνει αυτό, περιγράφουμε το μέγεθος κειμένου, το χρώμα κειμένου, τη θέση του δρομέα και, τέλος, εμφανίζουμε ένα μήνυμα χρησιμοποιώντας την εντολή println:
display.setTextSize (2). display.setTextColor (ΛΕΥΚΟ); display.setCursor (0,0); display.println ("Λοιπόν!"); display.display ();

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

Εδώ είναι το CODE Starting_with_Arduino_OLED.ino του προγράμματος μας:
code.zip 946 b (λήψεις: 1366)

Pin
Send
Share
Send