CAFE

한국직업능력교육원

AIOT 10기 종합 문제 풀이

작성자송명규|작성시간26.06.13|조회수23 목록 댓글 0

 

본 문제는 하드웨어 디바이스는 모두 멀티펑션 보드 위주로 했습니다.

여기에 i2C LCD, I2C OLED를 추가 했습니다.

 

1. 기능 스위치 

SW1 = mode key  == 평상시 run / stop와 상관없이 무조건 동작해야 함

  M1 : 프리셋 업 카운터(+1 식 증가)

  M2 : 프리셋 다운카운터(-1식 감소)

  M3 : 프리셋 짝수 업 카운터(짝수값으로 증가)

  M4 : 프리샛 홀수 다운 카운터(홀수 값으로 감소)

  M5 : 프리셋 시계("초"만 설정, "분"은 현재값 표시하던지 초기는 0으로 표시하던지)  

  M6 : 프리셋 구구단("단" 만 설정 가능하도록 )

 

SW2 : Run / Stop 

= 평상시 동작 = Run / Stop 상태와 상관없이 평상시 항상 동작해야 함

 

SW3 : 프리셋 업 카운터 SW Key  

 = Stop 상태에서만 동작해야 함

 

 참고사항

  - 카운터 값 : 초기: 1234,  최대값 : 9999

  - 시계는 분, 초만 표시

   -  동작시 현재 설정된 프리셋 값 다음 값부터 진행한다.   

  - LED는 멀티펑션보드에 있는 4bit LED를 사용하며, 모드별로 다르게 동작한다.

     아래 LED 부분 참고하세요.

  - 본 문제는 멀티펑션보드 위주로 했습니다. 여기에 I2C LCD, I2C OLED만

    추가 한 겁니다.

 

 

2.  FND 표시 사항

2-1 모드 정보 표시 == SW1 Mode SW를 누를때 마다 표시

     x1000 자리 : 영문자 P표시

    x100 자리 :  영문자 F표시

    x10 자리  : 영문자 L표시

    x1 자리  :  모드정보 표시 == 1 - 6 가지 표시

 

2-2 카운터 및 시계, 구구단 Data 값 표시  

      1). 모드 1-4 : 

          동작시 : 현재 진행중인 카운터값 표시

          정지시 : 프리셋 셋팅값 표시 

                       전체자리(x1000, x100, x10, x1) 카운터 값 설정시 점멸되면서 표시한고

                       일정 시간이 지나도록 key 입력이 없으면 점멸을 멈추고 현재 설정된

                       프리셋 값을 표시한다.                       

                       이때, 복귀시 만약 동작 신호가 들어오면 점멸을 멈추고 바로 현재

                       진행되는 카운터값을 표시한다.   

 

      2). 모드 5 : 

          정지시 :  프리샛 "초" 설정값을 표시 

                      x10, x1 자리만 카운터 값 설정시 점멸되면서 표시한고

                      일정 시간이 지나도록 key 입력이 없으면 점멸을 멈추고 현재

                      설정된 프리셋 값을 표시한다.

                      이때, 복귀시 만약 동작 신호가 들어오면 점멸을 멈추고 바로

                      현재 진행되는 카운터를 표시한다. 

          동작시 :  시계값인 "분" 하고 "초" 를 표시한다.

                       초 1자리(x1) 하고 분 1자리(x100) DP 단자가 1초 간격으로 서로

                       교대로 왕복하며 교차 표시한다.

 

     3). 모드 6 :

          정지시 :  "단"(x1000) 자리만 설정가능하도록 한다.

                         이때 "단" 자리인 (x1000)을 "단" 값 설정시 점멸되면서 표시한고

                         일정 시간이 지나도록 SW key 입력이 없으면 점멸을 멈추고 현재

                         설정된 프리셋 값을 표시한다.

                         이때, 복귀시 만약 동작 신호가 들어오면 점멸을 멈추고 바로 현재

                         진행되는 카운터값을 표시한다.     

           동작시 :  구구단 을 표시한다.          

                         x1000 == 단 값 표시

                         x100 == 각 단에 해당되는 1-9 데이터 값 표시

                         x10, x1 == 연산된 결과 값

                         DP 단자 표시 : x1000 자리 DP와 x100자리 DP 단자가 서로 교대로

                                                왕복하며 교차되도록 구구단이 1식 증가시마다

                                                표시한다.

 

 

3. I2C LCD 표시

  1).  1 Line : 

            "현재 모드" 및 "시작", "정지" 상태를 표시한다.

  2) .  2 Line : 

            모드 1 - 4 : 프리셋 설정값을 표시한다. 

            모드 5 : 현재 진행중인 시계 표시

            모드 6 :  구구단 표시

 

 

4. OLED

       1 Line : 

            평상시 영문으로 현재 모드를 표시한다 (setTextSize(3)으로 설정, 글자확대)

       2 Line :  

            정지시

                  모드 1-4 ==  현재 설정한 프리셋 카운터 값을 표시한다.

                  모드 5 ==  설정 한 초 값 표시

                  모드 6 ==  설정한 단 값 표시                 

            동작시 :

                  모드 1- 4 :  현재 카운터 값 표시

                  모드 5 : 현재 시계 값 표시

                  모드 6 : 구구단 값 표시 

 

 

5.  시리얼 통신( UART) 송신(TX) 

     1).  정지시 

              모드 1- 4  :  현재 모드하고 시작, 정지 상태값 , 설정한 프리셋 카운터 값

                                 을  PC로 전송한다.

              모드 5 :  현재 모드하고 시작, 정지 상태값 , 설정한 프리셋 "초" 값, 을

                            PC로 전송 한다.  이때  "분"  값은 전 상태값을 전송한다.

              모드 6 : 현재 모드하고 시작, 정지 상태값 , 설정한 프리셋 "단" 값, 을 PC로

                           전송한다.

      2). 동작시

                모드 1-4 :  현재 모드하고 시작, 정지 상태값, 현재 카운터 값을 PC로

                                 전송한다.  (1식 증가나 감소시 마다 전송)

                모드 5:  현재 모드하고 시작, 정지 상태값, 현재 시간 값을 PC로 전송한다.

                              (1 초간격으로 전송)

                모드 6 :  현재 모드하고 시작, 정지 상태값,  구구단 값을 PC로 전송한다.

                              ( 1식 증 가시 마다)

 

6. LED 

  - Mode 1-4 :  MAP 함수사용 카운터 값을 표시한다.

                        (4Bit LED임을 감안하여 프로그램 할것)

  - Mode 5 :  "초" Sec일자리만(0-9) LED에 표시한다. 

                     예를들어 20번대이면 20-29를 십자리 2를 무시한 상태에서 일자리 0-9만

                     표시한다.    

    - Mode 6 :  구구단은 각단의 결과값을 LED에 표시한다.

    

 

7.  시리얼 통신 명령어 수신 제어처리   

   1).  공통사항 : 

      - 통신속도는 보오레이트는 57600BPS로 한다.

      - 모드설정은 평상시 수시로 한다 

        즉 동작시에도, 정지시에도 통신으로 수시로 설정이 가능하다. 

    

   2).  모드설정 명령어 :

          Mode X    

                    여기서 X는 모드 번호를 의미한다. 

                     ex)  Mode 5 == Mode 5 설정 명령어

 

    3).  Run / Stop 명령어 :

              Run :   시작 명령어

              Stop :  정지 명령어

   

    4).  프리셋 설정 명령어

         - 본 프리셋 기능 통신 명령어는 정지시에만 동작한다.

         - Run시에는 본 프리셋 명령어는 동작하지(적용되지) 않는다,.

          - 해당모드 기능 변수나 FND, LCD, 해당 display에도 통신명령 접수 및 

            설정과 동시에 표시되고 업 그레이드 되어야 한다. 

 

          4-1.  모드1 - 4  == 프리셋 카운터 설정 

               - PreSet xxxx  :  프리셋 카운터 설정 명령어

                                       xxxx = 설정값 정수 data  

                                       ex) PreSet 5678  == 카운트 초기 변수값이 5678로 설정

                                                                      되어야 함

                                       FND나 해당 표시장치에도 동시에 표시되어야 한다. 

 

           4-2.  모드 5   ==  시계 설정

                  - Time xx:xx  :  분, 초 설정 명령어

                                            xx : xx  =  분 : 초 설정 정수값

                                            ex) Time 35:27 ==  각 분하고 초 변수 초기값이

                                                                             35분 27초로 설정되어야 함  

                                                                             FND나 해당 표시장치에도

                                                                             동시에  표시되어야 한다. 

 

          4-3 모드 6  == 구구단 설정 명령어

               -  GuGuDan :  x * z  

                                       x  : 단 표시 (1-9 정수)           

                                       *  :  곱하기 기호

                                       z :  각단에 해당된 1-9 정수 

                                 

              

           

 

    

다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
맨위로

카페 검색

카페 검색어 입력폼