LCD 화면 : 알아야 할 모든 것

LCD 화면

우나 LCD 화면이 해결책이 될 수 있습니다. 지속적으로 연결된 컴퓨터에 의존하지 않고도 정보를 표시해야하는 프로젝트에 적합합니다. 즉, Arduino / Raspberry Pi 프로젝트에서 직렬 포트를 사용하여 화면에 표시되는 정보를 전송하여 센서 판독 값을 얻고 그래프, 계정 등을 표시 할 수 있습니다. 그러나 프로젝트가 지속적으로 실행 중이거나 컴퓨터가있는 곳에서 멀리 떨어져 있다면 LCD 화면이 구원입니다.

예를 들어, 자동 관개 시스템을 설치하고 채소밭이나 정원에 갈 때 습도 및 온도 수치를 확인하고 싶다고 가정 해보십시오. Arduino 보드를 PC에 연결하기 위해 컴퓨터를 가져 가야하는 것은 실용적인 해결책이 아닙니다. 이 경우 다음과 같이 코드를 수정할 수 있습니다. LCD 화면에 정보가 표시됩니다. 다른 정보를 표시 할 수 있도록 키나 버튼을 추가 할 수도 있습니다.

LCD 패널이란?

액정 디스플레이 또는 LCD (Liquid Crystal Display) 이미지를 표시 할 수있는 일종의 얇은 평면 패널입니다. 각 패널은 광원 앞에 배치 된 특정 수의 색상 또는 단색 픽셀로 구성됩니다. 소비가 적기 때문에 이러한 유형의 DIY 저전력 전자 프로젝트에 이상적입니다.

LCD 화면의 각 픽셀은 두 개의 투명 전극과 두 개의 편광 필터 사이에 정렬 된 분자 층으로 구성됩니다. 중에서 편광 필터 액정 디스플레이가, 따라서 그 이름이며 첫 번째 필터를 통과하는 빛이 두 번째 필터에 의해 차단되는 것을 방지합니다.

또한 눈치 채 셨다면 이 화면 중 하나를 터치하면 눌렀을 때 이미지가 변형되고 일종의 검은 얼룩이 나타납니다. 이는 액정에 압력을 가하여 사용하지 않는 것이 좋기 때문입니다. 화면 색상이 낮아지고 조명이 고르지 않게 분포 될 수 있습니다. 또는 죽은 픽셀 (화면에서 사라지지 않는 검은 반점 또는 영역).

Arduino 및 Raspberry Pi 용 LCD 화면

다음과 같은 LCD 화면 전자 제품 또는 Arduino를 위해 존재하는 모듈, 일반적으로 영숫자 문자 또는 기호를 표시하는 여러 열과 정보를 표시하는 하나 또는 두 개의 행이 있습니다. 이는 하나의 숫자, 기호 또는 문자 만 표시 할 수 있도록 여러 핀을 연결해야하는 XNUMX 세그먼트 디스플레이보다 훨씬 더 흥미 롭습니다. 더 많이 표시하려면 여러 개의 디스플레이를 배치해야합니다.

대신 단일 LCD 화면으로 훨씬 더 많은 정보를 표시 할 수 있습니다. 그러나 이러한 유형의 모듈을 올바르게 연결하려면 이러한 유형의 모듈의 핀아웃을 잘 알아야합니다. 나는 당신이 항상 보는 것이 좋습니다 특정 제조업체 및 모델의 데이터 시트 다를 수 있으므로 가지고 있습니다.

Amazon의 Adafruit에서 구입할 수 있습니다., 키보드에서 가장 많이 사용되는 기능 중 하나이며 두 줄에 각각 최대 16 자까지 표시 할 수 있습니다. 그리고 20 × 4, 또는 더 발전된 것이 있고더 복잡한 이미지를 표시하는 멀티 인치 컬러.

LCD 화면 용 Adafruit 16 × 2이 데이터 시트를 볼 수 있습니다....

arduino의 경우 아마도 그와 같은 단순한 것이 더 낫습니다 키보드가없는 16x2 LCD 화면. 이 보드를 보면 뒷면에 16 개의 핀이 있습니다. 보드를 거꾸로 뒤집어 왼쪽에서 오른쪽으로 핀을 보면 핀아웃이 있습니다.

  • 핀 16 : 백라이트 용 GND
  • 핀 15 : 백라이트 용 Vcc
  • 핀 7-14 : 화면에 표시 할 정보를 전송하는 8 비트 (다음 8 핀)
  • 핀 6 : 읽기 및 쓰기 동기화
  • 핀 5. R / W (데이터 및 명령 쓰기 및 읽기)
  • 핀 4 : RS (명령과 데이터 선택기)
  • 핀 3 : 대비 제어
  • 핀 2 : 전원용 5v의 Vcc
  • 핀 1 : 전원용 GND (0v)

올바른 위치에 놓으면 핀이 반전됩니다.

Arduino와 통합

16x2 LCD 연결 다이어그램 Arduino Uno

arduino에 연결 너무 복잡하지는 않습니다. 화면 전원에 대한 입력 전압을 조절하는 220 옴 저항과 화면 대비를 조절하는 전위차계 만 포함하는 것을 고려해야합니다. 그런 다음 각 핀을 Arduino 보드에 적절하게 연결하면 완료됩니다. Fritzing의 이미지를 볼 수 있습니다 ...

보시다시피 전위차계는 공급 될 것입니다 LCD 화면과 대비도 조정됩니다. 따라서 디스플레이의 GND 및 Vcc뿐만 아니라 백라이트 제어 라인 및 대비 제어에도 연결됩니다. 아마도 가장 복잡 할 수도 있지만 나머지 핀을 프로젝트에서 사용할 입력 / 출력에 연결하는 문제입니다.

Arduino IDE로 프로그래밍

프로그래밍 용 몇 가지 특성을 고려해야합니다. 데이터를 전송하는 방법뿐만 아니라 데이터를 이동하고 화면에 잘 배치하는 등의 방법을 알아야합니다. 또한 라이브러리를 사용해야합니다. 리퀴드크리스탈.hLCD 화면에 호환되는 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)


코멘트를 첫번째로 올려

코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.