상징적 인 이름 인“ 노키아 5110 ”자체는 90 년대에 매우 유명했던 견고한 노키아 휴대폰의 추억을 사야 했습니다. 모델 5110에는 당시 모바일 용 디스플레이 화면으로 작동하기에 충분한 그래픽 디스플레이가 함께 제공되었습니다. 이 화면은 휴대폰에 필요한 모든 것을 영숫자에서 작은 그래픽까지 모두 표시 할 수있었습니다. 지구가 반짝이는 터치 스크린이 튀어 나온 새로운 기술을 회전 시켰고이 디스플레이는 더 이상 사용되지 않습니다. 그러나 바라건대 그들은 작은 그래픽을 표시해야하고 큰 LCD 화면에 돈을 쓰지 않는 전자 애플리케이션에 사용될 수 있습니다. 따라서이 튜토리얼 에서는 Nokia 5110 그래픽 LCD를 Arduino 와 인터페이스하고 작동시키는 방법을 배웁니다.
이 LCD에는 84 × 48 크기의 흑백 픽셀이 있습니다. 단조롭게 보일 수 있지만 여전히 프로젝트에 적합한 그래픽을 표시하는 데 사용할 수 있으며 Arduino와 같은 마이크로 컨트롤러와 함께 쉽게 사용할 수 있습니다. 그럼 시작하겠습니다….!
필요한 재료:
- Arduino 보드 (모든 버전)
- Nokia 5110 디스플레이
- 전선 연결
Nokia 5110 그래픽 디스플레이 모듈:
이러한 그래픽 LCD에는 두 가지 유형이 있습니다. 하나는 디스플레이 위와 아래 모두에 솔더 패드가 있고 다른 하나는 디스플레이 하단에만 솔더 패드가 있습니다. 우리가 사용하는 것은 디스플레이 아래에만 패드가있는 유형 2에 속합니다. 두 모듈 모두 동일하게 작동하므로 연결은 둘 다 동일합니다. 따라서 어떤 모듈이든 관계없이 튜토리얼을 따를 수 있습니다.
앞서 언급했듯이 Nokia 5110 그래픽 LCD 는 가로 84 픽셀과 세로 48 픽셀을 가지고 있습니다. 전체 디스플레이 크기는 1.72 'x 1.72'입니다. 모듈에는 SPI 통신을 통해 모든 마이크로 컨트롤러에 인터페이스 할 수있는 6 개의 입력 핀이 있습니다. 디스플레이와 Arduino간에 통신하는 인터페이스 IC는 여기에서 데이터 시트를 찾을 수있는 Philips PCD8544 디스플레이 컨트롤러 IC입니다. 그러나 Arduino를 사용하여이 IC와 통신하는 경우 다운로드 및 사용할 준비가 된 라이브러리가 있으므로 데이터 시트에 대해 걱정할 필요가 없습니다. 여기서 사용하는 모듈은 다음과 같습니다.
회로도:
Nokia5110 Graphical LCD를 Arduino와 연결 하기위한 전체 회로도 가 아래에 나와 있습니다.
디스플레이 모듈에는 Arduino와의 SPI 통신 을 설정하는 데 사용되는 8 개의 핀이 있습니다. 모듈은 Arduino 보드의 3.3V 핀으로 전원이 공급됩니다. 이러한 모듈은 3.3V 로직에서 작동하므로 디스플레이의 Vcc 핀에 5V를 공급하지 않습니다. LCD는 3.3V 로직에서 작동하고 Arduino는 5V 로직에서 작동하더라도 디스플레이 핀을 Arduino에 직접 연결했습니다. 그래야만 LCD가 제대로 작동한다는 것을 알 수 있었기 때문입니다. 필요한 경우 전압 분배기를 사용하여 5V를 3.3V로 변환 할 수 있지만 저에게는 논리 변환없이 만 작동합니다. 연결은 매우 간단하고 간단합니다. 연결이 완료되면 설정은 아래와 같이 보일 것입니다.
Arduino 프로그램 및 작업:
아래 단계 에 따라 Nokia 5110 디스플레이 용 Arduino 를 프로그래밍하십시오. 이 단계에서는 이미 Arduino IDE를 설치했으며 사용에 익숙하다고 가정합니다.
1 단계: 컴퓨터에서 Arduino IDE를 열고 Arduino를 컴퓨터에 연결 한 후 도구 메뉴에서 적절한 보드를 선택합니다.
2 단계: 여기를 클릭하여 GitHub 저장소에서 Adafruit 라이브러리의 Nokia 5110 Display Library를 다운로드합니다.
3 단계: Zip 파일이 다운로드되면 스케치-> 라이브러리 포함->.ZIP 라이브러리 추가를 선택 하고 ZIP이 다운로드 된 위치를 찾습니다.
참고: 또한 모든 원, 텍스트, 직사각형 등을 수행하는 Adafruit GFX Graphics 코어를 다운로드해야합니다. https://github.com/adafruit/Adafruit-GFX-Library에서 가져와 동일한 방식으로 설치할 수 있습니다..
4 단계: 이제 File-> Examples-> Adafruit PCD Nokia 5110 LCD Library-> pcdtest 를 선택하여 예제 프로그램을 열고 업로드 버튼을 클릭합니다.
5 단계: 프로그램이 업로드되면 아두 이노의 리셋 버튼을 누르면이 튜토리얼의 마지막에 주어진 비디오에 표시된대로 모든 애니메이션을 표시하는 예제 프로그램이 표시됩니다.
예제 프로그램을 통해 LCD에서 다양한 그래픽 디자인을 수행하는 데 사용할 수있는 다양한 내장 기능을 이해할 수 있습니다. 그러나 한 단계 더 나아가 LCD 화면에 CircuitDigest 로고를 표시해 보겠습니다.
지금에 필요한 이미지를 열 페인트 및 이미지 크기를 조정. 디스플레이에 사용할 수있는 최대 이미지 크기는 84 × 48입니다.
이미지 크기를 조정 한 후 그림판 의 다른 이름으로 저장 옵션을 사용하여 이미지를 비트 맵 (흑백)으로 저장 합니다. LCD 화면에 이미지를 비트 맵으로 표시하려면 비트 맵 이미지를 코드로 변환 할 수있는 소프트웨어가 필요합니다. 여기를 클릭하여 소프트웨어를 다운로드 할 수 있습니다. 다운로드가 완료되면 파일의 압축을 풀고 "BitmapEncoder" 를 클릭 하여 응용 프로그램을 시작합니다. 이 소프트웨어를 사용하여 방금 저장 한 비트 맵 이미지를 열어 인코딩 된 값의 배열을 가져옵니다. 이 값을 직접 복사하여 Arduino 배열에 붙여 넣을 수 있습니다. 로고에 대해 소프트웨어에 표시된 값은 다음과 같습니다.
보시다시피 배열은 값 48, 48로 시작 합니다. 이것이 이미지의 크기입니다. 이것을 배열에 추가해서는 안됩니다. 따라서 처음 두 값을 제거하고 나머지를 프로그램의 배열 값으로 사용하십시오. 배열은 아래와 같습니다. 완전한 프로그램이 페이지의 끝에서 주어진 참조하십시오.
static const unsigned char PROGMEM 로고 = {B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00001111, B11111000, B00000000, B00000000, B00000000, B00000000, B00001111, B11111111, B00000000, B00000000, B00000000, B00000011, B00011111, B00000011, B00011111 B11111111, B11000000, B00000000, B00000000, B00001110, B00111110, B00111111, B11110000, B00000000, B00000000, B00111110, B00111110, B10000000, B01111100, B00000000, B00000000, B01111100, B01111100, B11100000000, B001110, B00000000, B0011110, B00000000, B0011110 B00001111, B00000000, B00000001, B11111000, B11111111, B00111111, B10000111, B10000000, B00000011, B11111000, B11111111, B11111111, B11000011, B11000000, B00000111, B11110001, B11111111, B11111111, B11111, B11100001, B111111100000, B11100000000, B1100000111, B11111000 B01100000, B00000000, B00000011, B11100000, B00001001, B11111100, B00000000, B00000000, B00000111,B11100000, B00011001, B11111110, B00000000, B00000000, B00000111, B11000000, B00000001, B11111111, B10000000, B00011111, B11111111, B11000111, B11100011, B11111111, B11111000, B00111111, B11111111, B10001111111, B11111111, B10001111, B11111111, B00111111, B11111111 B11111111, B11111111, B11111100, B00111111, B11111111, B00011111, B11111111, B11111111, B11111100, B00111111, B11111110, B00111111, B00111111, B11111111, B11111110, B01111111, B11111110, B01111111,100, B0000000011100, B0111110, B00000000, B0111110 B00000000, B00000000, B01111111, B11111100, B01111110, B10000000, B00000000, B00000000, B00000000, B00000000, B11111110, B00111111, B11111111, B11111110, B00000000, B00000001, B11111111, B11111111, B11111111111, B11111111, B01111111, B11111110, B01111111, B11111110 B11111110, B01111111, B11111111, B11111111, B11111111, B11111111, B11111110, B01111111, B11111111,B11000111, B11111111, B11111111, B11111110, B00111111, B11111111, B10000011, B11111110, B00000000, B00000000, B00111111, B11111111, B10110011, B11111000, B00000000, B00000000, B00111111, B11111111, B11000000, B11111111, B110000001, B11100100000, B10000001 B10000001, B11111111, B11111100, B00000000, B00011111, B11111000, B00000111, B11111111, B11111000, B00000000, B00000111, B11111110, B00011111, B11111111, B11111000, B00000000, B00000001, B11111111, B0111100000111, B11111111, B111111111, B11111111, B11110011 B11111111, B11110000, B00000111, B11111000, B00001111, B11111111, B11000000, B00000000, B00000011, B11111100, B00100111, B11111111, B00000000, B00000000, B00000011, B11111111, B00110111, B11111100, B0011111, B1101111000, B00100000001, B1111111000, B00100000001, B111111100 B10000000, B00000000, B11111111, B11001111, B10000000, B11111111, B00000000, B00000000, B01111111,B11111111, B10110001, B11111110, B00000000, B00000000, B00011111, B11111111, B10110111, B11111100, B00000000, B00000000, B00001111, B11111111, B10000111, B11110000, B00000000, B00000000, B00000011, B00000000, B00, B0011111, B11000000, B0011111, B11000000 B11111111, B00000000, B00000000, B00000000, B00000000, B00001111, B11110000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000};
이제이 비트 맵을 표시하려면 다음 코드 줄을 사용해야합니다. 화면의 이전 데이터가 지워지고 새 비트 맵 이미지가 기록되는 위치입니다.
display.clearDisplay (); display.drawBitmap (20, 0, 로고, 48, 48, 1); display.display ();
line display.drawBitmap (20, 0, Logo, 48, 48, 1); 비트 맵 이미지의 위치, 크기 및 색상을 표시합니다. 구문은 다음과 같이 주어질 수 있습니다.
display.drawBitmap (X_Position, Y_Position, 배열 이름, 이미지 길이, 이미지 너비);
이미지의 길이와 너비는 앞에서 말한 것처럼 배열의 처음 두 요소에서 각각 얻을 수 있습니다. 이 코드가 실행되면 아래와 같이 LCD 화면에 비트 맵이 표시됩니다.
아래와 같이 간단한 텍스트를 표시 할 수도 있습니다.
튜토리얼을 이해하고 Nokia 5110 LCD가 Arduino와 인터페이스되기를 바랍니다. 소매에이 그래픽 디스플레이를 사용하면 사소한 그래픽 세부 정보가 필요한 많은 프로젝트를 만들 수 있습니다. 전체 작업은 아래 비디오 에서 찾을 수 있습니다. 이 작업을 수행하는 데 문제가있는 경우 포럼을 사용하여 문제를 게시하거나 아래 댓글 섹션을 사용할 수 있습니다.