반응형

아두이노 메가 2560 구입하자마자 1주일동안 갖고논거

 

예제를 수정해서 여러 기능을 테스트 중

 

 

처음 시작 시 암호 입력 화면

버튼 배열을 다시하면서 버튼 그리기, 터치 처리, 글자 입력하는 연습

암호 입력 후 Enter 누르면 다음 화면으로 이동

 

둥근 네모 그리는 법   
myGLCD.setColor(0, 0, 255); // 색상 설정, RGB값 0~255
myGLCD.fillRoundRect (X좌상, Y좌상, X우하, Y우하); // 색칠된 둥근 네모 그리기, 픽셀값
myGLCD.setColor(255, 255, 255); // 색상 설정
myGLCD.drawRoundRect (X좌상, Y좌상, X우하, Y우하); // 둥근 네모 테두리 그리기
myGLCD.printNumI(int 숫자, X좌표, Y좌표); // 숫자 표시

 

 

전압 측정 화면

 

확대 버튼 *을 누르면 Y축 확대 됨

 

 

오프셋 Dn 버튼을 누르면 Y축 내려 감

 

 

X축을 반복하면서 Y값 갱신

전압 기준선은 전체를 그리면 갱신 속도가 느리므로 현재 X축에 해당하는 부분만 점으로 찍음

drawLine -> drawPixel

 

목록을 누를때마다 표시, 숨기기

 

테스트 결과

같은 내용은 여러번 그리면 처리속도가 느려지므로 바뀌는 부분만 그리도록 코딩해야함

상하단 정보 표시줄, 오른쪽 버튼은 해당 부분 내용이 바뀔 때에만 갱신 됨

 

RGB값으로 변환할 때

unsigned long AI_Color[5] = {0xFF0000, 0x00FF00, 0x0000FF, 0xFFFF00, 0x00FFFF};

myGLCD.setColor((unsigned char)(AI_Color[i] >> 16) & 0xFF, (unsigned char)(AI_Color[i] >> 8) & 0xFF, (unsigned char)(AI_Color[i]) & 0xFF);

RGB값은 0~255값이므로 시프트 후에는 마스킹 전에 (unsigned char)로 바꿔서 상위 비트를 지워야함...

0x0000FF & 0xFF 결과값이 0이나 1이 나오므로 0xFF & 0xFF 처럼하는거...

 

 

 

반응형

관련글