디지털 및 아날로그 명령어 이해하기

Download Report

Transcript 디지털 및 아날로그 명령어 이해하기

디지털 및 아날로그 명령어 이해하기
목차
1.
재료준비 및 브레드 보드 배선 구성하기
2.
디지털 및 아날로그 명령어 및 프로그램 이해
3.
응용 작품 만들기
1
준비물
준비하기
1) 아두이노 보드 (SPL-Duino V2 초보자용 보드)
2) USB 케이블
3) 조도 센서, LED 소자
4) 브레드보드 실습 키트
2
브레드보드 배선 구성하기
전원 연결
아래 그림과 같이 브레드 보드를 연결해줍니다.
3
브레드보드 배선 구성하기
디지털 센서
• 3핀 디지털 LED 소자 준비하기
발광 다이오드라고도 불리며 전류가 통하면
불빛을 발산하는 장비입니다.
센서 선(s)으로 센서의 데이터 값을
읽고 쓰고 합니다.
LED소자의 경우 디지털 핀에 사용합니다.
빨간색 선은
V (Voltage)를 의미합니다.
검정색 선은
G (GND)를 의미합니다.
4
브레드보드 배선 구성하기
아날로그 센서
• 3핀 아날로그 조도 센서 준비하기
현 위치에서의 받는 빛의 양을
측정 하는 센서입니다.
검정색 선은
G (GND)를 의미합니다.
빨간색 선은
V (Voltage)를 의미합니다.
센서 선(s)으로 센서의 데이터 값을
읽고 쓰고 합니다.
아날로그 조도 센서의 경우 아날로그 핀을 사용합니다.
5
브레드보드 배선 구성하기
센서 연결
LED소자와 조도 센서를 아래 그림과 같이 연결해줍니다.
LED 소자 : D2번핀에 연결
노란색 – 초록색
빨간색 – 빨간색
검은색 – 검은색
조도 센서 : A0번핀에 연결
노란색 – 파란색
빨간색 – 빨간색
검은색 – 검은색
6
디지털 명령어 이해하기
디지털 센서
디지털 핀에 연결된 LED 소자를 이용하여 디지털 명령어를 이해하고자 합니다.
디지털 핀
7
디지털 명령어 이해하기
디지털 센서
디지털 핀은 0번부터 13번까지 있으며 0번 핀은 RX, 1번 핀은 TX은
통신에 사용할 수 있는 핀 번호로 V2보드에는 블루투스 핀에 연결되어 있습니다.
디지털 핀을 사용하고자 할 땐 다른 핀을 이용하도록 합니다.
디지털 핀
8
디지털 명령어 이해하기
디지털 센서
• 디지털 센서 값
5V
디지털
센서
전압
0V
HIGH 또는 1
아두이노
보드
LOW 또는 0
디지털 센서는 0V ~ 5V 사이의 전압값이 출력되며, 아두이노에서는
이 전압값이 0 또는 1로 처리됩니다.
0V ~ 2.5V 사이는 0으로 표시하고
2.5V ~ 5V 사이는 1로 표시합니다.
9
디지털 명령어 이해하기
디지털 센서
• 디지털 센서 값
5V
HIGH (1)
0V
LOW (0)
디지털 센서의 출력 또는 입력
아두이노 보드에서의
디지털 센서값 처리
10
디지털 명령어 이해하기
디지털 센서
• 디지털 센서 값
아두이노에서 특별히 디지털 센서 값은 다음과 같이 예약어로
사용됩니다.
5V
HIGH 라는 단어를 사용합니다.
예)
0V
digitalWrite(13, HIGH);
LOW 라는 단어를 사용합니다.
예)
digitalWrite(13, LOW);
11
디지털 명령어 이해하기
디지털 센서
• 디지털 센서 값 적용하기
void setup() {
pinMode(2, OUTPUT);
}
우측 소스를 아두이노 프로그램에
입력하도록 합니다.
void loop() {
digitalWrite(2, HIGH);
delay(1000);
digitalWrite(2, LOW);
delay(1000);
}
12
디지털 명령어 이해하기
디지털 센서
• 디지털 센서 값 적용하기
void setup은 아두이노에서
서론과 같은 존재로
프로그램 실행 시 1번 실행됩니다.
pinMode(2, OUTPUT);
pinMode는 사용할 핀에
대하여 설정을 해주는 명령어입니다.
LED소자를 디지털 2번 핀에 연결 하였으니
2를 입력하고 출력 설정을 위해
OUTPUT을 입력합니다.
void setup() {
pinMode(2, OUTPUT);
}
void loop() {
digitalWrite(2, HIGH);
delay(1000);
digitalWrite(2, LOW);
delay(1000);
}
13
디지털 명령어 이해하기
디지털 센서
• 디지털 센서 값 적용하기
void loop()는 아두이노에서
본문과 같은 존재로 setup과 달리
무한 반복 실행됩니다.
digitalWrite(2, HIGH);
digitalWrite는 디지털 핀에 대해
쓰기를 사용하겠다는 명령어로
(2, HIGH)는 디지털 2번 핀을
HIGH값으로(5V)로 사용합니다.
delay(1000);은 입력 만큼
대기 하는(현상 유지) 명령어로
입력값 1000 = 1초 입니다.
void setup() {
pinMode(2, OUTPUT);
}
void loop() {
digitalWrite(2, HIGH);
delay(1000);
digitalWrite(2, LOW);
delay(1000);
}
14
디지털 명령어 이해하기
디지털 센서
• 디지털 센서 값 적용하기
디지털 2번 핀을
OUTPUT으로 설정
1초동안
디지털 2번을 LOW
void setup() {
pinMode(2, OUTPUT);
}
void loop() {
digitalWrite(2, HIGH);
delay(1000);
digitalWrite(2, LOW);
delay(1000);
}
1초동안
디지털 2번을 HIGH
15
디지털 명령어 이해하기
디지털 센서
• LED가 정상적으로 점멸하는지 확인해 봅니다.
16
아날로그 명령어 이해하기
전원 연결
아날로그 핀에 연결된 조도 센서를 이용하여 아날로그 명령어를 이해하고자 합니다.
아날로그 핀
17
아날로그 명령어 이해하기
아날로그 센서
아날로그 핀은 0번부터 7번까지 있습니다.
아날로그 4번 핀과 5번 핀은 I2C에 연결되어 있으며 I2C를 사용할 땐
I2C가 아날로그 4,5번을 사용하게 되므로 I2C가 사용될 땐
다른 아날로그 핀을 이용하도록 합니다.
아날로그 핀
18
아날로그 명령어 이해하기
아날로그 센서
• 아날로그 3핀 센서 핀의 구조
아날로그
센서
0V
(G: Ground, 또는 GND로 표기)
5V
(V: Voltage, 또는 Vcc로 표기)
측정된
센서값
(S: Sensor로 표기)
19
아날로그 명령어 이해하기
아날로그 센서
• 아날로그 3핀 센서를 아두이노 보드에 연결하는 방법
6~8개의 핀을
사용할 수
있습니다.
G
아날로그
V
센서
S
G
아두이노
보드의
V
아날로그 핀
S
아두이노 보드에는 총 6개의 아날로그 핀(0번 핀 ~ 5번 핀)이
있으며, 제품에 따라서는 8개의 아날로그 핀으로 구성된 보드도
있습니다. SPL-Duino 보드는 총 8개의 아날로그 핀으로
구성되어 있습니다.
20
아날로그 명령어 이해하기
아날로그 센서
• 아날로그 센서 값
아두이노에서 특별히 아날로그 센서 값을 읽고자 할 땐 다음과 같이
사용합니다.
analogRead(0);
아날로그 0번의 값을 읽어옵니다.
21
아날로그 명령어 이해하기
아날로그 센서
• 아날로그 센서 적용하기
void setup()
{
Serial.begin(57600);
}
void loop()
{
int a = analogRead(0);
Serial.println(a);
delay(1000);
}
22
아날로그 명령어 이해하기
아날로그 센서
• 아날로그 센서 적용하기
프로그램 실행 시 한번 적용되는 setup문에
Serial.begin(57600);를 입력해줍니다.
Serial.begin은 시리얼통신을 시작하고자
할 때 사용해주는 명령어입니다.
(57600)은 통신 속도입니다.
void setup()
{
Serial.begin(57600);
}
void loop()
{
int a = analogRead(0);
Serial.println(a);
delay(1000);
}
23
아날로그 명령어 이해하기
아날로그 센서
• 아날로그 센서 적용하기
void setup()
{
Serial.begin(57600);
센서값을 계속 읽기 위해 loop()문을 사용합니다.
}
int a는 int라는 데이터 타입을 가지고 와서
void loop()
a라는 이름을 지정해줍니다.
{
조도 센서가 0번 핀에 있으니
int a = analogRead(0);
analogRead(0);의 명령어를 사용합니다.
Serial.println(a);
Serial.println(a);를 입력하면 변수 a의 값을
delay(1000);
모니터링 할 수 있습니다.
}
24
아날로그 명령어 이해하기
아날로그 센서
• 아날로그 센서 적용하기
통신 속도를
57600으로 설정
a값을 1초마다 출력
void setup()
{
Serial.begin(57600);
}
void loop()
{
int a = analogRead(0);
Serial.println(a);
delay(1000);
}
아날로그 0번 값을 읽어
int a에 저장
25
아날로그 명령어 이해하기
아날로그 센서
• 아날로그 센서 적용하기
업로드 이후 시리얼 모니터를 클릭
26
아날로그 명령어 이해하기
아날로그 센서
• 아날로그 센서 적용하기
센서의 값의 변화를
확인 할 수 있습니다.
void setup에서 입력한 Serial.begin(57600);에 맞춰 줍니다.
27
아날로그 명령어 이해하기
아날로그 센서
• 프로그램을 작동시킨 후 조도센서를 어둡게 가려 봅니다.
• 콘솔창에 표시되는 센서값을 확인해 봅니다.
손으로 가려서
밝기를 변화시켜 봅니다.
28
프로그램 기초 자료형 이해하기
자료형
• C언어와 마찬가지로 아두이노에도 자료형(데이터 타입)이 존재합니다.
• 자료형을 어떤 것을 선언하냐에 따라 음수, 양수, 숫자, 문자의 저장이 가
능합니다.
• 자료형을 어떤 것을 선언하냐에 따라 할당 받는 메모리의 양이 달라집니
다.
• 자료형이란 한마디로 박스의 크기와 박스의 종류를 뜻합니다.
29
프로그램 기초 자료형 이해하기
자료형
• 자료형의 종류
• int
- 정수형의 데이터를 저장 할 수 있는 자료형으로 범위는 -32768 ~ 32767입니다.
• unsinged int
- int에서 unsinged를 추가한 형태로 int가 음수(-)부터 시작 할 수 있는 형태라면
unsinged를 추가하여 음수를 쓰지 않고 전부 양수(+)로 쓸 수 있게 해서
0 ~ 65535의 양수의 값을 가질수 있습니다.
• char
- 문자형이 저장이 가능한 자료형으로 범위는 -128~127값을 가집니다.
입력 받은 데이터가 문자지만 아스키코드로 전환해서 숫자로 들어가집니다.
int보단 범위가 적지만 정수로써도 사용이 가능합니다.
• unsinged char
- unsinged int와 마찬가지로 음수의 값을 지니고 있는 char를 0부터 255까지
표현이 가능해집니다.
30
프로그램 기초 자료형 이해하기
자료형
• 자료형의 종류
• byte
- 정수형을 저장하는 자료형으로 범위는 -128 ~ 127를 가집니다.
• double
- 실수형을 저장하기 위한 자료형으로 1.7*10^-308 ~ 1.7*10^308의 범위를 가집니다
• float
- double와 마찬가지로 실수형을 저장하는 자료형입니다.
3.4*10^-38 ~ 3.4*10^38의 범위를 가지며 double와 달리 소수점 표현 범위가
더 적기에 큰 범위를 계산시 float보단 double을 씁니다.
• String
- char와 달리 오로지 문자만 사용할 때 쓰는 자료형입니다.
char는 정수로 저장되지만 String은 데이터로써 저장합니다.
• boolean
- 1과 0을 표현하는 자료형으로 가장 적은 범위값을 지니고 있습니다.
31
프로그램 기초 자료형 이해하기
자료형
• 변수선언하기
int a = 100;
int의 자료형을 사용하여
100의 값을 a에 저장
a라는 이름을 지정하여
• 변수 이름 선언 시 반드시 알파벳으로 시작해야 합니다.
• 알파벳 뒤에 숫자로 표현은 가능하고 공백은 불가능합니다.
• 변수의 이름은 중복되어 사용해선 안됩니다.
• 알파벳 대소문자 사용여부는 상관없으나 둘은 구분이 됩니다
ex)A와 a는 서로 다른 변수
32
프로그램 기초 if조건문 이해하기
if조건문
• if조건문은 특정 조건이 발생하게 되면 특정조건시 별도의 명령을 내릴
수 있는 제어문입니다.
• if는 영단어 ‘만약에~’라는 말과 같이 if문으로 특정 조건을 걸어 구문을
지을 수 있습니다.
• if조건문은 if, else if, else의 3가지 문장을 가지며 첫 조건문 사용시 if를
사용하고 다른 조건을 사용하고자 할 땐 else if를 쓰며 if와 else if에서 해
당하지 못한 조건들을 사용할땐 else를 사용합니다.
33
프로그램 기초 자료형 이해하기
if조건문
• if의 사용 법
if(조건문) if를 선언하고 (조건문)을 사용합니다.
{
위 if 조건문이 만족할 시 괄호({})안에
해당 조건 시 실행되는 명령문
있는 명령문을 실행하게 합니다.
}
else if (또 다른 조건문) 위 if조건문 외의 다른 조건문을 쓰고자 할 때 사용합니다.
{
else if를 쓰기전엔 먼저 if가 선언되어야 합니다.
해당 조건 시 실행되는 명령문
}
위 조건들을 충족 시키지 못한 나머지 조건에 대한
else
명령을 주고자 할 때 사용합니다.
{
위 조건에 해당하지 않는 최소 하나의 if문이 앞에 있어야 합니다.
나머지 조건에 대한 명령문
}
34
프로그램 기초 자료형 이해하기
if조건문
• if의 사용 법
if(a>0)
{
Serial.print(“a는
}
else if (a<0)
{
Serial.print(“a는
}
else if (a==0)
{
Serial.print("a는
}
else
{
Serial.print("a는
}
양수입니다.");
만약 a가 0보다 크면
a는 양수입니다.를 출력
음수입니다.");
그렇지 않고 a가 0보다 작으면
a는 음수입니다.를 출력
0입니다.");
그렇지 않고 a가 0이면
a는 0입니다.를 출력
정수가 아닙니다");
위 모든 조건에 해당하지 않을 시
a는 정수가 아닙니다.를 출력
35
응용 작품 만들기
실습
• 미션) 지금까지 배운 내용을 종합하여 조도 센서의 밝기에 따라
두 개의 구문을 만들어 LED를 키고 끄고 하십시오.
응용 작품 만들기
실습
• 코드 예시
void setup()
{
pinMode(2, OUTPUT);
}
void loop()
{
int a = analogRead(0);
if (a >= 500)
{
digitalWrite(2,HIGH);
delay(1000);
}
else if (a <= 500)
{
digitalWrite(2,LOW);
delay(1000);
}
}