상태 기계 - 여러 모드를 가진 시스템¶
🎯 이 장에서 배우는 것¶
- [ ] 상태 기계의 개념을 설명할 수 있다
- [ ] 버튼으로 모드를 전환하는 프로그램을 작성할 수 있다
⏱️ 예상 학습 시간: 약 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 범위를 순환합니다!
✅ 점검하기¶
- 상태 기계가 필요한 이유는?
정답 확인
현재 상태에 따라 다르게 동작해야 할 때 사용합니다.mode = (mode + 1) % 3의 역할은?
정답 확인
mode를 0→1→2→0으로 순환시킵니다.🔗 다음 장 미리보기¶
데이터 시각화에서 측정값을 그래프로 보여주는 방법을 배워요! 📊