[WAT-AK336]기능 실험 키트 – FND 이동

아두이노 보드 FND 4 이동

[WAT-AK336]기능 실험 키트 예제 중 FND를 이동하는 예제입니다.

소스코드

최신 소스코드는 [파일]=>[예제]=>[WhiteAT UNO]=> [AK336] => [05_FNDFlow]  에 있으며
라이브러리는 아두이노 개발환경(https://docs.whiteat.com/?page_id=5449)  을 참조하세요

/*
 [WAT-AK336]기능 실험 키트 예제 중
 FND 를 이동하는 예제 입니다.
 
 [WAT-AK336] 아두이노 기능 실험 키트: https://kit128.com/goods/view?no=336
 
 출처: https://docs.whiteat.com/?p=4552

*/

#include <WAT_Multi.h> 
WMulti tShift = WMulti( 300);
byte fndStatus = 0;

#define pinLatch 4
#define pinClock 7
#define pinData 8
 
/* 1 부터 4 까지의 자리 선택 */
const byte SEGMENT_SELECT[] = {0xF1,0xF2,0xF4,0xF8};
 
// 프로그램 초기화
void setup ()
{
 /* 출력으로 설정 */
 pinMode(pinLatch,OUTPUT);
 pinMode(pinClock,OUTPUT);
 pinMode(pinData,OUTPUT);
}
 
// 계속 실행할 무한 루프
void loop()
{
 TaskShift(&tShift);
 
 switch(fndStatus)
 {
 case 0: WriteCoderToSegment( 0b11111110,0b11111111,0b11111111,0b11111111 ); break;
 case 1: WriteCoderToSegment( 0b11111111,0b11111110,0b11111111,0b11111111 ); break;
 case 2: WriteCoderToSegment( 0b11111111,0b11111111,0b11111110,0b11111111 ); break;
 case 3: WriteCoderToSegment( 0b11111111,0b11111111,0b11111111,0b11111110 ); break;
 case 4: WriteCoderToSegment( 0b11111111,0b11111111,0b11111111,0b11111101 ); break;
 case 5: WriteCoderToSegment( 0b11111111,0b11111111,0b11111111,0b11111011 ); break;
 case 6: WriteCoderToSegment( 0b11111111,0b11111111,0b11111111,0b11110111 ); break;
 case 7: WriteCoderToSegment( 0b11111111,0b11111111,0b11110111,0b11111111 ); break;
 case 8: WriteCoderToSegment( 0b11111111,0b11110111,0b11111111,0b11111111 ); break;
 case 9: WriteCoderToSegment( 0b11110111,0b11111111,0b11111111,0b11111111 ); break;
 case 10: WriteCoderToSegment( 0b11101111,0b11111111,0b11111111,0b11111111 ); break;
 case 11: WriteCoderToSegment( 0b11011111,0b11111111,0b11111111,0b11111111 ); break;
 }
 
}
 
void TaskShift(WMulti * _task )
{
 if(!_task->IsMyTurn()) return;
 if(++fndStatus>11) fndStatus = 0;
}
 
/* 각 자리에 표시 */
void WriteCoderToSegment(byte Value0,byte Value1,byte Value2,byte Value3)
{
 byte SEGMENT_DATA[4] ={Value0,Value1,Value2,Value3};

 
 for(int i=0;i<4;i++)
 {
 // FND를 제어해 주는 HC595의 latch enable
 digitalWrite(pinLatch,LOW);

 // 숫자 모양을 설정
 shiftOut(pinData, pinClock, MSBFIRST, SEGMENT_DATA[i]);
 
 // 자리수 설정
 shiftOut(pinData, pinClock, MSBFIRST, SEGMENT_SELECT[i] );
 // FND를 제어해 주는 HC595의 latch disable
 digitalWrite(pinLatch,HIGH);
 }

}

결과 화면

FND 이 이동합니다.

 

 

 

WAT-AK336 제공 예제(소스코드)

WAT-AK336 보드 아두이노 예제

 

WAT-AK336 보드 엔트리 예제

엔트리 예제는 엔트리 사이트 내 학급 자료실 에서 제공됩니다.

 

 

제품 구매

[WAT-AK336] 아두이노 기능 실험 키트는 https://kit128.com/goods/view?no=336 에서 구매하실 수 있습니다.

 

고객 지원

WAT-AK336 사용 중 궁금한 점이나 예제 추가 요청은 help@kit128.com 또는 help@whiteat.com 메일로 주시면 됩니다.

감사합니다.

 

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다