728x90
변수
변수는 정보를 담는 그릇이다.
변수명
변수명은 알파벳, _ 로 시작해야 한다. 연산자(+-/* <>), 특수문자(%, $..), 예약어(void, int) 등은 사용할 수 없다.
자료형
변수에 담을 수 있는 데이터 형식은 고정되어있다. int에는 정수(10)만 담고, float에는 실수(10.3)만 담고, char에는 문자열(John)만 담을 수 있다.
// [자료형] [변수명] = [값];
int test = 10;
float ftest = 20.2;
char ctest = 'John'; // 문자열은 따옴표('')로 감싸줘야 한다
연산자
// 연산자 +-*/%
int X = 5;
int Y = 2;
int nRet = 0;
float fRet = 0.0; // 초기값도 실수형으로 할당
void setup() {
nRet = X + Y;
// fRet = X / B; // 둘 중 하나라도 정수형으로 연산하면 결과는 정수(2.0). 0.5가 누락된 상태
// 캐스팅 : 일시적으로 데이터 타입을 변환하는 것
fRet = (float)X / (float)B; // 일시적으로 이를 실수로 바꿔서 결과를 실수로 표현할 수 있다(2.5)
}
void loop() {
// put your main code here, to run repeatedly:
}
Serial monitoring
위에서 연산을 위한 코드를 짜긴 짰는데, 이것들이 정상적으로 작동되는지 어찌 확인할 수 있을까? 이때 Serial monitoring를 사용하면 된다.

Serial Monitoring은 우측 상단부의 돋보기를 누르면 아래 창이 뜬다. 그리고 upload를 하면 print 결과가 나타난다.
// 연산자 +-*/%
int X = 5;
int Y = 2;
int nRet = 0;
float fRet = 0.0; // 초기값도 실수형으로 할당
void setup() {
// 보드(아두이노)와 외부(PC) 간 통신을 하기 위한 Serial 객체. 9600은 초당 비트 전송 속도(bps)를 의미
Serial.begin(9600);
fRet = X + Y;
Serial.print('hello');
}
void loop() {
// put your main code here, to run repeatedly:
}
조건문
int N = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
if(N < 10){
N++;
} else {
N = 0;
}
Serial.print(N);
delay(500);
}
10 이하일 경우 N을 increment하고 10 이상일 경우 0으로 초기화하여 무한반복하는 코드를 짰다.

무한반복문이 잘 작동한다. 전원이 꺼질 때까지 반복한다. 그런데 우측 방향으로 가니까 보기가 쉽지 않다. println을 사용해서 newline으로 출력하도록 해주자.
int N = 0;
int nPin = 11; // 11번 핀
void setup() {
Serial.begin(9600);
// 핀이 입력인지 출력인지 알려주기. nPin을 출력으로 사용하겠다
pinMode(nPin, OUTPUT);
}
void loop() {
if(N < 10){
N++;
digitalWrite(nPin, HIGH);
} else {
N = 0;
digitalWrite(nPin, LOW);
}
// Serial.print(N);
Serial.println(N);
delay(500);
}
LED 출력하는 것도 추가해두었다.

Switch문
// Switch 문
int N = 1;
int nPin = 11; // 11번 핀
void setup() {
pinMode(nPin, OUTPUT);
}
void loop() {
switch(N) {
case 1:
digitalWrite(nPin, HIGH);
delay(1000);
break;
case 2:
digitalWrite(nPin, HIGH);
delay(2000);
break;
case 3:
digitalWrite(nPin, HIGH);
delay(3000);
break;
case 4:
digitalWrite(nPin, HIGH);
delay(4000);
break;
default:
break;
}
digitalWrite(nPin, LOW);
delay(500);
N++;
if(N > 4) {
N = 0;
}
}
반복문 for
int sum = 0;
void setup() {
Serial.begin(9600);
for(int N = 1; N < 11; N++) {
Serial.print("N값 : ");
Serial.println(N);
sum = sum + N;
Serial.print("sum값 : ");
Serial.println(sum);
}
}
void loop() {
}
반복문 while
int N = 1;
int sum = 0;
void setup() {
while(N < 10) {
sum = sum + N;
N++;
delay(0.5);
}
}
void loop() {
}
Reference
참고 강의명 : 인프런 <아두이노와 떠나는 사물인터넷 여행 - 아두이노 입문부터 IoT 중급까지!>
728x90
'Research > Arduino' 카테고리의 다른 글
아두이노 설치 및 기초 (0) | 2023.03.22 |
---|
댓글