Top Banner
38

C Language For Arduino

Jul 21, 2015

Download

Technology

YoungWook Kim
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: C Language For Arduino
Page 2: C Language For Arduino
Page 3: C Language For Arduino

Korean ONLY Korean + French French

Page 4: C Language For Arduino

Korean ONLY C언어 Machine

컴파일러( Compiler )

Page 5: C Language For Arduino

•프로그래밍 언어란 무엇인가?

• 사람과 컴파일러가 이해할 수 있는 약속된 형태의 언어

• C 언어도 프로그래밍 언어 중 하나이다.

•컴파일이란 무엇인가?

• 프로그래밍 언어로 작성된 프로그램을 컴퓨터가 이해할 수 있

도록 기계어로 번역해 주는 역할을 하는 번역기

Page 6: C Language For Arduino

• C 언어의 장점

• 익숙해지는데 오랜 시간이 걸리지 않는다.

• 이식성이 좋다.

• 효율성이 높다.

• C 언어의 단점

• 프로그래밍 하는데 많은 주의를 요한다.

• 완전한 고급 언어에 비해 상대적으로 어렵다.

Page 7: C Language For Arduino

void setup(){Serial.begin(9600);

}

void loop(){

Serial.println("Hello World");delay(1000);

}

Page 8: C Language For Arduino

• 함수

• 적절한 입력과 그에 따른 출력이 존재 하는 것을 가리켜 함수라 한다.

• C 언어의 기본 단위는 함수이다.

Page 9: C Language For Arduino

setup() 환경을 설정하는데 사용된다.

loop() 실제 코드를 작성하는 부분

Page 10: C Language For Arduino

Serial.begin( ) 시리얼 통신을 시작한다.Ex) Serial.begin(9600);

Serial.print( ) 문자를 시리얼 통신으로 보낸다. Serial.println( )Ex) Serial.print(“Hello World”);

Page 11: C Language For Arduino

• return의 의미

• 함수를 종료(빠져 나온다).

• 함수를 호출한 영역으로 값을 반환

return

Page 12: C Language For Arduino

•주석이란?

• 프로그래머에게 메모(memo)의 기능을 부여

• 컴파일러는 주석을 없는 것으로 간주

• 주석을 삽입 함으로 인해 프로그램 소스를 읽기 쉽게

한다.

Page 13: C Language For Arduino

•주석의 두 가지 형태

• 여러 줄에 걸친 주석 처리

단일 행 주석 처리

/* 한 줄 짜리 주석 */

/*

여러 줄에

걸친 주석

*/

// 주석 하나.

// 주석 둘.

// 주석 셋.

Page 14: C Language For Arduino

#include <stdio.h> // stdio.h 헤더 파일 포함

int main(void) // main 함수의 시작

{

/*

printf 함수는 모니터로 출력을 하는 경우에 쓴다.

인자로 문자열을 전달하면 문자열을 출력한다.

*/

printf("Hello World! \n"); //모니터로 문자열 출력

return 0; // 0을 반환한다.

} // main 함수의 끝

Page 15: C Language For Arduino
Page 16: C Language For Arduino

•연산자란 무엇인가?

• 연산을 요구할 때 사용되는 기호

• ex : +, -, *, /

void loop()

{

Serial.println(1 + 2);

delay(1000);

}

Page 17: C Language For Arduino

•변수란 무엇인가?

• 데이터를 저장할 수 있는 메모리 공간에 붙여진 이름

•다양한 형태(자료형)의 변수

• 정수형 : char, int, long

• 실수형 : float, double

Page 18: C Language For Arduino

int main(void)

{

int val; // int형 변수 val의 선언

val = 20; // 변수 val에 20을 저장

. . . . . .

20

Page 19: C Language For Arduino

•기본 자료형 종류와 데이터의 표현 범위

자료형(data type) 할당되는 메모리 크기 표현 가능한 데이터의 범위

정수형

char 1 바이트 -128 ~ +127

short 2 바이트 -32768 ~ +32767

int 4 바이트 -2147483648 ~ +2147483647

long 4 바이트 -2147483648 ~ +2147483647

실수형

float 4 바이트 3.4*10-37 ~ 3.4*10+38

double 8 바이트 1.7*10-307 ~ 1.7*10+308

long double 8 바이트 혹은 그 이상 차이를 많이 보임

Page 20: C Language For Arduino

void loop()

{

int a;

int b;

a = 30;

b = 40;

int c = a + b;

Serial.println(c);

delay(1000);

}

Page 21: C Language For Arduino

•변수 선언 시 주의 사항 2

• 첫째 : 변수의 이름은 알파벳, 숫자 언더바(_)로 구성

• 둘째 : 대 소문자 구분

• 셋째 : 변수의 이름은 숫자로 시작 불가, 키워드 사용 불가

• 넷째 : 공백이 포함될 수 없음

적절치 않은 변수의 이름 적절치 않은 이유

int 7th_val 변수의 이름이 숫자로 시작

int live_inthe# #과 같은 특수 문자는 올 수 없다.

int kor year 변수 이름에 공백이 삽입될 수 없다.

Page 22: C Language For Arduino

•변수와는 다른 상수!

• 상수도 메모리 공간을 할당받는다.

하지만 데이터의 변경이 불가능하다.const int MAX = 100;

void setup(){

Serial.begin(9600);}

void loop(){

Serial.println(MAX);delay(1000);

}

Page 23: C Language For Arduino

const int MAX = 100;

void setup()

{

Serial.begin(9600);

}

void loop()

{

Serial.println(MAX);

delay(1000);

}

Page 24: C Language For Arduino
Page 25: C Language For Arduino

•반복문의 기능

• 특정 영역을 특정 조건이 만족하는 동안에 반복 실행

하기 위한 문장

•세 가지 형태의 반복문

• while문에 의한 반복

• for문에 의한 반복

Page 26: C Language For Arduino

• while문의 기본 원리와 의미

Page 27: C Language For Arduino

void loop()

{

int a = 0;

while(a < 50)

{

a = a + 1;

Serial.println(a);

delay(200);

}

}

Page 28: C Language For Arduino

• for문의 기본 원리와 의미

• 초기문, 조건문, 증감문 모두를 기본적으로 포함!

• 가장 많이 사용되는 반복문

Page 29: C Language For Arduino

void loop(){

for(int i=0;i<10;i++){

Serial.println(i);delay(200);

}}

Page 30: C Language For Arduino
Page 31: C Language For Arduino

• if문에 의한 조건적 실행

• 조건이 만족되는 경우에 한해서 실행

Page 32: C Language For Arduino

• if~else 에 대해서

• 예제 calcu_one.c의 단점: 불필요한 연산을 하게 된다.

• basic_ifelse.c 참조

그림 8-5

Page 33: C Language For Arduino

• if, else if, else에 대해서

• calcu_two.c 참조

Page 34: C Language For Arduino

void loop(){

int a = 100

if(a < 100){

Serial.println("100 < a");}else(a > 100){

Serial.println("100 > a");}

}

Page 35: C Language For Arduino

•관계 연산자(비교 연산자)

• 두 피연산자의 관계(크다, 작다 혹은 같다)를 따지는 연산자

• true(1), false(0) 반환

연산자 연산의 예 의미 결합성

< a<b a가 b보다 작은가

> a>b a가 b보다 큰가

== a==b a와 b가 같은가

!= a!=b a와 b가 같지 않은가

<= a<=b a가 b보다 작거나 같은가

>= a>=b a가 b보다 크거나 같은가

Page 36: C Language For Arduino

•논리 연산자

• and, or, not을 표현하는 연산자

• true(1), false(0) 반환

연산자 연산의 예 의미 결합성

&& a&&b true면 ture 리턴

|| a||b 하나라도 true면 true 리턴

! !a true면 false를, false면 true 리턴

Page 37: C Language For Arduino

void loop(){

int a = 100;if(a == 100){

Serial.println("100 = a");}

if(a > 80 && a < 120)Serial.println("A > 80 and A < 120");

delay(500);}

Page 38: C Language For Arduino

수고 하셨습니다.Break Time