안녕하세요 고군입니다
이번 시간에는 아두이노를 사용한 디지털 입력에 대해 알아 보겠습니다.
▶ 풀다운(Pull-Down) 저항이 연결된 버튼 입력
그림 1. D2에 택트 스위치와 저항을, D13에 정항과 LED를 연결한 배선도와 회로도, 스위치를 누르는 동안에만 LED가 커진다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | //버튼을 연결한 핀 번호 const int buttonPin = 2; //LED를 연결한 핀 번호 const int ledPin = 13; //버튼의 상태를 나타내는 변수 int buttonState = 0; void setup() { //LED에 연결한 핀의 모드를 출력으로 설정 pinMode(ledPin, OUTPUT); //버튼에 연결한 핀의 모드를 입력으로 설정 pinMode(buttonPin, INPUT); } void loop() { //버튼에 연결한 핀의 상태를 읽는다. buttonState = digitalRead(buttonPin); //버튼상태가 HIGH면 if (buttonState == HIGH) { digitalWrite(ledPin, HIGH); } //그렇지 않으면(=버튼 상태가 LOW면) else { //LED에 연결한 핀의 값을 LOW로 설정하고 LED를 끈다. digitalWrite(ledPin, LOW); } } | cs |
그림2. 택트 스위치의 저항을 제거하고, D13에 저항과 LED를 연결한 배선도와 회로도, 스위치를 누르는 동안에만 LED가 커진다.
그림3. D2에 스위치와 풀업용 저항을 연결하고, D13에 저항과 LED를 연결한 배선도와 회로도
그림4. D2에 스위치와 풀다운용 저항을 연결하고, D13에 저항과 LED를 +5V에 연결한 배선도와 회로도
▶ 함수 설명
● pinMode
void pinMode(uint8_t pin, uint8_t mode) 매개변수 pin: 설정하고자 하는 핀 번호 mode: INPUT, OUTPUT, INPUT_PULLUP 중 하나 반환값: 없음 |
pinMode 함수는 지정한 핀이 입력 또는 출력으로 동작하도록 설정한다. mode에 INPUT_PULLUP을 지정하면 내부 풀업 저항을 사용하도록 설정되며, mode에 INPUT을 지정하면 내부 풀업 저항이 사용되지 않는다. 아날로그 입력 핀도 디지털 입력 핀으로 사용될 수 있으며, 이때 아날로그 입력 핀은 A0=14, A1=15등으로 정의되어 있어 A0, A1 등으로 참조 할 수도 있고 14, 15번으로 등으로 참조할 수도 있다.
● digitalWrite
void digitalWrite(uint8_t pin, uint8_t value) 매개변수 pin: 설정하고자 하는 핀 번호 value: High 또는 Low 반환값: 없음 |
출력으로 설정한 디지철 핀에 HIGH 또는 LOW 값을 출력한다. 디지털 핀이 pinMode함수로 OUTPUT으로 설정된 경우 HIGH는 5V를, Low의 경우 0V(ground)을 출력한다. 핀이 입력으로 설정된 경우 digitalWrite 함수로 HIGH 값을 출력하면 20k옴 내부 풀업 저항이 연결되며, Low 값을 출력하면 풀업 저항이 연결이 해제된다.
'아두이노로 장난하기' 카테고리의 다른 글
아두이노로 LED 매트릭스 표시하기 (0) | 2018.03.06 |
---|---|
아두이노 기초지식_아날로그 입력/출력 (0) | 2018.03.05 |
아두이노 기초지식_스케치의 기본 구조 (0) | 2018.03.04 |
아두이노 기초지식_전자회로 (0) | 2018.02.28 |
아두이노 IDE 작동확인 하기 (0) | 2018.02.28 |