코코아팹은 누구나 창의적 아이디어를 현실로 만들어 낼 수 있도록
만들고, 공유하고, 배울 수 있는 터전이
되고자 합니다.
아이디와 비밀번호를 잊으셨나요?아이디 / 비밀번호 찾기
코코아팹 회원이 아니신가요? 회원가입
2014-08-04 08:56:26
if문은 모든 기본적인 프로그래밍 제어구조에서 사용되는 구문으로 가장 기초적인 문법중의 하나이면서 가장 많이 쓰이는 문법중 하나이다.
if문의 역할은 어떤 조건이 주어졌을 때 그 조건이 참인지 거짓인지에 따라 각각 다른 명령문을 수행할 수 있게 도와주는 분기의 역할을 한다.
if문의 구조는 다음과 같이 작성한다.
if (조건) { // 조건이 참일때 실행되는 명령어들 }
위 구문은 가장 기초적인 if문 구조로서 하나의조건에 대해 참거짓을 판별한 다음 그 참거짓 유무에 따라 블록안의 구문이 실행될지 실행되지 않을지가 결정된다.
if (조건) { // 조건이 참일때 실행되는 명령어들 } else { // 조건이 거짓일때 실행되는 명령어들 }
위 구문은 if-else문이라고도 불리며 if문에서 else문을 추가한 구조이다. else문은 if문이 실행되지 않을시에 반드시 실행되는 블록으로 조건이 참일경우에는 if문이 반드시 실행되고 조건이 거짓일 경우에는 else문이 반드시 실행된다.
if (조건) { // 조건이 참일때 실행되는 명령어들 } else if (또 다른 조건) { // 처음 주어진 조건은 거짓이지만 // 두 번째 주어진 또 다른 조건은 참일때 실행되는 명령어들 }
위 구문은 if문에서 else if문이 추가된 조건으로 else if문은 if문의 조건외에 또다른 조건을 가지고 참거짓을 판단한다. else if문은 if문이 거짓일 경우에 또다른 조건의 참거짓유무를 판별하며 if문이 참일경우에는 else if문은 실행되지 않는다.
if문이 참일경우 -> if문 실행
if문이 거짓일 경우 -> else if문 판별 -> else if문이 참일 경우 else if문 실행
if문을 사용하여 조건에 따라 LED를 켜지고 꺼지는 회로를 구성해보자.
NO | 부품명 | 수량 |
1 | 아두이노 보드 | 1개 |
2 | Potentiometer나 variable registor | 1개 |
3 | 220Ω 저항 | 1개 |
4 | LED | 1개 |
5 | Hook-up wire |
부품명 | 아두이노 보드 | otentiometer나 variable registor |
220Ω 저항 | LED | Hook-up wire |
부품 사진 |
/*
제목 : 제어문 / if
내용 : if 문에 대해서 알아봅시다.
*/
// 발췌 : http://arduino.cc/en/Tutorial/IfStatement
// 가변 저항을 아날로그 0번 핀에 연결합니다.
const int analogPin = A0;
// LED를 디지털 13번 핀에 연결합니다.
const int ledPin = 13;
// threshold값을 400으로 지정합니다.
const int threshold = 400;
// 실행시 가장 먼저 호출되는 함수이며, 최초 1회만 실행됩니다.
void setup() {
// ledPin(13번핀)을 출력 핀으로 설정합니다.
pinMode(ledPin, OUTPUT);
// 시리얼 통신 속도를 9600으로 설정합니다.
Serial.begin(9600);
}
// setup() 함수가 호출된 이후, loop() 함수가 호출되며,
// 블록 안의 코드를 무한히 반복 실행합니다.
void loop() {
// 가변 저항(A0)에서 읽어오는 값을 analogValue에 저장합니다.
int analogValue = analogRead(analogPin);
// analogValue의 값이 threshold(400)보다 클 경우에
if (analogValue > threshold) {
//디지털 13번 핀에 연결된 LED를 점등합니다.
digitalWrite(ledPin, HIGH);
}
// 아닐 경우에
else {
//디지털 13번 핀에 연결된 LED를 소등합니다.
digitalWrite(ledPin,LOW);
}
// 가변 저항(AO)에서 읽어오는 값을 시리얼 모니터 창에 출력합니다.
Serial.println(analogValue);
//0.01초동안 대기합니다.
delay(1);
}
코드는 위와 같다. 위에 코드를 스케치에 작성하고 실행하면 결과를 볼 수 있다.
코드를 설명하면 Analog핀 0번에는 potentiometer가 연결되어있고 디지털핀 13번에는 LED가 연결되어 있다.
Potentiometer를 조절하여 지정한 threshold를 초과한 값이 analog핀 0번에서 출력되면 13번핀에 연결된 LED가 켜지고 그 미만의 값이 출력될 경우에는 LED가 꺼지는 소스이다.
kocoafabeditor
항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!