Οθόνη LCD: όλα όσα πρέπει να γνωρίζετε

οθόνη LCD

ένα Η οθόνη LCD μπορεί να είναι μια λύση για εκείνα τα έργα στα οποία πρέπει να εμφανίσετε πληροφορίες χωρίς να χρειάζεται να εξαρτάται από έναν συνεχώς συνδεδεμένο υπολογιστή. Δηλαδή, σε ένα έργο Arduino / Raspberry Pi, μπορείτε να χρησιμοποιήσετε τη σειριακή θύρα για να μεταδώσετε πληροφορίες που εμφανίζονται στην οθόνη για να λάβετε αναγνώσεις αισθητήρων, να εμφανίσετε ένα γράφημα, λογαριασμούς κ.λπ. Αλλά εάν το έργο σας εκτελείται συνεχώς ή μακριά από το σημείο όπου μπορείτε να έχετε έναν υπολογιστή, η οθόνη LCD είναι η σωτηρία σας.

Για παράδειγμα, φανταστείτε ότι εγκαθιστάτε ένα αυτοματοποιημένο σύστημα άρδευσης και θέλετε να ελέγξετε τις μετρήσεις υγρασίας και θερμοκρασίας όταν πηγαίνετε στον κήπο λαχανικών ή στον κήπο σας. Το να πάρετε τον υπολογιστή εκεί για να συνδέσετε την πλακέτα Arduino στον υπολογιστή δεν είναι πρακτική λύση. Σε αυτήν την περίπτωση, μπορείτε να τροποποιήσετε τον κωδικό σας έτσι Οι πληροφορίες εμφανίζονται στην οθόνη LCD και ακόμη και να προσθέσετε μερικά πλήκτρα ή κουμπιά για να εμφανίσετε διαφορετικές πληροφορίες.

Τι είναι μια οθόνη LCD;

Μια οθόνη υγρών κρυστάλλων ή Οθόνη υγρών κρυστάλλων LCD Είναι ένα είδος λεπτού, επίπεδου πίνακα που μπορεί να εμφανίζει εικόνες. Κάθε πλαίσιο αποτελείται από έναν ορισμένο αριθμό χρωμάτων ή μονόχρωμων εικονοστοιχείων που τοποθετούνται μπροστά από μια πηγή φωτός. Η κατανάλωσή τους είναι χαμηλή, γι 'αυτό είναι ιδανικά για αυτόν τον τύπο DIY ηλεκτρονικών έργων χαμηλής ισχύος.

Κάθε εικονοστοιχείο στην οθόνη LCD αποτελείται από ένα στρώμα μορίων ευθυγραμμισμένων μεταξύ δύο διαφανών ηλεκτροδίων και δύο φίλτρων πόλωσης. Μεταξύ φίλτρα πόλωσης υπάρχει οθόνη υγρών κρυστάλλων, εξ ου και το όνομά του, και αποτρέπει το φραγμό του φωτός που διέρχεται από το πρώτο φίλτρο από το δεύτερο.

Επίσης, αν έχετε παρατηρήσει, όταν αγγίζετε μία από αυτές τις οθόνες η εικόνα παραμορφώνεται και εμφανίζεται ένα είδος μαύρου λεκέ όταν πατάτε, αυτό συμβαίνει επειδή ασκείτε πίεση στον υγρό κρύσταλλο και δεν συνιστάται να το κάνετε ... Μπορεί να καταλήξετε σε χρώματα οθόνης χαμηλότερης ποιότητας, άνιση κατανομή φωτισμού ή ακόμη και νεκρά pixel (μαύρα σημεία ή περιοχές στην οθόνη που δεν εξαφανίζονται).

Οθόνες LCD για Arduino και Raspberry Pi

Μια οθόνη LCD, όπως τις ενότητες που υπάρχουν για ηλεκτρονικά ή για Arduino, συνήθως έχει πολλές στήλες για την εμφάνιση αλφαριθμητικών χαρακτήρων ή συμβόλων και μία ή δύο σειρές για την εμφάνιση πληροφοριών. Αυτό τους καθιστά πολύ πιο ενδιαφέροντες από μια οθόνη επτά τμημάτων, η οποία θα πρέπει να συνδέσει αρκετές καρφίτσες για να μπορεί να εμφανίζει μόνο έναν αριθμό, ένα σύμβολο ή ένα γράμμα. Εάν θέλετε να δείξετε περισσότερα θα πρέπει να τοποθετήσετε πολλές οθόνες.

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

Π.χ. Μπορείτε να το αγοράσετε από το Adafruit στο Amazon, το οποίο είναι ένα από τα πιο δημοφιλή με πληκτρολόγιο και περιέχει τη δυνατότητα εμφάνισης έως και 16 χαρακτήρων σε καθεμία από τις δύο γραμμές του. Και υπάρχουν ακόμη και 20 × 4, ή κάτι πιο προηγμένο καιΧρώμα πολλαπλών ιντσών για εμφάνιση πιο σύνθετων εικόνων.

Για οθόνη LCD του Adafruit 16 × 2 μπορείτε να δείτε αυτό το φύλλο δεδομένων...

Για το arduino Ίσως ένα απλούστερο σαν αυτό είναι καλύτερο Οθόνη LCD 16x2 χωρίς πληκτρολόγιο. Αν κοιτάξετε αυτό το ταμπλό, έχει 16 ακίδες στο πίσω μέρος. Εάν πάρετε το ταμπλό και το γυρίσετε ανάποδα και κοιτάξετε τους πείρους του από αριστερά προς τα δεξιά, έχετε ένα pinout:

  • Pin 16: GND για οπίσθιο φωτισμό
  • Pin 15: Vcc για οπίσθιο φωτισμό
  • Καρφίτσα 7-14: 8-bit (επόμενες 8 ακίδες) για τη μετάδοση των πληροφοριών που θα εμφανίζονται στην οθόνη
  • Καρφίτσα 6: συγχρονισμός ανάγνωσης και εγγραφής
  • Pin 5. R / W (εγγραφή και ανάγνωση για δεδομένα και εντολές)
  • Pin 4: RS (επιλογέας μεταξύ εντολών και δεδομένων)
  • Pin 3: έλεγχος αντίθεσης
  • Pin 2: Vcc 5v για ισχύ
  • Καρφίτσα 1: GND (0v) για ισχύ

Θυμηθείτε ότι όταν το τοποθετείτε στη σωστή του θέση, οι ακίδες αντιστρέφονται ...

Ενσωμάτωση με το Arduino

Διάγραμμα σύνδεσης 16x2 LCD σε Arduino Uno

να συνδέστε το με το arduino Δεν είναι πολύ περίπλοκο, θα πρέπει να εξετάσετε το ενδεχόμενο να συμπεριλάβετε μια αντίσταση 220 ohm για να ρυθμίσετε την τάση εισόδου για την ισχύ της οθόνης και ένα ποτενσιόμετρο για τη ρύθμιση της αντίθεσης της οθόνης. Στη συνέχεια, συνδέστε κάθε έναν από τους ακροδέκτες στον πίνακα Arduino κατάλληλα και τελειώσατε. Μπορείτε να δείτε την εικόνα του Fritzing ...

Οπως βλέπεις, το ποτενσιόμετρο θα περάσει μέσω του οποίου θα τροφοδοτηθεί Η οθόνη LCD και η αντίθεση θα ρυθμιστούν επίσης. Επομένως, θα συνδεθεί τόσο με το GND όσο και με το Vcc της οθόνης, καθώς και με τη γραμμή ελέγχου οπίσθιου φωτισμού και τον έλεγχο αντίθεσης. Ίσως αυτό είναι το πιο περίπλοκο, τότε είναι θέμα σύνδεσης των υπόλοιπων ακίδων με τις εισόδους / εξόδους που πρόκειται να χρησιμοποιήσετε στο έργο σας.

Προγραμματισμός με το Arduino IDE

Για προγραμματισμό πρέπει να λάβετε υπόψη κάποιες ιδιαιτερότητες, Λάβετε υπόψη ότι δεν πρέπει μόνο να γνωρίζετε πώς να στέλνετε δεδομένα, αλλά και να τα μετακινείτε, να τα τοποθετείτε καλά στην οθόνη κ.λπ. Και θα πρέπει επίσης να χρησιμοποιήσετε μια βιβλιοθήκη που ονομάζεται LiquidCrystal.χ, αρκεί η οθόνη LCD να διαθέτει συμβατό chipset Hitachi HD44780. Έχετε ένα παράδειγμα κώδικα εδώ:

#include <LiquidCrystal.h>

// Definimos las constantes
#define COLS 16 // Aqui va el num de columnas del LCD, 16 en nuestro caso
#define ROWS 2 // Aqui las filas x2
#define VELOCIDAD 200 // Velocidad a la que se movera el texto

// Indicamos los pines de la interfaz donde hayas conectado el LCD
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

// Para el texto que se muestra
String texto_fila = "Ejemplo LCD";

void setup() {
  // Configura el monitor serie
  Serial.begin(9600);

  // Configurde filas y columnas
  lcd.begin(COLS, ROWS);
}

void loop() {

  // Tamaño del texto a mostrar
  int tam_texto=texto_fila.length();

  // Indicamos que la entrada de texto se hace por la izquierda
  for(int i=tam_texto; i>0 ; i--)
  {
    String texto = texto_fila.substring(i-1);

    // Limpia la pantalla para poder mostrar informacion diferente
    lcd.clear();

    //Situar el cursor en el lugar adecuado, en este caso al inicio
    lcd.setCursor(0, 0);

    // Escribimos el texto "Ejemplo LCD"
    lcd.print(texto);

    // Esperara la cantidad de milisegundos especificada, en este caso 200
    delay(VELOCIDAD);
  }

  // Desplazar el texto a la izquierda en primera fila
  for(int i=1; i<=16;i++) { 
    lcd.clear();
    lcd.setCursor(i, 0); 
    lcd.print(texto_fila); 
    delay(VELOCIDAD); } 
  // Desplazar el texto a izquierda en la segunda fila 
    for(int i=16;i>=1;i--)
  {
    lcd.clear();
    lcd.setCursor(i, 1);
    lcd.print(texto_fila);
    delay(VELOCIDAD);
  }
  for(int i=1; i<=tam_texto ; i++)
  {
    String texto = texto_fila.substring(i-1);
    lcd.clear();
    lcd.setCursor(0, 1);
    lcd.print(texto);
    delay(VELOCIDAD);
  }
}

Περισσότερες πληροφορίες - Εγχειρίδιο προγραμματισμού Arduino (Δωρεάν PDF)


Γίνε ο πρώτος που θα σχολιάσει

Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.