에듀이노-아두이노 전문 교육쇼핑몰 에듀이노-코딩교육 전문 쇼핑몰
뒤로가기

묻고답하기

제목

기본예제코딩 응용

작성자 CS / 배송(ip:)

작성일 2019-05-08

조회 20

평점 0점  

추천 추천하기

내용
안녕하세요 에듀이노입니다.
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;
    }
  }   
}

첨부파일

비밀번호
수정

비밀번호 입력후 수정 혹은 삭제해주세요.

댓글목록

등록된 댓글이 없습니다.

댓글 수정

이름

비밀번호

내용

/ byte

수정 취소

비밀번호 :

확인 취소

댓글 입력

이름

비밀번호

내용

/ byte

평점

왼쪽의 문자를 공백없이 입력하세요.

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

댓글 입력

이름

비밀번호

내용

/ byte

왼쪽의 문자를 공백없이 입력하세요.

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

관련 글 보기

고객센터

    1670-9626

  • 팩스.063-902-6678
  • 이메일.eduino@robodyne.co.kr
  • Kakao. 에듀이노
  • 운영시간 : AM 10:00 ~ PM 16:30
  • 점심시간 : PM 12:00 - PM 13:00 토/일/공휴일 휴무
  • 고객센터 연결하기
입금계좌
  • 예금주: (주)로보다인시스템
  • 국민. 754801-01-760296
  • 농협. 301-0234-1423-01
  • IBK기업은행. 506-080015-01-016
배송 안내
  • 배송 방법 : 택배
  • 배송 지역 : 전국지역
  • 배송 비용 : 조건부 무료 : 주문 금액 100,000원 미만일 때 배송비 3,000원을 추가합니다.
  • 배송 기간 : 1일 ~ 2일
  • 배송 안내 :
    - 제주도, 산간벽지나 도서지방은 별도의 추가금액을 지불하셔야 하는 경우가 있습니다.
    고객님께서 주문하신 상품은 입금 확인후 배송해 드립니다. 다만, 상품종류에 따라서 상품의 배송이 다소 지연될 수 있습니다.
교환/반품 안내
교환 및 반품이 가능한 경우
- 상품을 공급 받으신 날로부터 7일이내 단, 가전제품의
  경우 포장을 개봉하였거나 포장이 훼손되어 상품가치가 상실된 경우에는 교환/반품이 불가능합니다.
- 공급받으신 상품 및 용역의 내용이 표시.광고 내용과
  다르거나 다르게 이행된 경우에는 공급받은 날로부터 3월이내, 그사실을 알게 된 날로부터 30일이내

교환 및 반품이 불가능한 경우
- 고객님의 책임 있는 사유로 상품등이 멸실 또는 훼손된 경우. 단, 상품의 내용을 확인하기 위하여
  포장 등을 훼손한 경우는 제외
- 포장을 개봉하였거나 포장이 훼손되어 상품가치가 상실된 경우
  (예 : 가전제품, 식품, 음반 등, 단 액정화면이 부착된 노트북, LCD모니터, 디지털 카메라 등의 불량화소에
  따른 반품/교환은 제조사 기준에 따릅니다.)
- 고객님의 사용 또는 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우 단, 화장품등의 경우 시용제품을
  제공한 경우에 한 합니다.
- 시간의 경과에 의하여 재판매가 곤란할 정도로 상품등의 가치가 현저히 감소한 경우
- 복제가 가능한 상품등의 포장을 훼손한 경우
  (자세한 내용은 고객만족센터 1:1 E-MAIL상담을 이용해 주시기 바랍니다.)

※ 고객님의 마음이 바뀌어 교환, 반품을 하실 경우 상품반송 비용은 고객님께서 부담하셔야 합니다.
  (색상 교환, 사이즈 교환 등 포함)
«
»