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

Αποτελεσματικό και φθηνό: Οθόνη με STM32L4: 13 βήματα
Αποτελεσματικό και φθηνό: Οθόνη με STM32L4: 13 βήματα

Βίντεο: Αποτελεσματικό και φθηνό: Οθόνη με STM32L4: 13 βήματα

Βίντεο: Αποτελεσματικό και φθηνό: Οθόνη με STM32L4: 13 βήματα
Βίντεο: Αν ψάχνεις οθόνη...δες το! 2024, Νοέμβριος
Anonim
Image
Image
Εισαγωγή
Εισαγωγή

Σήμερα, θα μιλήσουμε για τρία θέματα που λατρεύω απόλυτα: μια οθόνη LCD που ξοδεύει λίγη ενέργεια, το STM32 με το Core Arduino και το Arduino Mega Pro Mini. Αυτή είναι μια αλάνθαστη τριάδα για το Διαδίκτυο των Πραγμάτων. Στη συνέχεια, θα σας παρουσιάσω την εξαψήφια οθόνη HT1621 LCD και θα δημιουργήσω ένα παράδειγμα ελέγχου με έναν κωδικό που λειτουργεί τόσο στο Arduino Mega Pro Mini όσο και στο STM32 L432KC. Μια αξιοσημείωτη λεπτομέρεια είναι ότι ο πηγαίος κώδικας για τους δύο μικροελεγκτές είναι ακριβώς ο ίδιος. Δεν θα αλλάξω ούτε το καρφίτσωμα. Είναι απολύτως φανταστικό!

Βήμα 1: Εισαγωγή

Εισαγωγή
Εισαγωγή

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

• Έχει 6 ψηφία με 7 τμήματα

• Χρησιμοποιεί επικοινωνία 3-καλωδίων SPI

• Διαθέτει οπίσθιο φωτισμό κατάλληλο για σκοτεινό περιβάλλον

• Η τάση λειτουργίας του είναι 4,7 ~ 5,2V

• Καταναλώνει 4mA με οπίσθιο φωτισμό

Σημειώστε ότι έχει περισσότερα από ΕΞΙ ψηφία, ΤΡΙΑ δεκαδικά ψηφία και μετρητή μπαταρίας με ΤΡΕΙΣ ράβδους.

Βήμα 2: Βιβλιοθήκη για χρήση

Θα χρησιμοποιήσουμε τη βιβλιοθήκη χρήστη github ANXZHU, η οποία είναι αρκετά απλή. Μπορείτε να το δείτε στην αρχική έκδοση στον παρακάτω σύνδεσμο:

github.com/anxzhu/segment-lcd-with-ht1621

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

Βήμα 3: Βιβλιοθήκη

Προσθήκη βιβλιοθήκης "lcdlib".

Πρόσβαση στον σύνδεσμο και λήψη της βιβλιοθήκης.

Αποσυμπιέστε το αρχείο και επικολλήστε το στο φάκελο βιβλιοθηκών του Arduino IDE.

C: / Αρχεία προγράμματος (x86) / Arduino / βιβλιοθήκες

Βήμα 4: Επίδειξη

Επίδειξη
Επίδειξη

Μεγάλη συναρμολόγηση Arduino

Βήμα 5: Επίδειξη

Επίδειξη
Επίδειξη

Συναρμολόγηση SMT32

Βήμα 6: STM32 NUCLEO-L432KC

STM32 NUCLEO-L432KC
STM32 NUCLEO-L432KC

Θέλω να τονίσω εδώ ότι το STM32-L432KC δεν διαθέτει σειριακό μετατροπέα USB. Αντ 'αυτού, διαθέτει ένα πλήρες USB, το οποίο χρησιμοποιεί το πρωτόκολλο STMicroelectronics ST-link. Έτσι, είναι αρκετά εξελιγμένο και επιτρέπει πολύ αποτελεσματικό εντοπισμό σφαλμάτων εάν χρησιμοποιείτε IR ή Microvision. Και ως Arduino Core (MBED, χρησιμοποιώντας το εγγενές εργαλείο της Microsoft), χρησιμοποιεί εξαιρετικά επαγγελματικούς μεταγλωττιστές. Χρειάζεται να πω κάτι άλλο;

Βήμα 7: Arduino Mega 2560 PRO MINI

Arduino Mega 2560 PRO MINI
Arduino Mega 2560 PRO MINI

Μου αρέσει επίσης αυτό, καθώς είναι ένα "καθαρό" και "πραγματικό" Arduino. Είναι ένα Mega, με πολλά IO. Αλλά είναι Mini, έτσι ταιριάζει οπουδήποτε. Μου αρέσει το IO παντού. Με αυτό, μου αρέσει να συνδέω Led, SPI, i2c, κλπ. Από αυτή την άποψη, αυτό το Mega είναι υπέροχο.

Βήμα 8: Συναρμολόγηση

Συνέλευση
Συνέλευση

Στη συναρμολόγησή μας, η σειρά του αρσενικού πείρου είναι στην εσωτερική πλευρά, ενώ η θηλυκή είναι στην εξωτερική πλευρά, διευκολύνοντας τη δουλειά και τη σύνδεσή μας με ένα πρωτοπόρο. Κάνουμε τη σύνδεση SPI, θυμόμαστε ότι το Arduino Mega και αυτός ο κλώνος Arduino Nano έχουν την ίδια καρφίτσα, που είναι το STM32-L432KC.

Βήμα 9: Πρόγραμμα

Θα κάνουμε ένα πολύ απλό πρόγραμμα, όπου θα γράψουμε διάφορα σύμβολα (γράμματα, αριθμούς και σημεία) στην οθόνη.

Θυμηθείτε ότι αυτό το πρόγραμμα λειτουργεί τόσο στο Arduino Mega Pro Mini όσο και στο STM32 L432KC.

Βήμα 10: Βιβλιοθήκες και μεταβλητές

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

#include // biblioteca para controle do display

lcdlib lcd; // instancia do controlador do display /*0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, b, C, c, d, E, F, H, h, L, n, N, P, r, t, U, -, bat, pf, '', */ const char num = {0x7D, 0x60, 0x3E, 0x7A, 0x63, 0x5B, 0x5F, 0x70, 0x7F, 0x7B, 0x77, 0x4F, 0x1D, 0x0E, 0x6E, 0x1F, 0x17, 0x67, 0x47, 0x0D, 0x46, 0x75, 0x37, 0x06, 0x0F, 0x6D, 0x02, 0x80, 0xFF, 0x00} / *indice num 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 */

Βήμα 11: Ρύθμιση

Για να ξεκινήσει η ρύθμιση, θα ορίσουμε τις καρφίτσες, θα κάνουμε την αρχική ρύθμιση και θα ορίσουμε τον καθαρισμό της οθόνης. Διαπιστώσαμε ότι στην οθόνη εμφανίζεται η ένδειξη "Hello" και μετά από ορισμένη καθυστέρηση, το μήνυμα της οθόνης διαγράφεται.

void setup () {lcd.run (2, 3, 4, 5); // [cs wr data led+] definição dos pinos lcd.conf (); // configuração inicial lcd.clr (); // limpa o display // escreve HELLO lcd.display (10, num [17]); lcd.display (8, num [15]); lcd.display (6, num [19]); lcd.display (4, num [19]); lcd.display (2, num [0]); // fim HELLO καθυστέρηση (1000); lcd.clr (); // limpa o display}

Βήμα 12: Βρόχος

Εδώ, δημιουργούμε μια συνάρτηση που ονομάζεται "writeLoop", η οποία θα γράψει τη λέξη LOOP στην οθόνη, στη συνέχεια θα γράψει όλα τα σύμβολα της συστοιχίας μας. Έχουμε επίσης τη λειτουργία "writeBattery", η οποία εκτυπώνει τους δείκτες μπαταρίας.

Τέλος, έχουμε την εντολή "lcd.dispnum" που γράφει την τιμή του κυμαινόμενου σημείου.

Βήμα 13: Κατεβάστε τα αρχεία

PDF

ΕΓΩ ΔΕΝ

Συνιστάται: