콘텐츠로 이동

상태 기계 - 여러 모드를 가진 시스템

🎯 이 장에서 배우는 것

  • [ ] 상태 기계의 개념을 설명할 수 있다
  • [ ] 버튼으로 모드를 전환하는 프로그램을 작성할 수 있다

⏱️ 예상 학습 시간: 약 15분


📚 핵심 개념

개념: 상태 기계(State Machine)

"상태 기계는 마치 신호등과 같아요"

신호등은 빨강 → 초록 → 노랑 → 빨강으로 정해진 규칙에 따라 바뀌죠. 현재 상태에 따라 다음 행동이 달라지는 시스템입니다.

stateDiagram-v2 [*] --> 측정모드 측정모드 --> 경보모드: 버튼 경보모드 --> 절전모드: 버튼 절전모드 --> 측정모드: 버튼

🔨 따라하기

Step 1: 상태 변수 만들기

코드:

mode = 0  # 0:측정, 1:경보, 2:절전

while True:
    if button_a.was_pressed():
        mode = (mode + 1) % 3  # 0→1→2→0 순환

Step 2: 상태별 동작 추가

코드:

if mode == 0:
    display.show("M")  # 측정 모드
elif mode == 1:
    display.show("A")  # 경보 모드
else:
    display.clear()    # 절전 모드


📝 전체 코드

from microbit import *

mode = 0  # 현재 상태

while True:
    if button_a.was_pressed():
        mode = (mode + 1) % 3

    if mode == 0:
        display.show("M")
    elif mode == 1:
        display.show("A")
    else:
        display.clear()

    sleep(100)

⚠️ 주의할 점

% 3 연산 이해하기 - 0 % 3 = 0, 1 % 3 = 1, 2 % 3 = 2, 3 % 3 = 0 - 자동으로 0~2 범위를 순환합니다!


✅ 점검하기

  1. 상태 기계가 필요한 이유는?
정답 확인현재 상태에 따라 다르게 동작해야 할 때 사용합니다.
  1. mode = (mode + 1) % 3의 역할은?
정답 확인mode를 0→1→2→0으로 순환시킵니다.

🔗 다음 장 미리보기

데이터 시각화에서 측정값을 그래프로 보여주는 방법을 배워요! 📊