Upload
-funfun-yoo
View
1.481
Download
0
Embed Size (px)
Citation preview
서울창조경제혁신센터
창조경제 IoT 해커톤대회
2015.9.12 ~ 9.13
4일차교육
간단한 복습
아두이노 함수 : 디지털 입출력void pinMode(digital_pin, mode)
• 매개변수
digital_pin : 설정하고자 하는 디지털 핀 번호
mode : INPUT, OUTPUT, INPUT_PULLUP
• 반환 값 : 없음
void digitalWrite(digital_pin, value)
• 매개변수
digital_pin : 출력 신호를 내보낼 디지털 핀 번호
value : HIGH, LOW
• 반환 값 : 없음
int digitalRead(digital_pin)
• 매개변수
pin : 입력 신호를 읽어 올 디지털 핀 번호
• 반환 값 : HIGH, LOW
아두이노 함수 : 아날로그 입출력
void analogWrite(digital_pin, value)
• 매개변수
digital_pin : 출력 신호를 내보낼 디지털 핀 번호
value : 0 ~ 255 사이의 PWM 값
• 반환 값 : 없음
int analogRead(analog_pin)
• 매개변수
pin : (센서 등과 연결되어) 아날로그 입력 신호를 읽어 올 아날로그 핀 번호
• 반환 값 : 0 ~ 1023 사이의 아날로그 값
analogWrite() 함수는실제아날로그출력이아니라디지털핀에서출력되는전류량을아날로그처럼단계적으로조절하여출력해주는함수로 Digital Pin들이름앞에 ‘ ~ ‘ 표시가되어있는핀들만가능!
아두이노 함수 : 시리얼 모니터
void Serial.begin(baud_rate);
• 매개변수
baud_rate : 소프트웨어 시리얼 통신 속도, 예. 9600
• 반환 값 : 없음
void Serial.println(string_value);
• 매개변수
string_value : 소프트웨어 시리얼 모니터에 출력할 문장(string)
• 반환 값 : 없음
String String(not_string_value);
• 매개변수
not_string_value : 문장(string) 형식(format)으로 변화되는 값
• 반환 값 : 문장(string)
Bread Board (빵판) 내부 구조
<출처> http://binworld.kr/13
Bread Board (빵판) 사용법
http://binworld.kr/13
LED
http://www.societyofrobots.com/electronics_led_tutorial.shtml
RGB LEDhttp://eeenthusiast.com/arduino-digital-inputs-rgb-led-example/
LED
http://wiki.vctec.co.kr/opensource/arduino/rgbled
Cathode
Tact Switch
Tact Switch
https://www.e-cigarette-forum.com/forum/threads/question-about-tact-switches.236049/
조도 센서 (CDS)http://arsviator.tistory.com/170
예제소스는Analog 0번핀에연결됨
이그림은참고용!!!
온도 센서 (LM35)
<출처> http://blog.opid.kr/458
http://blog.opid.kr/458
※주의 : +5V 와 GND 를잘못연결하면
매우뜨거워화상의우려가있으니
주의할것!!!
☆ 온도 구하는 공식
LM35 = (5.0 * analog_value * 100.0) / 1024.0;
모터 (DC 모터)
DC 모터
<출처> http://www.devicemart.co.kr/21857
구동 3V DC 모터 (소형)
Single DC Motor Driver : DRV8838
http://www.devicemart.co.kr/1170534
3.3V3.3 or 5V
Single DC Motor Driver : DRV8838
Single DC Motor Driver : DRV8838
Single DC Motor Driver : DRV8838
DC 모터 제어 예제
int EN_pin = 3;int PH_pin = 4;
void setup() {pinMode(EN_pin, OUTPUT);pinMode(PH_pin, OUTPUT);
}
void loop() {digitalWrite(EN_pin, HIGH); // ForwarddigitalWrite(PH_pin, LOW); // Forwarddelay(3000);
digitalWrite(EN_pin, LOW); // StopdigitalWrite(PH_pin, LOW); // Stopdelay(3000);
digitalWrite(EN_pin, HIGH); // ReversedigitalWrite(PH_pin, HIGH); // Reversedelay(3000);
digitalWrite(EN_pin, LOW); // StopdigitalWrite(PH_pin, LOW); // Stopdelay(3000);
}
drv8838_test.ino
블루투스
<출처> http://www.yuden.co.jp/ut/solutions/ble/
블루투스 모듈 : HC-06
아두이노용으로가장많이사용됨!
블루투스 모듈 : HC-06
For Software Serial
블루투스 예제 (1)#include <SoftwareSerial.h>
SoftwareSerial BTSerial(2, 3); // RX : 2, TX : 3
void setup() {
Serial.begin(9600);
BTSerial.begin(9600);
BTSerial.write("AT+NAMEfunfunyooBT"); // BT module name : “funfunyooBT"
}
void loop() {
if (BTSerial.available()) // BT -> Arduino -> Serial Monitor
Serial.write(BTSerial.read());
if (Serial.available()) // Serial Monitor -> Arduino -> BT
BTSerial.write(Serial.read());
}
bt_test.ino
블루투스 : PC 연결 방법
블루투스 : PC 연결 방법
블루투스 : PC 연결 방법
블루투스 : PC 연결 방법
http://www.hw-group.com/products/hercules/index_en.html
블루투스 예제 (2) : LED On/Off#include <SoftwareSerial.h>
SoftwareSerial BTSerial(2, 3); // RX : 2, TX : 3int led_pin = 9;
void setup() {Serial.begin(9600);BTSerial.begin(9600);BTSerial.write("AT+NAMEfunfunyooBT"); // BT module name : “funfunyooBT"pinMode(led_pin, OUTPUT);
}
void loop() {if ( BTSerial.available()) // BT -> recv_data -> Serial Monitor{
unsigned char recv_data = BTSerial.read();Serial.write("Received Data : ");Serial.write(recv_data);
if (recv_data == '1'){
digitalWrite(led_pin, HIGH);Serial.write(" (LED ON)");
}
else if (recv_data == '0'){
digitalWrite(led_pin, LOW);Serial.write(" (LED OFF)");
}
elseSerial.write(" (Wrong Data! Please Input 1 or 0)");
Serial.write('\n');}
}
bt_led.ino
Share Knowledge & Share Spirit
유 명 환, [email protected]