극한의 아두이노 DIY생활 - 곡률측정기16
안녕하세요 Jimae입니다.
스위치의 눌림으로 인터페이스를 조정하는대 스위치가 BACK이라는 속성을 가질때
즉 아무것도 선택을 안할때의 동작입니다.
if(SwitchStateRead() == BACK)
{
LCDSelect(RotarySelectRead());
DistanceCalculationStop();
CurvatureCalculationStop();
RotaryLightCountStop();
LightOff();
}
말그대로 레이저의 거리측정을 멈추는 함수도 사용하고 곡률측정도 멈춥니다.
또한 조명 LED의 사용도 멈추고 그에관한 로터리 밝기조절 기능도 꺼버립니다.
이런상태에서 동작할것은 LCDSelect(RotarySelectRead()); 함수밖에없어요.
이함수는 LCD를 주기적으로 다시 그려주면서 선택하는 화면을 바꿔주는 역활을 합니다.
화면 구성에대한 사진이 없내요.
String Function[LINE_LENGTH] = {
"1.Curvature ",
"2.Distance ",
"3.Wind Speed ",
"4.Illuminance ",
"5.Light " };
LCD 의 화면구성은 위와 같이 구성되어있는대
1번에는 곡률
2번에는 거리
3번에는 풍속
4번에는 조도
5번에는 조명
이렇게 구성되어있습니다.
void LCDSelect(unsigned char selectLine)
{
String screenBuffer[LINE_LENGTH];
if(selectLine > LINE_LENGTH && selectLine < 1) return; // 1~4 사이 데이터
for(unsigned char num1 = 0; num1 < LINE_LENGTH; num1++)
{
if((selectLine - 1) == num1) screenBuffer[num1] = '>' + Function[num1]; // selectLine 현재 배열의 주소값으로 계산 하기 때문에 -1
else screenBuffer[num1] = ' ' + Function[num1];
}
if(screenNumber == 1 && selectLine >= 4) screenNumber = 2;
else if(screenNumber == 2 && selectLine == 1) screenNumber = 1;
else if(screenNumber == 2 && selectLine == 5) screenNumber = 3;
else if(screenNumber == 3 && selectLine <= 2) screenNumber = 2;
if(screenNumber == 1) plusAdd = 0;
else if(screenNumber == 2) plusAdd = 1;
else plusAdd = 2;
for(unsigned char num2 = 0; num2 < 3; num2++)
{
LCDScreen[num2] = screenBuffer[num2 + plusAdd];
}
LCDdrawing();
LCDclear();
}
이것의 역활은
String Function[LINE_LENGTH] = {
"1.Curvature ",
"2.Distance ",
"3.Wind Speed ",
"4.Illuminance ",
"5.Light " };
이 배열을 컨트롤 하여 적절하게 화면을 구성해서 LCD 화면으로 출력해주는 역활을 합니다.
핵심은 screenBuffer 변수에 LCD에 쓸 데이터를 저장해놓았다 선택된 화면에 따라서 LCD 데이터를 적절하게 그려주는 역활을 하고있어요.
이부분에 대해서 설명 다시 다음 부터 이어서 하도록 하겠습니다.
다들 좋은하루 되세요.
극한의 아두이노 DIY생활 - 곡률측정기1
극한의 아두이노 DIY생활 - 곡률측정기2
극한의 아두이노 DIY생활 - 곡률측정기3
극한의 아두이노 DIY생활 - 곡률측정기4
극한의 아두이노 DIY생활 - 곡률측정기5
극한의 아두이노 DIY생활 - 곡률측정기6
극한의 아두이노 DIY생활 - 곡률측정기7
극한의 아두이노 DIY생활 - 곡률측정기8
극한의 아두이노 DIY생활 - 곡률측정기9
극한의 아두이노 DIY생활 - 곡률측정기10
극한의 아두이노 DIY생활 - 곡률측정기11
극한의 아두이노 DIY생활 - 곡률측정기12
극한의 아두이노 DIY생활 - 곡률측정기13
극한의 아두이노 DIY생활 - 곡률측정기14
극한의 아두이노 DIY생활 - 곡률측정기15
[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.