목표
여러 개의 LED를 복잡한 패턴으로 점멸하는 예제입니다.
대시보드의 버튼 위젯을 누르면 아래의 과정을 순서대로 3회 반복합니다.
- 초록LED를 1초간격으로 점멸 3회 반복
- 노랑LED를 2초간격으로 점멸 2회 반복
- 빨강LED를 3초간격으로 점멸 1회 반복
하드웨어
부품
부품 | 갯수 |
---|---|
초록 LED | 1 |
노랑 LED | 1 |
빨강 LED | 1 |
220Ω 저항 ¹ | 3 |
¹ 저항의 용량 선정 방법은 여기를 참고합니다.
연결
아래의 부품들을 가로 방향으로 서로 연결해줍니다.
부품1 | 부품2 | GPIO |
---|---|---|
초록 LED + ¹ | | 23 |
초록LED – | 220Ω 저항 | GND |
노랑 LED + ¹ | | 24 |
노랑LED – | 220Ω 저항 | GND |
빨강 LED + ¹ | | 25 |
빨강LED – | 220Ω 저항 | GND |
¹ 임의의 GPIO핀에 연결할 수 있습니다.
I/O 장치
LED 3개를 I/O장치에 추가합니다.
변수
대시보드 버튼 위젯에 연결할 변수를 추가합니다.
- “버튼 누름” (디지털)
로직
위젯 버튼을 누르는 순간 정해진 패턴대로 각 LED를 깜빡입니다. 동작그룹을 사용하면 특정 동작을 횟수만큼 반복할 수 있습니다. 이를 알고리즘 블록으로 나타내면 아래와 같습니다.
[로직]
로직을 추가합니다. 실행주기는 기본값을 사용합니다.
[제어]
제어를 추가합니다. 모든 설정은 기본값을 사용합니다.
[조건] 버튼을 누르는 순간
사용자가 대시보드의 버튼 위젯을 클릭하면 위젯에 연결된 변수의 값이 true가 됩니다. “버튼 누름” 변수의 값이 false에서 true가 되는 순간을 감지하는 조건을 추가합니다.
- 타입: 비교
- 변수선택: “버튼 누름” 변수 선택
- 연산자: = (같다)
- 값: true
- 조건옵션: 참인 순간
[동작그룹] 3회 반복
동작그룹에 포함된 동작은 횟수 또는 조건만큼 반복 실행됩니다. 전체 과정을 3회 반복해야 하므로 동작그룹을 추가합니다.
- 실행옵션: 설정 횟수만큼 실행
- 값: 3
[동작그룹] 녹색 LED 3회 반복
녹색 LED의 점멸을 3회 반복해야 하므로, 앞서 생성한 동작그룹 안에 녹색 LED 반복을 위한 동작그룹을 추가합니다.
- 실행옵션: 설정 횟수만큼 실행
- 값: 3
[동작] 녹색 LED를 켠다
녹색 LED에 true 를 쓰는 동작을 추가합니다.
- 타입: I/O장치
- 장치선택: 녹색LED
- 명령: WRITE_PIN
- 값: true
[동작] 1초를 기다린다
동작을 추가합니다.
- 타입: 시간지연
- 값: 0h 0m 1s 0ms
[동작] 녹색 LED를 끈다
녹색LED에 false 를 쓰는 동작을 추가합니다.
- 타입: I/O장치
- 장치선택: 녹색LED
- 명령: WRITE_PIN
- 값: false
[동작] 1초를 기다린다.
동작을 추가합니다.
- 타입: 시간지연
- 값: 0h 0m 1s 0ms
노랑, 빨강 LED에 대해서도 동일하게 동작그룹과 동작을 추가합니다.
대시보드
대시보드를 생성합니다.
쓰기 위젯을 생성합니다.
- 변수: “버튼 누름”
- 타입: 푸시버튼