아날로그 명령어
3-1 아날로그명령어3-2 아날로그부품연결하기3-3 조도측정하기3-4 어두워지면저절로켜지는장치3-5 거리측정하기3-6 동체인식장치만들기3-7 map 함수3-8 PWM 활용하기
03
아날로그명령어
03 - 1 아날로그명령어
1. 아두이노명령어 규칙
03
아두이노와 PLC를이용한 IoT 구현실습
2
아날로그명령어
03 - 1 아날로그명령어
2. 아날로그센서 값의 처리
03
아두이노와 PLC를이용한 IoT 구현실습
3
아날로그 센서의 출력 또는 입력
5V
0V
아두이노 보드에서의아날로그 센서값 처리
1023
0
아날로그명령어
03 - 2 아날로그부품 연결하기
1. 아날로그핀의 위치
03
아두이노와 PLC를이용한 IoT 구현실습
4
모터 2핀 x 2 아날로그 3핀
디지털 3핀I2C 4핀
시리얼 4핀
아날로그명령어
03 - 2 아날로그부품 연결하기
1. 아날로그핀의 위치
03
아두이노와 PLC를이용한 IoT 구현실습
5
아날로그 부품은 아날로그핀에 연결합니다.
아날로그 핀에는0번 ~ 5번 까지번호가 표시되어 있습니다.(A0 ~ A5)
아날로그 핀에 부품을 연결할때에는 핀 번호를 확인해야합니다.
아날로그명령어
03 - 2 아날로그부품 연결하기
2. 아날로그센서 연결하기
03
아두이노와 PLC를이용한 IoT 구현실습
6
0번(A0)
5번(A5)
아날로그명령어
03 - 2 아날로그부품 연결하기
3. 아날로그센서 연결시 주의사항
03
아두이노와 PLC를이용한 IoT 구현실습
7
0번(A0)
아날로그 핀에 부품들을 연결할 때에는0번 핀부터 연결합니다.
아날로그명령어
03 - 2 아날로그부품 연결하기
3. 아날로그센서 연결시 주의사항
03
아두이노와 PLC를이용한 IoT 구현실습
8
아날로그 4번과 5번 핀은 다른 부품(I2C 핀 사용)과충돌되므로, LCD나 LED 체인등 I2C 4핀에 부품이연결되어 있는 경우에는 사용할 수 없습니다.
4번
5번
아날로그명령어
03 - 3 조도측정하기
1. 조도 센서 (광센서) 연결하기
03
아두이노와 PLC를이용한 IoT 구현실습
9
아날로그 0번핀에 조도센서를연결합니다.
아날로그명령어
03 - 3 조도측정하기
2. 조도 센서값 측정하기
03
아두이노와 PLC를이용한 IoT 구현실습
10
void setup(){
}
void loop(){
a = AnalogRead(0)PrintLine(a)Delay(100)
}
아날로그명령어
03 - 3 조도측정하기
2. 조도 센서값 측정하기
03
아두이노와 PLC를이용한 IoT 구현실습
11
가장 밝았을 때의 값
가장 어두웠을 때의 값
평균 값
아날로그명령어
03 - 4 어두워지면저절로 켜지는장치
1. If 조건문추가
03
아두이노와 PLC를이용한 IoT 구현실습
12
void loop(){
a = AnalogRead(0)PrintLine(a)
if (){}else{}
Delay(100)}
아날로그명령어
03 - 4 어두워지면저절로 켜지는장치
2. If 조건문수정
03
아두이노와 PLC를이용한 IoT 구현실습
13
void loop(){
a = AnalogRead(0)PrintLine(a)
if ( a < 500 ){}else{}
Delay(100)}
아날로그명령어
03 - 4 어두워지면저절로 켜지는장치
3. LED 명령어추가
03
아두이노와 PLC를이용한 IoT 구현실습
14
void loop(){
a = AnalogRead(0)PrintLine(a)
if ( a < 500 ){
DigitalWite(13, HIGH)}else{
DigitalWite(13, LOW)}
Delay(100)}
아날로그명령어
03 - 5 거리측정하기
1. PSD 거리 센서 연결하기
03
아두이노와 PLC를이용한 IoT 구현실습
15
PSD 거리센서
아날로그 0번에연결
아날로그명령어
03 - 5 거리측정하기
2. PSD 거리 센서 값 출력하기
03
아두이노와 PLC를이용한 IoT 구현실습
16
void setup(){
}
void loop(){
a = AnalogRead(0)PrintLine(a)Delay(100)
}
아날로그명령어
03 - 6 동체인식 장치만들기
1. 움직임이감지되면 3초간 LED 켜기
03
아두이노와 PLC를이용한 IoT 구현실습
17
void setup(){}
void loop(){
a = AnalogRead(0)
if (a > 200){
DigitalWrite(13, HIGH)Delay(3000)
}
Delay(100)}
아날로그명령어
03 - 6 동체인식 장치만들기
2. 문제점 고찰
03
아두이노와 PLC를이용한 IoT 구현실습
18
• LED가 켜지고 나면 움직임을 감지하지 못함
• LED가 켜져 있는 동안에도 움직임을 계속 감지하려면?
아날로그명령어
03 - 6 동체인식 장치만들기
3. 감지 기능이 개선된코드
03
아두이노와 PLC를이용한 IoT 구현실습
19
count = 0
void setup(){}
void loop(){
a = AnalogRead(0)
if (a > 200){
count = 30}
if (count > 0){
count = count - 1DigitalWrite(13, HIGH)
}
Delay(100)}
아날로그명령어
03 - 7 map 함수
1. 값을 변환해 주는 map 함수
03
아두이노와 PLC를이용한 IoT 구현실습
20
• Map함수를 이용하여 측정된 센서값을 실제 거리와 유사하게 변환해 봅니다.
• 거리값 뒤에 "cm" 단위를 표시해 봅니다.
아날로그명령어
03 - 7 map 함수
2. map 함수를 이용한디지털 거리계장치 구현하기
03
아두이노와 PLC를이용한 IoT 구현실습
21
void setup(){}
void loop(){
a = AnalogRead(0)
a = map(a, 0, 1023, 80, 10)
Print(a)PrintLine("cm")Delay(100)
}
아날로그명령어
03 - 8 PWM 활용하기
1. PWM 이란?
03
아두이노와 PLC를이용한 IoT 구현실습
22
• PWM은 필요한 전압을 0과 1의 간격을 조절하여 생성합니다.
• 0 ~ 255 사이의 값을 입력하면 0V ~ 5V 사이의 가상 전압이 만들어 집니다.
아날로그명령어
03 - 8 PWM 활용하기
2. PWM을 사용할수 있는 핀
03
아두이노와 PLC를이용한 IoT 구현실습
23
아날로그명령어
03 - 8 PWM 활용하기
3. PWM을 사용하기위한 아두이노명령어
03
아두이노와 PLC를이용한 IoT 구현실습
24
• AnalogWrite 명령어는 아날로그 이름이 붙어있지만 디지털 핀에 적용합니다.
• 모든 디지털 핀에 사용할 수 있는 것은 아니고, PWM 핀에만 사용할 수
있습니다.
• 디지털 핀으로 가상으로 아날로그 처럼 값을 출력시킵니다.
• 0 ~ 255 사이의 값을 입력하면 0V ~ 5V 사이의 가상 전압이 만들어 집니다.
• 디지털 핀 중에서 3, 5, 6, 9, 10, 11핀에만 사용 가능합니다.
아날로그명령어
03 - 8 PWM 활용하기
4. PWM으로 LED 밝기 제어하기
03
아두이노와 PLC를이용한 IoT 구현실습
25
• LED를 디지털 11번에 연결합니다.
아날로그명령어
03 - 8 PWM 활용하기
4. PWM으로 LED 밝기 제어하기
03
아두이노와 PLC를이용한 IoT 구현실습
26
void setup(){}
void loop(){
for (i = 0; i < 256; i=i+1){
AnalogWrite(11, i) Delay(10)
}}
아날로그명령어
03 - 8 PWM 활용하기
5. PWM으로 모터의 속도 제어하기
03
아두이노와 PLC를이용한 IoT 구현실습
27
왼쪽 모터를 MOTOR1 단자에연결합니다.
아날로그명령어
03 - 8 PWM 활용하기
5. PWM으로 모터의 속도 제어하기
03
아두이노와 PLC를이용한 IoT 구현실습
28
void setup(){}
void loop(){
for (i = 0; i < 256; i=i+1){
AnalogWrite(5, i) Delay(100)
}}