에듀이노-코딩교육 전문 쇼핑몰 에듀이노-코딩교육 전문 쇼핑몰

학교, 공공기관이라면 후불결제하세요!

 
현재 위치
  1. 게시판
  2. 묻고답하기

묻고답하기

기술문의 게시판입니다.

게시판 상세
제목 기본예제코딩 응용
작성자 CS / 배송 (ip:)
  • 작성일 2019-05-08
  • 추천 추천하기
  • 조회수 20
안녕하세요 에듀이노입니다.
loop() 부분에 도트매트리스의 초기값을 불러오는 방법을 사용하시거나
도트매트리스를 초기화하는 명령어를 사용하시는 방법을 사용하시면 됩니다.
감사합니다.

[ Original Message ]
기본예제를 통해서 저희가 원하는 글자를 넣을 수 있게 된점 감사합니다.
하지만 저희가 시리얼모니터로 1값을 주었을 때 도트매트릭스 led가 켜지고
0값을 주면 글씨가 꺼지는 코드를 하고싶은데 많은 도전을 통해 찾지 못하였습니다.
혹시 아신다면 조언을 받아볼 수 있을까요?
#include "LedControl.h"
LedControl lc=LedControl(13,12,11,4);
// DIN 핀을 12번에 CS 핀을 10번에 CLK핀을 11번에 연결해줌
// (DIN, CLK, CS, 연결할 도트 매트릭스의 개수)

int rec = 5;                                    // rec를 5번 핀으로
int Rin = 4;                                    // Rin을 4번 핀으로
int command;                                    // 시리얼 모니터의 명령을 받아들이는 변수

#define E  { \
    {1, 0, 0, 0, 0, 1, 0, 0}, \
    {1, 0, 0, 0, 0, 1, 0, 0}, \
    {1, 0, 0, 0, 0, 1, 0, 0}, \
    {1, 0, 0, 0, 0, 1, 1, 0}, \
    {1, 0, 0, 0, 0, 1, 0, 0}, \
    {1, 1, 1, 1, 1, 1, 0, 0}, \
    {0, 0, 0, 0, 0, 1, 0, 0}, \
    {0, 0, 0, 0, 0, 1, 0, 0}  \
}
 
#define D { \
    {1, 1, 1, 1, 1, 0, 1, 0},\
    {0, 0, 1, 0, 0, 0, 1, 0},\
    {0, 0, 1, 0, 0, 0, 1, 0},\
    {0, 0, 1, 0, 0, 0, 1, 1},\
    {0, 0, 1, 0, 0, 0, 1, 0},\
    {0, 1, 0, 1, 0, 0, 1, 0},\
    {1, 0, 0, 0, 1, 0, 1, 0},\
    {0, 0, 0, 0, 0, 0, 1, 0},\
}
 
#define I { \
    {0, 0, 1, 0, 0, 0, 0, 0},\
    {0, 0, 1, 0, 0, 0, 0, 0},\
    {0, 0, 1, 1, 1, 1, 1, 0},\
    {0, 0, 0, 0, 0, 0, 0, 0},\
    {0, 1, 1, 1, 1, 1, 1, 1},\
    {0, 0, 0, 0, 0, 0, 0, 0},\
    {0, 0, 1, 0, 0, 0, 0, 0},\   
    {0, 0, 1, 1, 1, 1, 1, 0},\
}
 
#define N { \
    {0, 0, 1, 1, 1, 1, 1, 0},\
    {0, 0, 0, 0, 1, 0, 0, 0},\
    {0, 0, 0, 1, 0, 1, 0, 0},\
    {0, 1, 1, 1, 1, 1, 1, 1},\
    {0, 0, 0, 0, 1, 0, 0, 0},\
    {0, 0, 0, 1, 1, 1, 0, 0},\
    {0, 0, 1, 0, 0, 0, 1, 0},\
    {0, 0, 0, 1, 1, 1, 0, 0},\
}
byte patterns[4][8][8] = { E, D, I, N };   
// 위에서 정의한 led 모양을 patterns에 입력해 주기
 
void setup()
{
  for(int i=0; i<4; i++){              // 도트 매트릭스 0~3번
    lc.shutdown(i,false);           // 디스플레이 초기화
    lc.setIntensity(i,15);             // 도트 매트릭스 밝기 (매트릭스 번호, 밝기) 1~15
    lc.clearDisplay(i);              // led 를 전체 꺼주는 함수
  }
  {
  Serial.begin(9600);                           // 시리얼 통신, 속도는 9600
  pinMode (rec, INPUT);                         // rec를 입력으로
  pinMode (Rin,OUTPUT);                         // Rin을 출력으로
  Serial.println("*********command*********");  // 1. 녹음 10초 2. 재생
  Serial.println("9. record 5sec");
  Serial.println("1. play ");
  }
}
 
void clean(){                       // 전체led를 꺼주는 함수
  for(int i = 0; i = 0; i++)
    lc.clearDisplay(i);// clear screen
}
 
void loop(){
 
  int pattern = 4;
  int row, col, i;
 
    for(i = 0; i < 4; i++){     // 총 4글자 반복
       for (row = 0; row < 8; row++) {    // row 출력
         for (col=0; col < 8; col++){     // col 출력
            if (patterns[i][7 - col][7 - row] == 1)     
// 위의 배열에서 1일때 해당되는 위치 불빛 켜주기
              lc.setLed(i, col, row, true);
            else                           // 위 배열에서 0일때 해당되는 위치 불빛 꺼주기
              lc.setLed(i, col, row, false);
         }
      }
      delay(200);     // 딜레이 500ms
    }
    clean();          // led 전체 꺼주기
    delay(0);       // 딜레기 500ms
    while(Serial.available())
  {                  // 시리얼 통신이 연결되어 있을시   
   
    command = Serial.read();                    // 시리얼 통신으로 한 명령 읽기
   
    switch(command)
    {                             
      case '1':                                // 2 입력 시 녹음된 소리 재생
        Serial.println("play the record!!");
        digitalWrite(Rin,HIGH);                // 재생 중.
        delay(10);
        digitalWrite(Rin,LOW);                 // 녹음된 소리 재생이 끝나면 low로
        break;
    }
  }   
}

게시글 신고하기

신고사유

신고해주신 내용은 쇼핑몰 운영자의 검토 후 내부 운영 정책에 의해 처리가 진행됩니다.

평점 0점
첨부파일
비밀번호 수정 및 삭제하려면 비밀번호를 입력하세요.
댓글 수정

비밀번호 :

수정 취소

/ byte

비밀번호 : 확인 취소

댓글 입력

댓글달기이름 :비밀번호 : 관리자답변보기

확인

/ byte

왼쪽의 문자를 공백없이 입력하세요.(대소문자구분)

에게만 댓글 작성 권한이 있습니다.

댓글 입력

댓글달기이름 :비밀번호 :

확인

/ byte

왼쪽의 문자를 공백없이 입력하세요.(대소문자구분)

에게만 댓글 작성 권한이 있습니다.

«
»