아두이노 > 선생님들 FND 디스플레이에 관련하여 질문 드립니다.

TODAY1,000 TOTAL273,947
사이트 이용안내
Login▼/회원가입
포럼 동영상강좌 회원가입


▼ BASIC4MCU 후원업체 최신 정보 ▼

▲ BASIC4MCU 후원업체 최신 정보 ▲

BASIC4MCU | 아두이노 | 아두이노 | 선생님들 FND 디스플레이에 관련하여 질문 드립니다.

페이지 정보

작성자 현태 작성일2018-09-10 11:21 조회202회 댓글0건

본문

	

#include <SoftwareSerial.h>

#include "SevenSegmentExtended.h"

 

const byte PIN_CLK = A4;   // define CLK pin

const byte PIN_DIO = A5;   // define DIO pin

 

char Buffer[50];

int hour,min,second,ip,id,vol,dim,info;

 

SevenSegmentExtended display(PIN_CLK, PIN_DIO);

const unsigned int clockSpeed = 1;

 

void setup() {

  Serial.begin(115200);

  display.begin();

  display.setBacklight(25);

}

 

void loop() {

    int cnt = 0;

    if (Serial.available() < 1) {

    return 0;

  }

  unsigned long start = millis(); 

  while (millis() - start < 100) {

    if (Serial.available() < 1) {

      continue;

    }

    char data = Serial.read();

    if (data == '\n') {

      Buffer[cnt] = '\0';

      break;

    }

    Buffer[cnt++] = data;

  }

   

  while(Serial.available() > 0) {

    Serial.read();

  }

  

  //02,58,38,IP093,ID123,V0,D0,I0 -> 라즈베리 파이를 아두이노 시리얼로 넘어오는 프로토콜입니다. IP와 ID는 임의로 줬습니다. V0, D0, I0는 각각의 버튼을 누를 때 0~3까지 변합니다.

  

  sscanf(Buffer,

        "%d,%d,%d,IP%d,ID%d,V%d,D%d,I%d",

        &hour,&min,&second,&ip,&id,&vol,&dim,&info); // 파싱한 부분입니다.

  

   if (hour < 10) // Print hour value

    {

    Serial.print("0");

    Serial.print(hour);

    }

  else 

    {

    Serial.print(hour);

    }

  Serial.print(",");

 

  if (min < 10) // Print min value

    {

    Serial.print("0");

    Serial.print(min);

    }

  else 

    {

    Serial.print(min);

    }

  Serial.print(",");

 

  if (second < 10) // Print second value

    {

    Serial.print("0");

    Serial.print(second);

    }

  else 

    {

    Serial.print(second);

    }

   

  Serial.print(",IP");

    if (ip < 10) // Print second value

    {

    Serial.print("00");

    Serial.print(ip);

    }

    if (ip < 100)

    {

    Serial.print("0");

    Serial.print(ip);

    }

  else

    {

      Serial.print(ip);

    }

   

  Serial.print(",ID"); // Print ID value

  if (id < 10) // Print second value

    {

    Serial.print("00");

    Serial.print(id);

    }

    if (id < 100)

    {

    Serial.print("0");

    Serial.print(id);

    }

  else

    {

      Serial.print(id);

    }

 

  Serial.print(",V"); // Print Vol value

  Serial.print(vol);

  

  Serial.print(",D"); // Print Dim value

  Serial.print(dim);

  

  Serial.print(",I"); // Print Info value

  Serial.println(info);

 

   

  display.printTime(hour,min, true);  // FND Seven Segment Display에 시간을 표시합니다.

 

switch(dim %4)  //Dimmer setting --> D0~3 값을 읽어 밝기를 조절합니다. 정상작동. 

  {

    case 0:

    display.setBacklight(35);

    break;

    case 1:

    display.setBacklight(100);

    break;

    case 2:

    display.setBacklight(0);

    break;

    case 3:

    display.setBacklight(25);

    break;

  }  

}

 

현재 라즈베리파이에 버튼들을 연동하였고, 파이썬을 돌려서 아두이노 시리얼로 프로토콜을 날리고 있습니다. (각 버튼의 Input은 라즈베리파이에서 감지하여 D0~3, V0~3, I0~3의 값을 파이썬으로 시리얼을 통해 아두이노에게 주고 있습니다. 아두이노에 직접적으로 연결 된 버튼은 없는 상황입니다.)

 

여기서 질문 드리고 싶은게 Switch - Case문을 이용하여 딤머 버튼을 눌렀을 때 D0~3의 값을 인지하고 디스플레이 밝기를 조절하는데는 성공했습니다.

 

하지만 볼륨과 인포 버튼을 눌러 V0~3, I0~3으로 각각 변경하였을 때 FND의 시간 표시를 멈추고 각 값에 원하는 정보를 표시하고 싶은데 잘 안됩니다.

 

ex) 볼륨 값이 V0에서 V1로 바꼈을 때 FND 디스플레이에 "VOL1" 을 약 1초간 표시 한 후 다시 시간 표시.

 

상기의 문제점에 대해 조언 부탁 드립니다.

 

감사합니다.

댓글 0

조회수 202

등록된 댓글이 없습니다.

아두이노HOME > 아두이노 > 전체 목록

아두이노 목록
제목 작성자 작성일 조회
315 아두이노 master님 도와주세요! 새글첨부파일 누멍쓰 18-10-21 13
답변 답변글 답변 : master님 도와주세요! 새글 master 18-10-21 11
313 아두이노 아두이노 드론에 카메라 기능을 추가하고싶어요 새글 호이히우 18-10-20 6
312 아두이노 밑에 두더지잡기 수정 부탁 드린것에 질문 있습니다. 새글 냉냉냥성냥 18-10-20 10
답변 답변글 답변 : 밑에 두더지잡기 수정 부탁 드린것에 질문 있습니다. 댓글[1] 새글 master 18-10-20 12
310 아두이노 아두이노 두더지 잡기 인데 문제가 있어서 수정좀 부탁 드립니다. 댓글[1] 냉냉냥성냥 18-10-20 15
답변 답변글 답변 : 아두이노 두더지 잡기 인데 문제가 있어서 수정좀 부탁 드립니다. master 18-10-20 8
답변 답변글 답변 : 아두이노 두더지 잡기 인데 문제가 있어서 수정좀 부탁 드립니다. 첨부파일 냉냉냥성냥 18-10-20 8
답변 답변글 답변 : 답변 : 아두이노 두더지 잡기 인데 문제가 있어서 수정좀 부탁 드립니다. 댓글[1] master 18-10-20 13
306 아두이노 작동 중인 팬모터를 블루투스와 연결된 앱으로 RPM 조절하는 코드를 추가해야하는데요. RobustWalKeR 18-10-19 11
답변 답변글 답변 : 작동 중인 팬모터를 블루투스와 연결된 앱으로 RPM 조절하는 코드를 추가해야하는데요. master 18-10-19 9
304 아두이노 master님 rc카 적외선센서 추가 질문 해도될까요? ㅠㅠ 윤재 18-10-19 13
답변 답변글 답변 : master님 rc카 적외선센서 추가 질문 해도될까요? ㅠㅠ 댓글[2] master 18-10-19 17
답변 답변글 답변 : 답변 : master님 rc카 적외선센서 추가 질문 해도될까요? ㅠㅠ 댓글[7] 새글 master 10:40 6
301 아두이노 앱인벤터 스크린마다 블루투스 댓글[1] intoo07 18-10-19 18
게시물 검색

Privacy Policy
MCU BASIC ⓒ 2017