산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

Arduino 16×2 LCD 튜토리얼 – 알아야 할 모든 것

<메인 클래스="사이트 메인" id="메인">

이 Arduino 튜토리얼에서는 LCD(액정 디스플레이) 를 연결하고 사용하는 방법을 배웁니다. Arduino 사용 . 이와 같은 LCD 디스플레이는 센서 데이터와 같은 간단한 정보를 표시하는 데 적합하면서도 매우 저렴하기 때문에 많은 전자 프로젝트에서 널리 사용되며 널리 사용됩니다.

이미 여러 Arduino 프로젝트에서 사용했으며 여기에서 확인할 수 있습니다.

다음 비디오를 보거나 아래에 작성된 튜토리얼을 읽을 수 있습니다. 여기에는 LCD 핀아웃, 배선도 및 여러 예제 코드와 같이 Arduino와 함께 LCD 문자 디스플레이를 사용하는 데 대해 알아야 할 모든 것이 포함되어 있습니다.

LCD 문자 표시란 무엇입니까?

LCD 문자 디스플레이는 고정된 크기의 개별 ASCII 문자만 출력할 수 있는 고유한 유형의 디스플레이입니다. 이러한 개별 문자를 사용하여 텍스트를 구성할 수 있습니다.

디스플레이를 자세히 살펴보면 5×8 픽셀 격자로 구성된 작은 직사각형 영역이 있음을 알 수 있습니다. 각 픽셀은 개별적으로 밝아질 수 있으므로 각 그리드 내에서 캐릭터를 생성할 수 있습니다.

직사각형 영역의 수는 LCD의 크기를 정의합니다. 가장 널리 사용되는 LCD는 16×2 LCD로, 16개의 직사각형 영역 또는 문자가 있는 2개의 행이 있습니다. 물론 16×1, 16×4, 20×4 등과 같은 다른 크기도 있지만 모두 동일한 원리로 작동합니다. 또한 이러한 LCD는 배경과 텍스트 색상이 다를 수 있습니다.

16×2 LCD 핀아웃

16개의 핀이 있으며 왼쪽에서 오른쪽으로 첫 번째 핀이 접지 입니다. 핀. 두 번째 핀은 VCC 입니다. Arduino 보드에 5볼트 핀을 연결합니다. 다음은 디스플레이의 대비를 제어하기 위해 전위차계를 부착할 수 있는 Vo 핀입니다.

다음으로 RS 핀 또는 레지스터 선택 핀은 LCD에 명령이나 데이터를 보낼지 여부를 선택하는 데 사용됩니다. 예를 들어 RS 핀이 로우 상태 또는 0볼트로 설정되어 있으면 커서를 특정 위치로 설정, 디스플레이 지우기, 디스플레이 끄기 등과 같은 명령을 LCD에 보냅니다. 그리고 RS 핀이 High 상태 또는 5V로 설정되면 데이터 또는 문자를 LCD로 전송합니다.

다음은 R/W입니다. LCD에 읽을 것인지 쓸 것인지 모드를 선택하는 핀입니다. 여기서 쓰기 모드는 분명하며 LCD에 명령과 데이터를 쓰거나 보내는 데 사용됩니다. 읽기 모드는 이 튜토리얼에서 논의할 필요가 없는 프로그램을 실행할 때 LCD 자체에서 사용됩니다.

다음은 E입니다. 레지스터에 쓰기를 가능하게 하는 핀, 또는 D0에서 D7까지의 다음 8개 데이터 핀. 따라서 이 핀을 통해 레지스터에 쓸 때 8비트 데이터를 보내고 있습니다. 예를 들어 후자의 대문자 A를 디스플레이에 표시하려면 ASCII 테이블에 따라 레지스터에 0100 0001을 보냅니다. 마지막 두 핀 A K , 또는 양극과 음극은 LED 백라이트용입니다.

액정 라이브러리가 거의 모든 것을 처리하므로 LCD 작동 방식에 대해 크게 걱정할 필요가 없습니다. 아두이노 공식 홈페이지에서 LCD를 쉽게 사용할 수 있는 라이브러리의 기능을 찾아 볼 수 있습니다. 4 또는 8비트 모드에서 라이브러리를 사용할 수 있습니다. 이 튜토리얼에서는 4비트 모드에서 사용하거나 8개의 데이터 핀 중 4개만 사용할 것입니다.

Arduino를 LCD에 연결하는 방법 – 배선도

16×2 LCD 디스플레이를 Arduino 보드에 연결하는 방법은 다음과 같습니다.

Arduino 보드에서 6개의 디지털 입력 핀만 사용합니다. D4에서 D7까지의 LCD 레지스터 4에서 7까지 Arduino의 디지털 핀에 연결됩니다. 활성화 핀은 핀 번호 2와 RS에 연결됩니다. 핀은 핀 번호 1에 연결됩니다. R/W 핀은 접지 및 Vo에 연결됩니다. 핀은 전위차계 중간 핀에 연결됩니다.

아래 사이트에서 이러한 구성요소를 얻을 수 있습니다.

LCD 대비 조정

Vo에서 전압 입력을 조정하여 LCD의 대비를 조정할 수 있습니다. 핀. 전위차계를 사용하는 이유는 입력 전압을 0에서 5V로 조정하여 대비를 쉽게 미세 조정할 수 있기 때문입니다.

전위차계 없이 LCD를 사용할 수 있습니까?

예, 전위차계가 없는 경우에도 두 개의 저항으로 구성된 전압 분배기를 사용하여 LCD 대비를 조정할 수 있습니다. 전압 분배기를 사용하여 디스플레이에서 좋은 대비를 얻으려면 전압 값을 0에서 5V 사이로 설정해야 합니다. 나는 약 1V의 전압이 내 LCD에서 잘 작동한다는 것을 발견했습니다. 좋은 대비를 얻기 위해 1K 및 220옴 저항을 사용했습니다.

LCD 대비를 조정하는 또 다른 방법이 있습니다. 이는 Arduino에서 Vo에 PWM 신호를 공급하는 것입니다. LCD의 핀. Vo를 연결할 수 있습니다. 핀을 Arduino PWM 가능 핀에 연결하고 설정 섹션에서 다음 코드 줄을 사용할 수 있습니다.

analogWrite(11,100); // Generate PWM signal at pin D11, value of 100 (out of 255)Code language: Arduino (arduino)

핀 D11에서 PWM 신호를 생성하고 255 중 100 값을 0에서 5V 사이의 전압으로 변환하며 Vo에서 약 2V 입력이 됩니다. LCD 핀.

LCD Arduino 코드

다음은 Liquid Crystal 라이브러리의 작동 원리를 설명할 수 있는 간단한 코드입니다. 이것은 비디오의 첫 번째 예제 코드입니다.

/*
* Arduino LCD Tutorial
*
* Crated by Dejan Nedelkovski,
* www.HowToMechatronics.com
*
*/

#include <LiquidCrystal.h> // includes the LiquidCrystal Library 
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LCD object. Parameters: (rs, enable, d4, d5, d6, d7) 

void setup() { 
 lcd.begin(16,2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display } 
}

void loop() { 
 lcd.print("Arduino"); // Prints "Arduino" on the LCD 
 delay(3000); // 3 seconds delay 
 lcd.setCursor(2,1); // Sets the location at which subsequent text written to the LCD will be displayed 
 lcd.print("LCD Tutorial"); 
 delay(3000); 
 lcd.clear(); // Clears the display 
 lcd.blink(); //Displays the blinking LCD cursor 
 delay(4000); 
 lcd.setCursor(7,1); 
 delay(3000); 
 lcd.noBlink(); // Turns off the blinking LCD cursor 
 lcd.cursor(); // Displays an underscore (line) at the position to which the next character will be written 
 delay(4000); 
 lcd.noCursor(); // Hides the LCD cursor 
 lcd.clear(); // Clears the LCD screen 
}Code language: Arduino (arduino)

코드 설명:

가장 먼저 해야 할 일은 액정 라이브러리를 삽입하는 것입니다. Sketch> Include Library> Liquid Crystal과 같이 할 수 있습니다. 그런 다음 LC 개체를 만들어야 합니다. 이 객체의 매개변수는 다음과 같이 LCD의 핀에 각각 Arduino 보드의 디지털 입력 핀의 번호여야 합니다:(RS, Enable, D4, D5, D6, D7). 설정에서 LCD에 대한 인터페이스를 초기화하고 begin() 을 사용하여 디스플레이의 크기를 지정해야 합니다. 기능.

루프에서 우리는 메인 프로그램을 작성합니다. print() 사용 LCD에 인쇄하는 기능입니다.

lcd.print("Arduino"); // Prints "Arduino" on the LCDCode language: Arduino (arduino)

setCursor() 기능은 LCD에 쓰여진 후속 텍스트가 표시될 위치를 설정하는 데 사용됩니다.

lcd.setCursor(2,1); // Sets the location at which subsequent text written to the LCD will be displayed Code language: Arduino (arduino)

깜박임() 함수는 깜박이는 커서를 표시하는 데 사용되며 noBlink() 끄기 기능입니다.

lcd.blink(); //Displays the blinking LCD cursorCode language: Arduino (arduino)

커서() 함수는 밑줄 커서와 noCursor()를 표시하는 데 사용됩니다. 끄기 위한 기능. clear() 사용 LCD 화면을 지울 수 있는 기능입니다.

lcd.clear(); // Clears the LCD screenCode language: Arduino (arduino)

16×2 LCD 및 Arduino의 스크롤 텍스트 예

길이가 16자보다 긴 텍스트가 있는 경우 scrollDisplayLeft()를 사용하여 텍스트를 스크롤할 수 있습니다. 또는 scrollDisplayRight() LiquidCrystal 라이브러리의 기능입니다.

다음은 예제 코드입니다:

#include <LiquidCrystal.h>

LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LCD object. Parameters: (rs, enable, d4, d5, d6, d7)

void setup() {
  lcd.begin(16, 2);
  lcd.print("Scrolling Text Example");
}
void loop() {
  lcd.scrollDisplayLeft();
  delay(500);
}Code language: Arduino (arduino)

scrollDisplayLeft()를 사용하여 텍스트를 왼쪽 또는 오른쪽으로 스크롤할지 여부를 선택할 수 있습니다. 또는 scrollDisplayRight() 기능. delay() 사용 스크롤 속도를 설정할 수 있는 기능입니다.

텍스트가 스크롤되는 방식을 더 많이 제어하려면 "for" 루프를 사용하여 스스로 스크롤할 수도 있습니다. 다음은 예입니다:

#include <LiquidCrystal.h>

LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LCD object. Parameters: (rs, enable, d4, d5, d6, d7)

void setup() {
  lcd.begin(16, 2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display

}

void loop() {
  // scroll text to the right
  for (int i = 0; i <= 13; i++) {
    lcd.setCursor(i, 0); // Sets the location at which subsequent text written to the LCD will be displayed
    lcd.print("LCD");
    delay(500); // 1 second delay
    lcd.clear(); // Write a character to the LCD
  }
  // scroll text to the left
  for (int i = 12; i >= 1; i--) {
    lcd.setCursor(i, 0);
    lcd.print("LCD");
    delay(500); 
    lcd.clear(); 
  }
}Code language: Arduino (arduino)

LCD에 사용자 정의 문자를 생성하고 표시하는 방법

ASCII 문자 외에도 LiquidCrystal 라이브러리를 사용하여 LCD에 사용자 지정 문자를 생성하고 표시할 수도 있습니다.

8바이트 배열로 각 문자의 모양을 지정할 수 있습니다. 다음은 예제 코드입니다:

#include <LiquidCrystal.h>

byte heart[8] = {  // Array of bytes
  B00000,          // B stands for binary formatter and the five numbers are the pixels
  B01010,
  B11111,
  B11111,
  B01110,
  B00100,
  B00000,
  B00000
};

byte smile[8] = {
  B00000,
  B00000,
  B01010,
  B00000,
  B10001,
  B01110,
  B00000,
  B00000
};

byte lock[8] = {
  B01110,
  B10001,
  B10001,
  B11111,
  B11011,
  B11011,
  B11111,
  B00000
};

byte character[8] = {
  B11111,
  B10101,
  B11111,
  B01010,
  B01110,
  B11111,
  B01110,
  B01110
};


LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LC object. Parameters: (rs, enable, d4, d5, d6, d7)

void setup() {
  lcd.begin(16, 2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display
  lcd.createChar(0, heart); // Create a custom character
  lcd.createChar(1, smile);
  lcd.createChar(2, lock);
  lcd.createChar(3, character);

  // Clears the LCD screen
  lcd.clear();

  // Print a message to the LCD
  lcd.print("Custom Character");
}

void loop() {
  lcd.setCursor(1, 1);
  lcd.write(byte(0));  // Display the custom character 0, the heart

  lcd.setCursor(5, 1);
  lcd.write(byte(1));

  lcd.setCursor(9, 1);
  lcd.write(byte(2));

  lcd.setCursor(13, 1);
  lcd.write(byte(3));
}Code language: Arduino (arduino)

5×8 픽셀 그리드 내에서 0을 1로 변경하여 캐릭터의 모양을 지정하는 방법을 알 수 있습니다.

설정에서 createChar()를 사용하여 맞춤 캐릭터를 만들어야 합니다. 기능.

lcd.createChar(0, heart); // Create a custom characterCode language: Arduino (arduino)

이 함수의 첫 번째 매개변수는 0에서 7 사이의 숫자이거나 지원되는 8개의 사용자 정의 문자 중 하나를 예약해야 합니다. 두 번째 매개변수는 바이트 배열의 이름입니다.

write()를 사용하여 디스플레이에 맞춤 문자를 씁니다. 기능 및 매개변수로 문자 번호를 사용합니다.

lcd.write(byte(0));  // Display the custom character 0, or the heartCode language: Arduino (arduino)

참조: Arduino 터치 스크린 튜토리얼 | TFT LCD

결론

그래서 우리는 Arduino와 함께 LCD를 사용하는 것에 대해 알아야 할 거의 모든 것을 다루었습니다. 이 LCD 문자 디스플레이는 많은 전자 프로젝트에 대한 정보를 표시하는 데 정말 편리합니다. 위의 예에서는 16×2 LCD를 사용했지만 이러한 문자 디스플레이의 다른 크기에도 동일한 작동 원리가 적용됩니다.

이 튜토리얼을 즐기고 새로운 것을 배웠기를 바랍니다. 아래 댓글 섹션에서 언제든지 질문을 하고 30개 이상의 Arduino 프로젝트 전체 컬렉션을 확인하는 것을 잊지 마세요.


제조공정

  1. Plunge EDM에 대해 알아야 할 모든 것
  2. 주철에 대해 알아야 할 모든 것
  3. 용광로에 대해 알아야 할 모든 것
  4. 드릴링 머신에 대해 알아야 할 모든 것
  5. 판금에 대해 알아야 할 모든 것
  6. 밀링 머신에 대해 알아야 할 모든 것
  7. 대패 기계에 대해 알아야 할 모든 것
  8. 성형 기계에 대해 알아야 할 모든 것
  9. 금속 가공에 대해 알아야 할 모든 것
  10. CNC 기계에 대해 알아야 할 모든 것