Màn hình LCD: mọi thứ bạn cần biết

Man hinh LCD

một Màn hình LCD có thể là một giải pháp cho những dự án mà bạn cần hiển thị thông tin mà không cần phải phụ thuộc vào một máy tính được kết nối liên tục. Nghĩa là, trong một dự án Arduino / Raspberry Pi, bạn có thể sử dụng cổng nối tiếp để truyền thông tin được hiển thị trên màn hình để lấy các chỉ số cảm biến, hiển thị biểu đồ, tài khoản, v.v. Nhưng nếu dự án của bạn liên tục chạy hoặc ở xa nơi bạn có thể có máy tính, thì màn hình LCD chính là cứu cánh cho bạn.

Ví dụ, hãy tưởng tượng rằng bạn lắp đặt một hệ thống tưới tiêu tự động và bạn muốn kiểm tra các chỉ số về độ ẩm và nhiệt độ khi bạn đi đến vườn rau hoặc vườn của mình. Phải mang máy tính đến đó để kết nối bảng Arduino với PC không phải là một giải pháp thực tế. Trong trường hợp này, bạn có thể sửa đổi mã của mình sao cho thông tin được hiển thị trên màn hình LCD và thậm chí thêm một số phím hoặc nút để có thể hiển thị các thông tin khác nhau.

Màn hình LCD là gì?

Màn hình tinh thể lỏng hoặc LCD (màn hình tinh thể lỏng) Nó là một loại màn hình phẳng, mỏng, có thể hiển thị hình ảnh. Mỗi bảng điều khiển được tạo thành từ một số pixel màu hoặc đơn sắc nhất định được đặt trước nguồn sáng. Mức tiêu thụ của chúng thấp, đó là lý do tại sao chúng lý tưởng cho loại dự án điện tử tự làm công suất thấp này.

Mỗi điểm ảnh trên màn hình LCD được tạo thành từ một lớp phân tử được xếp giữa hai điện cực trong suốt và hai bộ lọc phân cực. Giữa bộ lọc phân cực có một màn hình tinh thể lỏng, do đó có tên và ngăn ánh sáng đi qua bộ lọc đầu tiên bị chặn bởi bộ lọc thứ hai.

Ngoài ra, nếu bạn nhận thấy, khi bạn chạm vào một trong những màn hình này hình ảnh bị biến dạng và một loại vệt đen xuất hiện khi nhấn, đó là do bạn đang tạo áp lực lên tinh thể lỏng và không nên làm như vậy ... Bạn có thể nhận được màu sắc màn hình chất lượng thấp hơn, phân bố ánh sáng không đồng đều hoặc thậm chí các điểm ảnh chết (các điểm đen hoặc các vùng trên màn hình không biến mất).

Màn hình LCD cho Arduino và Raspberry Pi

Màn hình LCD, chẳng hạn như các mô-đun tồn tại cho điện tử hoặc cho Arduino, thường có nhiều cột để hiển thị các ký tự hoặc ký hiệu chữ và số và một hoặc hai hàng để hiển thị thông tin. Điều đó làm cho chúng thú vị hơn nhiều so với màn hình bảy đoạn, sẽ phải kết nối nhiều chân để chỉ có thể hiển thị một số, ký hiệu hoặc chữ cái. Nếu bạn muốn hiển thị nhiều hơn, bạn nên đặt một số màn hình.

Thay vào đó, với một màn hình LCD duy nhất, bạn có thể hiển thị nhiều thông tin hơn. Nhưng bạn phải biết sơ đồ chân của loại mô-đun này để kết nối chúng đúng cách. Tôi khuyên bạn nên luôn xem bảng dữ liệu của nhà sản xuất và mô hình cụ thể mà bạn có vì chúng có thể khác nhau.

Ví dụ: Bạn có thể mua cái này từ Adafruit trên Amazon, là một trong những bàn phím phổ biến nhất và có khả năng hiển thị tối đa 16 ký tự trong mỗi hai dòng của nó. Và thậm chí còn có 20 × 4 hoặc thứ gì đó cao cấp hơn vàMàu đa inch để hiển thị hình ảnh phức tạp hơn.

Đối với màn hình LCD của Adafruit 16 × 2 bạn có thể xem biểu dữ liệu này...

Đối với arduino có thể một cái đơn giản hơn như một cái thì tốt hơn Màn hình LCD 16x2 không có bàn phím. Nếu bạn nhìn vào bảng này, nó có 16 chân ở mặt sau. Nếu bạn lấy bảng và lật ngược nó lại và nhìn vào các chốt của nó từ trái sang phải, bạn có sơ đồ chân:

  • Chân 16: GND cho đèn nền
  • Chân 15: Vcc cho đèn nền
  • Chân 7-14: 8-bit (8 chân tiếp theo) để truyền thông tin hiển thị trên màn hình
  • Pin 6: đọc và ghi đồng bộ
  • Chân 5. R / W (ghi và đọc dữ liệu và lệnh)
  • Chân 4: RS (bộ chọn giữa lệnh và dữ liệu)
  • Chân 3: điều khiển độ tương phản
  • Chân 2: Vcc 5v cho nguồn
  • Chân 1: GND (0v) cho nguồn điện

Hãy nhớ rằng khi bạn đặt nó vào đúng vị trí của nó, các chốt sẽ được đảo ngược ...

Tích hợp với Arduino

Sơ đồ kết nối LCD 16x2 với Arduino Uno

đến kết nối nó với arduino Nó không quá phức tạp, bạn chỉ nên xem xét bao gồm một điện trở 220 ohm để điều chỉnh điện áp đầu vào cho nguồn màn hình, và một chiết áp để điều chỉnh độ tương phản của màn hình. Sau đó, kết nối từng chân với bảng Arduino một cách thích hợp và bạn đã hoàn tất. Bạn có thể nhìn vào hình ảnh của Fritzing ...

Bạn có thể thấy, chiết áp sẽ được thông qua đó nó sẽ được cung cấp màn hình LCD và độ tương phản cũng sẽ được điều chỉnh. Do đó, nó sẽ được liên kết với cả GND và Vcc của màn hình, cũng như dòng điều khiển đèn nền và điều khiển độ tương phản. Có lẽ đó là vấn đề phức tạp nhất, sau đó là vấn đề kết nối các chân còn lại với các đầu vào / đầu ra mà bạn sẽ sử dụng trong dự án của mình.

Lập trình với Arduino IDE

Để lập trình bạn phải tính đến một số đặc thù, Hãy nhớ rằng bạn không chỉ phải biết cách gửi dữ liệu mà còn phải di chuyển dữ liệu, đặt nó trên màn hình tốt, v.v. Và bạn cũng nên sử dụng một thư viện có tên là LiquidCrystal.h, miễn là màn hình LCD của bạn có chipset Hitachi HD44780 tương thích. Bạn có một ví dụ mã ở đây:

#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);
  }
}

Thêm thông tin - Hướng dẫn lập trình Arduino (PDF miễn phí)


Hãy là người đầu tiên nhận xét

Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.