< 제누이노스타트키트 > 사용설명서 목차 1. Arduino IDE 설치하기 2. Genuino 연결및 Arduino IDE 셋팅하기 3. 센서설명및연결도, 예제소스 1
1. Arduino IDE 설치하기 1) Arduino IDE 다운로드 - 홈페이지주소 : https://www.arduino.cc 접속합니다. Download 를클릭합니다. Windows 10 에서구동함으로 Windows installer 를클릭합니다. *Windows 가아닌다른 OS 의경우해당 OS 에맞는 Software 를다운로드하시길바랍니다. 2
JUST DOWNLOAD 를클릭하면다운로드할수있습니다. 다운로드가되면위그림과같은설치아이콘이생성됩니다. 실행시키면설치가시작됩니다. 3
I Agree 를클릭합니다. Next> 를클릭합니다. Install 을클릭하면설치를하기시작합니다. 4
다음과같이진행바가나오게되며 설치가완료되면위그림과같이 Completed 완료문구가표시됩니다. Close 버튼을누르면 Arduino IDE 설치완료입니다. 바탕화면에위그림과같은실행아이콘을확인하실수있습니다. 5
2. Genuino 연결및 Arduino IDE 셋팅하기 1) Genuino 와컴퓨터연결 USB AM-BM 케이블을이용하여서제누이노와컴퓨터를연결합니다. 그리고컴퓨터가제누이노를정상인식하고있는지확인합니다. 내 PC => 속성 선택 장치관리자 클릭 포트에서 Genuino Uno(COM x) 확인 6
2) Arduino IDE 셋팅 보드를 Arduino/Genuino Uno 로설정하여줍니다. 포트를인식된 COM X 를설정하여줍니다. 7
마지막으로프로그래머를 Arduino as ISP 로설정하면됩니다. 정상적으로셋팅이되었는지업로드하여봅니다. 위그림과같이업로드가완료되면성공입니다. 8
3. 센서설명및연결도, 예제소스 1) RGB LED 예제설명 RGB LED 모듈을이용하여서 3 가지색상을 1 초간격으로변경되어출력되도록설정 연결도 RGB LED Genuino UNO GND <-> GND Red <-> Pin 13 Green <-> Pin 12 Blue <-> Pin 11 9
예제소스 /***************************************** Eleparts Geunino Stater Kit Connection: RED => Pin 13 Green => Pin 12 Blue => Pin 11 GND => GND ****************************************/ //RGB LED PIN 설정 int Red_LED = 13; int Green_LED = 12; int Blue_LED = 11; void setup() pinmode(red_led, OUTPUT); //Red 핀출력설정 pinmode(green_led, OUTPUT); //Green 핀출력설정 pinmode(blue_led, OUTPUT); //Blue 핀출력설정 void loop() //Red LED ON digitalwrite(red_led,high); digitalwrite(green_led,low); digitalwrite(blue_led,low); delay(1000); // 1초딜레이 //Green LED ON digitalwrite(red_led,low); digitalwrite(green_led,high); digitalwrite(blue_led,low); delay(1000); // 1초딜레이 //Blue LED ON digitalwrite(red_led,low); digitalwrite(green_led,low); digitalwrite(blue_led,high); delay(1000);// 1초딜레이 10
2) 버튼 + RGB LED 예제설명 RGB LED 와 8 Push Buttons 모듈을이용하여서 K0 을누르면 RedLED 가 K1 을누르면 GreenLED 가 K2 를누르면 BlueLED 가켜지도록설정 연결도 RGB LED Genuino UNO GND <-> GND Red <-> Pin 13 Green <-> Pin 12 Blue <-> Pin 11 버튼 Genuino UNO GND <-> GND K0 <-> Pin 7 K1 <-> Pin 6 K2 <-> Pin 5 11
예제소스 /***************************************** Eleparts Geunino Stater Kit RGBLED Connection: RED => Pin 13 Green => Pin 12 Blue => Pin 11 GND => GND ButtonLED Connection: K0 => Pin 7 K1 => Pin 6 K2 => Pin 5 GND => GND ****************************************/ //RGB LED PIN 설정 int Red_LED = 13; //R int Green_LED = 12; //G int Blue_LED = 11; //B // 버튼키상태설정 int Button1State=1; // K0 버튼상태 int Button2State=1; // K1 버튼상태 int Button3State=1; // K2 버튼상태 // 버튼 PIN설정 int Button1 = 7; // K0 버튼 int Button2 = 6; // K1 버튼 int Button3 = 5; // K2 버튼 void setup() pinmode(button1, INPUT_PULLUP); // 7번핀모드를인풋풀업설정 pinmode(button2, INPUT_PULLUP); // 6번핀모드를인풋풀업설정 pinmode(button3, INPUT_PULLUP); // 5번핀모드를인풋풀업설정 pinmode(red_led, OUTPUT); //Red 핀출력설정 pinmode(green_led, OUTPUT); //Green 핀출력설정 pinmode(blue_led, OUTPUT); //Blue 핀출력설정 12
void loop() // 버튼상태값을입력 int Button1State = digitalread(button1); int Button2State = digitalread(button2); int Button3State = digitalread(button3); if(button1state == 0) // K0번이눌리면 Red LED digitalwrite(red_led,high); digitalwrite(green_led,low); digitalwrite(blue_led,low); else if(button2state == 0) // K1번이눌리면 Green LED digitalwrite(red_led,low); digitalwrite(green_led,high); digitalwrite(blue_led,low); else if (Button3State == 0) // K2번이눌리면 Bule LED digitalwrite(red_led,low); digitalwrite(green_led,low); digitalwrite(blue_led,high); else // 아무것도안눌리면모두꺼짐 digitalwrite(red_led,low); digitalwrite(green_led,low); digitalwrite(blue_led,low); 13
3) 부저모듈 예제설명 부저음이울리도록설정 연결도 Buzzer Genuino UNO GND <-> GND VCC <-> 5V OUTPUT <-> Pin 3 14
예제소스 /***************************************** Eleparts Geunino Stater Kit Connection: VCC => 5V OUTPUT => Pin 3 GND => GND ****************************************/ int buzzpin = 3; void setup() pinmode(buzzpin, OUTPUT); // 3 번핀출력으로설정 void loop() digitalwrite(buzzpin, HIGH); delay(1); digitalwrite(buzzpin, LOW); delay(1); 15
4) 진동센서 예제설명 진동이감지되면 13 번핀과연결된보드 LED ON 연결도 진동센서 Genuino UNO GND <-> GND VCC <-> 5V OUTPUT <-> Pin 3 16
예제소스 /***************************************** Eleparts Geunino Stater Kit Connection: VCC => 5V GND => GND OUTPUT => Pin 3 ****************************************/ #define SensorLED 13 #define SensorINPUT 3 // 진동센서 Pin 3 연결및 Interrupts 1. unsigned char state = 0; void setup() pinmode(sensorled, OUTPUT); pinmode(sensorinput, INPUT); attachinterrupt(1, blink, FALLING);// 하강에지가감지되면블링크기능을트리거 void loop() if(state!=0) state = 0; digitalwrite(sensorled,high); delay(500); else digitalwrite(sensorled,low); void blink()//interrupts function state++; 17
5) 초음파센서 예제설명 시리얼통신으로거리값을확인할수있으며거리값을확인할수없을경우 13 번핀과연결된 LED ON 연결도 초음파센서 Genuino UNO GND <-> GND VCC <-> 5V Trlg <-> Pin 8 Echo <-> Pin 7 18
예제소스 /***************************************** Eleparts Geunino Stater Kit Ultrasonic_Sensor Connection: echo => Pin 7 trig => Pin 8 VCC => 5V GND => GND ******************************************/ #define echopin 7 // Echo Pin #define trigpin 8 // Trigger Pin #define LEDPin 13 // LED 13 Pin int maximumrange = 200; // 최대범위설정 int minimumrange = 0; // 최소범위설정 long duration, distance; // 거리를계산하는데사용 void setup() Serial.begin (9600); // 9600보레이트설정 pinmode(trigpin, OUTPUT); pinmode(echopin, INPUT); pinmode(ledpin, OUTPUT); void loop() /* 트리거핀과에코핀사이클을이용음파를수신 */ digitalwrite(trigpin, LOW); delaymicroseconds(2); digitalwrite(trigpin, HIGH); delaymicroseconds(10); digitalwrite(trigpin, LOW); duration = pulsein(echopin, HIGH); distance = duration/58.2; 19
if (distance >= maximumrange distance <= minimumrange) /* 측정할수없을경우 LED ON */ Serial.println("-1"); digitalwrite(ledpin, HIGH); else Serial.println(distance); digitalwrite(ledpin, LOW); delay(50); 20
6) PIR 센서 제품사진 감지가되면 LED ON, 감지가안되면 LED OFF 연결도 PIR센서 Genuino UNO GND <-> GND VCC <-> 5V OUTPUT <-> Pin 8 21
예제소스 /***************************************** Eleparts Geunino Stater Kit PIR Sensor Connection: GND => GND VCC => 5V Data Pin => Pin 8 ****************************************/ int PIR_Pin = 8; // 8번핀에 Data Pin 설정 int val; void setup() pinmode(13, OUTPUT); // 13 번핀출력설정 void loop() val = digitalread(pir_pin); //PIR 상태 val 변수로입력 if (val == LOW) // 센서감지되면 digitalwrite(13, LOW); // 13번 LED ON else // 센서감지가안되면 digitalwrite(13, HIGH); // 13번 LED OFF delay(1000); 22
7) DHT11 온습도센서 예제설명 시리얼통신을이용온도, 습도를출력 연결도 PIR센서 Genuino UNO GND <-> GND VCC <-> 5V DATA OUT <-> Pin 8 23
예제소스 /***************************************** Eleparts Geunino Stater Kit Connection: VCC => 5V GND => GND OUTPUT => Pin 8 ****************************************/ int DHpin = 8; // Data Pin 8번설정 byte dat [5]; byte read_data () byte data; for (int i = 0; i < 8; i ++) if (digitalread (DHpin) == LOW) while (digitalread (DHpin) == LOW); // 50us 대기 delaymicroseconds (30); if (digitalread (DHpin) == HIGH) data = (1 << (7-i)); // 비트하나씩데이터전송 while (digitalread (DHpin) == HIGH); // data '1 ', 다음수신을대기 return data; void start_test () digitalwrite (DHpin, LOW); // 센서감지, 시작신호를보낸다 delay (30); // 지연시간이 18ms 이상으로 DHT11 신호를감지할수있음 digitalwrite (DHpin, HIGH); delaymicroseconds (40); // DHT11 응답대기 pinmode (DHpin, INPUT); while (digitalread (DHpin) == HIGH); delaymicroseconds (80); // DHT11 응답, 80us 딜레이 24
while (digitalread (DHpin) == LOW); delaymicroseconds (80); // DHT11 버스가데이터전송을한후 80us 딜레이 for (int i = 0; i < 4; i ++) dat[i] = read_data (); pinmode (DHpin, OUTPUT); digitalwrite (DHpin, HIGH); void setup () Serial.begin (9600); pinmode (DHpin, OUTPUT); void loop () start_test (); Serial.print ("Current humdity ="); Serial.print (dat [0], DEC); // 습도비트를정수로디스플레이 Serial.print ('.'); Serial.print (dat [1], DEC); // 소수자릿수디스플레이 Serial.println ('%'); Serial.print ("Current temperature ="); Serial.print (dat [2], DEC); // 온도비트를정수로디스플레이 Serial.print ('.'); Serial.print (dat [3], DEC); // 소수자릿수디스플레이 Serial.println ('C'); delay (700); 25
8) 블루투스 예제설명 블루투스모듈을이용한 LED ON/OFF 제어 연결도 블루투스 Genuino UNO GND <-> GND VCC <-> 5V TXD <-> Pin 2 RXD <-> Pin 3 26
예제소스 /***************************************** Eleparts Geunino Stater Kit Connection: VCC => 5V GND => GND TX => Pin 2 RX => Pin 3 ****************************************/ #include <SoftwareSerial.h> // 시리얼통신라이브러리호출 int bluetx=2; //Tx ( 보내는핀설정 ) int bluerx=3; //Rx ( 받는핀설정 ) SoftwareSerial myserial(bluetx, bluerx); // 시리얼통신을위한객체선언 String mystring=""; // 받는문자열 void setup() Serial.begin(9600); // 시리얼모니터 myserial.begin(9600); // 블루투스시리얼개방 pinmode(13, OUTPUT); //Pin 13을 OUTPUT으로설정 (LED ON/OFF) void loop() while(myserial.available()) //myserial 값이있으면 char mychar = (char)myserial.read(); //myserial int형식의값을 char형식으로변환 mystring+=mychar; // 수신되는문자열을 mystring에모두붙임 (1바이트씩전송되는것을모두붙임 ) delay(5); // 수신문자열끊김방지 if(!mystring.equals("")) //mystring 값이있다면 Serial.println("input value: "+mystring); // 시리얼모니터에 mystring 값출력 if(mystring=="on") //mystring 값이 'on' 이라면 digitalwrite(13, HIGH); //LED ON else 27
digitalwrite(13, LOW); //LED OFF mystring=""; //mystring 변수값초기화 APP 다운로드 ( 안드로이드버전 ) 아두이노프로그래밍을업로드한후핸드폰에서블루투스설정으로이동 HC-06 으로블루투스모듈이검색이되며페어링비밀번호 1234 를누르면페어링이성공 Arduino Bluetooth Control 다운로드 ( 다른블루투스시리얼통신 APP 도사용가능 ) APP 실행시다음과같이 HC-06 을연결하면됩니다. 28
Connected to HC-06 이나오면정상연결이된것이고 Terminal 아이콘을클릭후 Type data to Send 란에 on 을입력후전송하면 LED가 ON off 을입력후전송하면 LED가 OFF되는것을볼수있습니다. 29