본문 바로가기
아두이노 러닝보드/아두이노 러닝보드 프로그그램설계

도트 매트릭스 디스플레이로 웃는 얼굴 만들기 😊

by 모빌리티키즈 2024. 12. 18.
728x90
반응형

안녕하세요, 여러분! 오늘은 MAX7219 칩을 사용하여 도트 매트릭스 디스플레이에 웃는 얼굴을 표시하는 방법을 소개하려고 합니다. 이 프로젝트는 Arduino 보드의 디지털 핀 3개만 사용하여 도트 매트릭스를 제어할 수 있어 간단하면서도 재미있는 프로젝트입니다.

 

필요한 준비물

  • Arduino nano: 마이크로컨트롤러 보드
  • 8x8 도트 매트릭스 디스플레이: 텍스트나 이미지를 표시할 디스플레이
  • MAX7219 칩: 도트 매트릭스 디스플레이 제어용 칩
  • 점퍼 케이블: 연결용 케이블

회로 연결

먼저, 도트 매트릭스 디스플레이를 MAX7219 칩을 통해 Arduino에 연결합니다. 다음은 각 핀의 연결 방법입니다:

  • DIN 핀을 Arduino 디지털 핀 12에 연결합니다.
  • CLK 핀을 Arduino 디지털 핀 11에 연결합니다.
  • CS 핀을 Arduino 디지털 핀 10에 연결합니다.

예제 코드

다음은 도트 매트릭스 디스플레이에 다양한 얼굴을 표시하는 예제 코드입니다:

 
#include "LedControl.h"
#include "binary.h"

/*
 DIN connects to pin 12
 CLK connects to pin 11
 CS connects to pin 10 
*/
LedControl lc = LedControl(12, 11, 10, 1);

// delay time between faces
unsigned long delaytime = 1000;

// happy face
byte hf[8] = {B00111100, B01000010, B10100101, B10000001, B10100101, B10011001, B01000010, B00111100};
// neutral face
byte nf[8] = {B00111100, B01000010, B10100101, B10000001, B10111101, B10000001, B01000010, B00111100};
// sad face
byte sf[8] = {B00111100, B01000010, B10100101, B10000001, B10011001, B10100101, B01000010, B00111100};

void setup() {
  lc.shutdown(0, false);
  // Set brightness to a medium value
  lc.setIntensity(0, 8);
  // Clear the display
  lc.clearDisplay(0);
}

void drawFaces() {
  // Display sad face
  lc.setRow(0, 0, sf[0]);
  lc.setRow(0, 1, sf[1]);
  lc.setRow(0, 2, sf[2]);
  lc.setRow(0, 3, sf[3]);
  lc.setRow(0, 4, sf[4]);
  lc.setRow(0, 5, sf[5]);
  lc.setRow(0, 6, sf[6]);
  lc.setRow(0, 7, sf[7]);
  delay(delaytime);
  
  // Display neutral face
  lc.setRow(0, 0, nf[0]);
  lc.setRow(0, 1, nf[1]);
  lc.setRow(0, 2, nf[2]);
  lc.setRow(0, 3, nf[3]);
  lc.setRow(0, 4, nf[4]);
  lc.setRow(0, 5, nf[5]);
  lc.setRow(0, 6, nf[6]);
  lc.setRow(0, 7, nf[7]);
  delay(delaytime);
  
  // Display happy face
  lc.setRow(0, 0, hf[0]);
  lc.setRow(0, 1, hf[1]);
  lc.setRow(0, 2, hf[2]);
  lc.setRow(0, 3, hf[3]);
  lc.setRow(0, 4, hf[4]);
  lc.setRow(0, 5, hf[5]);
  lc.setRow(0, 6, hf[6]);
  lc.setRow(0, 7, hf[7]);
  delay(delaytime);
}

void loop() {
  drawFaces();
}

 

결론

이번 프로젝트에서는 MAX7219 칩을 사용하여 8x8 도트 매트릭스 디스플레이에 웃는 얼굴, 중립적인 얼굴, 슬픈 얼굴을 표시하는 방법을 배웠습니다. 이 프로젝트를 통해 도트 매트릭스 디스플레이와 MAX7219 칩의 기본 사용법을 익힐 수 있습니다. 다양한 얼굴을 구현하여 디스플레이의 가능성을 탐구해 보세요! 프로젝트 진행 중 궁금한 점이 있으면 언제든지 문의해 주세요.

이 블로그 포스트가 여러분의 창의적인 프로젝트에 도움이 되길 바랍니다. 다양한 가능성을 탐구하며 즐거운 시간을 보내세요! 🎉✨

728x90
반응형