2주차 버튼 제어하기(블록코딩)

아두위키 : Arduwiki
ArduWiki (토론 | 기여)님의 2024년 7월 12일 (금) 16:54 판
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

1. 아두이노 디지털 핀

아두이노 디지털 입출력 pin은 보드의 digital pin 0 ~ 13을 사용할 수 있습니다. 0, 1번 pin은 컴퓨터와 아두이노가 통신할 때 주로 사용하기 때문에 우리는 2 ~ 13 핀을 사용하여 디지털 입출력을 사용할 수 있습니다.

저번 시간에는 디지털 출력(digitalWrite)를 사용해보았습니다. 이번 시간에는 디지털 출력(digitalRead)를 사용해봅시다.

3. 버튼

택트 스위치(Tact Switch)는 디지털 핀에 연결하여 입력 신호로 활용 가능합니다.

3-1. 비교 연산자

비교 연산자(<, >, , =)는 두 개의 값을 비교하는 연산자입니다. 아두이노에서 결과는 [참] 또는 [거짓]으로 나타납니다.

왼쪽 값과 오른쪽 값이 동일하다.
왼쪽 값이 오른쪽 값보다 크다.
왼쪽 값이 오른쪽 값보다 작다.


3-2. 논리 연산자

논리 연산자(그리고, 또는, 부정)은 참과 거짓을 연산하기 위해 사용됩니다.

[ ] 그리고 [ ]
[참] 그리고 [참]
[참] 그리고 [거짓] 거짓
[거짓] 그리고 [참] 거짓
[거짓] 그리고 [거짓] 거짓


[ ] 또는 [ ]
[참] 또는 [참]
[참] 또는 [거짓]
[거짓] 또는 [참]
[거짓] 또는 [거짓] 거짓


[ ] 의 부정
[참]의 부정 거짓
[거짓]의 부정


3-3. 조건 블록

조건 블록 "만약 [ ] 이(가) 참이면" 블록은 조건이 "참"인 경우 작성한 코드가 수행되고 "거짓"인 경우 수행되지 않습니다.

"아니면" 안에 작성한 코드는 만약 [ ] 블록의 조건이 "참"인 경우에는 실행되지 않고 "거짓"인 경우 수행됩니다.



3-4. 버튼 회로도

3-5. 확장 기능 사용하기

먼저 버튼을 이용하기 위해 아래의 "확장"을 눌러봅시다.

검색창에 "input"라고 작성하여 [INPUT_PULLUP]라고 하는 확장 기능을 추가해봅시다.

버튼이 눌리게 되면 digital port 함수에서 [거짓]의 값이, 버튼이 눌리지 않을 때는 "참"의 값이 반환됩니다.

3-6. 코드 작성

버튼을 이용해 버튼이 눌리면 아두이노의 LED가 켜지고 버튼이 눌리지 않으면 아두이노의 LED가 꺼지는 코드를 작성해봅시다.

TIP) 아두이노에는 [L]라고 하는 알파벳이 적힌 LED가 있습니다. 이 LED는 디지털 13번핀을 제어하면 켜고 끌 수 있습니다. 그래서 LED를 연결하지 않고도 버튼이 작동하는지 확인할 수 있답니다!

단, [L]의 위치는 아두이노마다 조금씩 다를 수 있습니다.

실습1. 버튼을 눌러 LED 켜기1

버튼이 눌리는 동안 LED가 켜지고 버튼에서 손을 떼면 LED가 꺼질 수 있도록 코드를 작성해봅시다.

실습2. 버튼을 눌러 LED 켜기2

다양한 변수, 조건문을 사용하여 버튼을 한 번 누르면 LED가 켜지고 다시 누르면 LED가 꺼질 수 있도록 코드를 작성해봅시다.

실습3. 버튼을 눌러 LED 여러개 제어하기

다양한 변수, 조건문을 사용하여 버튼을 누를 때마다 현재 LED는 꺼지고 다음 LED가 켜질 수 있도록 코드를 작성해봅시다.

4. 실습 코드 참고하기

1. 실습 코드) 버튼을 눌러 LED 켜기1

2. 실습 코드) 버튼을 눌러 LED 켜기2

3. 실습 코드) 버튼을 눌러 LED 여러개 제어하기