아두이노와 초음파 센서를 이용한 거리 측정값을 LCD에 표시하는 방법입니다.

 

※ 준비물

 

- 아두이노 우노

- 브레드보드

- 초음파센서 HC-SR04

- 1602LCD

- 1KΩ 저항 1EA

- 점퍼 와이어


※ 브레드 보드 배선


※ 아두이노 코드

 

# include<LiquidCrystal.h>                   //LCD 헤더호출


# define TRIG 8                                 // 초음파 센서 트리거 8번

# define ECHO 9                                // 초음파 센서 에코 9번


LiquidCrystal lcd(12, 11, 2, 3, 4, 5);         // LCD 연결 핀번호 선언


void setup()

 pinMode(TRIG, OUTPUT);                   // 트리거 출력

 pinMode(ECHO, INPUT);                    // 에코 입력

 lcd.begin(16, 2);                               // LCD 열,행 지정

}


void loop()

{

  digitalWrite(TRIG, LOW);                 //초음파센서 main 작업

  delayMicroseconds(2);

  digitalWrite(TRIG, HIGH);

  delayMicroseconds(10);

  digitalWrite(TRIG, LOW);


long distance = pulseIn(ECHO, HIGH)/58.2;      // 초음파 입력값 CM 환산

lcd.clear();                                                // LCD 화면 전체 초기화

lcd.setCursor(0,0);                                      // LCD 커서 시작점 셋팅

lcd.print(distance);                                     // distance 변수값 출력

lcd.println(" cm");                                         // cm 문자 출력

delay(1000);                                   

}

 

상기 코드 업로드 완료 시 초음파 센서와 물체간의 간격이 1초간격으로 측정되어

LCD에 표시됩니다.

 

'아두이노' 카테고리의 다른 글

LCD온도표시  (0) 2016.07.27
포토센서  (0) 2016.07.27
신호등제어  (0) 2016.07.27
코드밴더  (0) 2016.07.27
아두이노 블루투스 LED, 모터제어  (0) 2016.07.20

아두이노와 습도센서를 사용하여 LCD에 온습도 값을 표시하는 방법입니다.


※ 준비물

- 아두이노 우노

- 1602LCD

- DHT11 습도센서

- 220Ω 저항 1EA

- 10KΩ 저항 1EA

- 가변저항 1EA (LCD 폰트 밝기조절)

- 점퍼 와이어

 

--> 아래 회로도에서 DHT11 좌측 1,2번 핀 사이를 10KΩ 저항으로 연결해주세요 (VCC, Signal)

-

※아두이노 코드

 

#include <DHT11.h>               //DHT11 헤 호출

#include <LiquidCrystal.h>        //1602LCD 헤더 호출

LiquidCrystal lcd(12, 11, ,5, 4, 3, 2);

int pin=8;                             // DHT11 Signal 연결 핀번호

  DHT11 dht11(pin);                // NTC temp.measurement component 

                                         // (Negative Temperature Coefficient)

void setup()

{

   lcd.begin(16, 2);                 // LCD의 열행 선언

   pinMode(4, OUTPUT);         //Motor 출력

}


void loop()

{

  int err;

  float temp, humi;

  if((err=dht11.read(humi, temp))==0) 


/* 위 if문과 같은코드

  int err=dht11.read(humi, temp);

  if(err==0)

  센서에서 정삭적으로 값을 읽어왔을때 실행, 함수는 리턴값을 가직수 있으며dht11.read() 함수는 센서의 리딩값이 아닌 상태값을 가져오는 함수로 이 값을 err 변수에 저장후 0이면 정상 그외는 비정상코드를 실행, 정상일때 0을 반환하며 checksum 에러는 -1, 타임아웃은 2를 반환

*/

  {

    lcd.setCursor(0, 0);                  // LCD 출력위치

    lcd.print("temperature:");          // "temperature" 텍스트 출력

    lcd.print(temp);                      // 온도값 출력

    lcd.println();                           // 한칸 줄바꿈(ln에서 l = 소문자L )

    lcd.setCursor(0, 1);                  // LCD 출력위치

    lcd.print("humidity:");               // "humidity" 텍스트 출력

    lcd.print(humi);                       // 습도값 출력

  

  }

  else                                  //  err변수에 0이 담기지 않을 경우

  {

    lcd.clear();                        // LCD 화면 비우기

    lcd.setCursor(0, 0);            // LCD 출력위치

    lcd.println();                    //줄 바꿈 (엔터)

    lcd.print("Error No :");       // "Error No :" 텍스트 출력

    lcd.print(err);                   // err 출력

    lcd.println();                    //줄 바꿈 (엔터)

  }

}

 

1602 LCD에 1행에 온도가, 2행에 습도가 표시되는것을 확인할 수 있습니다.

'아두이노' 카테고리의 다른 글

초음파센서 LCD  (0) 2016.07.27
포토센서  (0) 2016.07.27
신호등제어  (0) 2016.07.27
코드밴더  (0) 2016.07.27
아두이노 블루투스 LED, 모터제어  (0) 2016.07.20

1602 LCD와 포토센서 연결하여 LCD로 출력값을 나타내는 방법입니다.


※ 준비물 

아두이노 우노 1EA

1602LCD 1EA

포토센서 1EA

점퍼 와이어 적당히

10KΩ 저항 1EA

1KΩ 저항 1EA


※ 배선연결



※ 아두이노 코드


#include <LiquidCrystal.h>             // LCD 헤더 호출 LiquidCrystal lcd(12, 11, 2, 3, 4, 5);             // LiquidCrystal 라이브러리 초기화 명령 void setup()

{      lcd.begin(16, 2);                         // LCD Cell 규격, 16개의 글자를 2줄로 표시 ,      lcd.print("hello, world!"); } void loop()

{     lcd.setCursor(0,1); //출력위치 시작점      lcd.print(analogRead(A0)); //Analog 입력값을 출력     delay(200); }


LCD에 포토센서 입력 아날로그 값이 0.2초 간격으로 표시됩니다.

 

'아두이노' 카테고리의 다른 글

초음파센서 LCD  (0) 2016.07.27
LCD온도표시  (0) 2016.07.27
신호등제어  (0) 2016.07.27
코드밴더  (0) 2016.07.27
아두이노 블루투스 LED, 모터제어  (0) 2016.07.20

Traffic sign control with Arduino UNO

int redPin = 2;     //2번 포트를 redPin으로 지정

int yellowPin = 3;     //3번포트

int greenPin = 4; 

int buttonPin = 5;

int state = 0;        //상태변수 state를 0으로 default(=초기화)시킴



void setLights(int red, int yellow, int green)     //메소드::함수를 새로 만드는 코드

//문법:: 변수명(내부변수, 내부변수, 내부변수)

digitalWrite(redPin, red);

digitalWrite(yellowPin, yellow); 

digitalWrite(greenPin, green); 

}



void setup() 

pinMode(redPin, OUTPUT);

pinMode(yellowPin, OUTPUT);

pinMode(greenPin, OUTPUT);        //LED를 출력으로 지정

pinMode(buttonPin, INPUT);         //버튼은 입력으로 지정

}



void loop() 

if (digitalRead(buttonPin))   

//만약 버튼핀의 Digital값을 읽었을때 이 값이 True인가? (입력이 되었는가? /False는 앞에 !를 붙인다.)

//풀업 풀다운 그림 링크

if (state == 0)        //초기상태

setLights(HIGH, LOW, LOW); 

state = 1;          //현재상태 (이런 변수를 보통 Flag bit라고 부른다.)

else if (state == 1) 

setLights(HIGH, HIGH, LOW); 

state = 2;    //현재상태의 Flag bit는 2

 }

else if (state == 2) 

setLights(LOW, LOW, HIGH); 

state = 3; 

else if (state == 3) 

setLights(LOW, HIGH, LOW); 

state = 0; 

delay(3000);

delay(1000); 

}

 

'아두이노' 카테고리의 다른 글

LCD온도표시  (0) 2016.07.27
포토센서  (0) 2016.07.27
코드밴더  (0) 2016.07.27
아두이노 블루투스 LED, 모터제어  (0) 2016.07.20
아두이노 블루투스 연결기초  (0) 2016.07.20

아두이노 코딩을 웹으로 작성 및 저장할 수 있는 코드밴더라는 사이트를 소개하겠습니다.


장점은 빠른설치, 클라우드 방식으로 타인과 코드 공유가능하며 인터넷이 되는 곳에서는

어디서나 코드를 불러올 수 있습니다.  링크 <<눌러주세요.


▶ 우측 상단 Register를 클릭합니다.


 ▶ 가입시 사용할 User name, E-mail 주소, Password를 입력 후 Register를 눌러주세요.


▶ 입력한 E-mail 주소로 도착한 메일을 열어 Confirm Account를 눌러주세요


▶ 설정을 위한 5단계의 설정이 있습니다. 2분이면 끝납니다. GET ME THERE을 클릭하세요.


▶ Let's Go 누르고 2단계는 동영상 tutorial 같은데 자동으로 3단계 넘어갑니다.


▶ 아두이노 보드 칩셋을 동작시킬 드라이버를 다운로드 및 실행합니다. 

    이미 아두이노에 코딩을 했었다면 추가 다운로드할 필요는 없습니다.


▶ Arduino Uno로 선택 후 USB 포트에 아두이노를 연결합니다. 자동으로 COM6 연결됨 

   다른 보드도 선택가능합니다.

▶ 5단계 설정이 완료되면 위 화면이 나옵니다. 가운데 하단 Homepage를 클릭하여 이동합니다.


▶ 우측 중간의 Create Sketch를 눌러주세요.


▶ 작성할 스케치의 속성 설정입니다. Sketch type 및 이름, 설명을 작성 후 Create를 눌러주세요.

▶ 이제 코드를 작성하면 됩니다. 

Verify Code : Compile 기능

Run on Arduino : 보드에 스케치 업로드

Save Sketch : 코드밴더에 스케치 저장


It takes only 5 minutes.

'아두이노' 카테고리의 다른 글

포토센서  (0) 2016.07.27
신호등제어  (0) 2016.07.27
아두이노 블루투스 LED, 모터제어  (0) 2016.07.20
아두이노 블루투스 연결기초  (0) 2016.07.20
아두이노 개발환경 설치  (0) 2016.07.20

아두이노 블루투스 LED, 모터제어

 

아두이노 보드와 블루투스 어플을 사용하여 LED 및 DC 모터를 제어하는 방법을 소개합니다.

 

적용어플은 이번에 적용할 코드에 특성화된 어플이기에 하기와 같이 접속하여 다운받으시기

바랍니다.

 

# 어플 다운로드 방법

  플레이스토어에서 Arduino Bluetooth 검색

 

 

 

# 아두이노 회로구성은 다음과 같습니다.

   - led에 220Ω 저항하나 추가해주세요. 저항 위치는 LED +,-극 어디에 연결해도

     상관없습니다.

 

 

DC 모터를 연결하고 싶다면 시 LED를 제거 후 모터를 연결하면 됩니다. ↓↓

위와 같은 종류의 DC 모터는 무극성 타입이며 +,- 연결 순서에 따라 회전방향이 달라집니다.

 

아두이노 코드는 다음과 같습니다.

 

#include <SoftwareSerial.h>

 

int bluetoothTx = 2;             // 디지털 2번핀 블루투스 TX핀 지정

int bluetoothRx = 3;            // 디지털 3번핀 블루투스 RX핀 지정

int led = 13;                      // 디지털 13번 핀 led 지정

int buttonPin1 = 7;             // 디지털 7번 핀 1번 버튼 지정

int buttonPin2 = 8;             // 디지털 8번 핀 2번 버튼 지정

int button1State = 0;          // 1번 버튼 상태 초기화

int button2State = 0;          // 2번 버튼 상태 초기화

int dataFromBt;                 // Bluetooth 앱으로부터 입력이 담길 변수 지정 

 

boolean lightBlink = false;    //boolean 변수 lightBlink에 거짓값 담는다. (초기화)

 

SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);   //소프트웨어 시리얼 채널 지정

//하드웨어 시리얼인 아두이노의 Tx, Rx 핀을 사용하면 코드 업로드 및 다운로드 시  충돌 발생

 

void setup()

{

  Serial.begin(9600);            // 초당 9600비트 시리얼 통신 시작

  bluetooth.begin(9600);      // 초당 9600비트 블루투스 통신 시작

  pinMode(led, OUTPUT);     // led 연결 핀  출력지정

  pinMode(buttonPin1, INPUT); // 1번 버튼 연결 핀 입력지정

  pinMode(buttonPin2, INPUT); // 2번 버튼 연결 핀 입력지정

}

 

void loop()

{

 

  if (bluetooth.available())                 //bluetooth 사용 가능시

  { 

    // Serial.println((char)bluetooth.read());

    dataFromBt = bluetooth.read();     // bluetooth 입력값이 변수에 담긴다

 

    if (dataFromBt == '1')                 // bluetooth 입력이 1이면 

    {             

        Serial.println("led on");            // 시리얼모니터에 "led on" 출력

        digitalWrite(led, HIGH);           // led ON

        bluetooth.print("1");              // bluetooth 1을 출력한다.

    }

   if (dataFromBt == '0')                 //bluetooth 입력이 0이면 

   {

      Serial.println("led off");             // 시리얼모니터에 "led off" 출력

      digitalWrite(led, LOW);             // led OFF

      bluetooth.print("0");                 // bluetooth 앱의 off 버튼 동작

    }

    if (dataFromBt == 'b')                // 변수에 b가 입력되면(앱에서 b입력시)

    {

       Serial.println("a");                  // 시리얼 모니터 a출력

       lightBlink = true;                  // lightBlink 변수에 참값을 넣는다.

    }

    else                                       //변수에 b가 입력되지 않을 시

    {

       lightBlink = false;                 // lightBlink 변수에 거짓값을 넣는다.

    }

  }

    if (lightBlink)                         // lightBlink 참이면 (블루투수 b 입력시) led 점멸 반복

    {

       digitalWrite(led, HIGH);        // led ON

       bluetooth.print("1");            // 블루투스 1출력

       Serial.println("HIGH");          // 시리얼 모니터에서 "HIGH"를 출력

       delay(500);                       // 0.5초 딜레이

       digitalWrite(led, LOW);        // led OFF

       bluetooth.print("0");            // 블루투스 0 출력

       Serial.println("LOW");           //시리얼 모니터에서 "LOW"를 출력

       delay(500);                        // 0.5초 딜레이

  }

 

  //------arduino push button code----------------

 

  button1State = digitalRead(buttonPin1);      // 1번 버튼 상태값 변수에 7번핀 입력값을 대입

  button2State = digitalRead(buttonPin2);      // 2번 버튼 상태값 변수에 8번핀 입력값을 대입

  if (button1State == HIGH)                        // 버튼1번 누를 시

  { 

     digitalWrite(led, HIGH);                         // led ON

     bluetooth.print("1");                             // 블루투스 앱 1 출력

     Serial.println("on");                               //시리얼모니터 "on" 출력

  }

  if (button2State == HIGH)                         //버튼2번 누를 시 

  { 

      digitalWrite(led, LOW);                         // led OFF

      bluetooth.print("0");                             // 블루투스 앱 0 출력

      Serial.println("off");                              //시리얼모니터 "off" 출력

   }

}

 

 

원본 작성자가 올린코드는 약간의 에러가 있어 하기를 주석처리 하였습니다.

// Serial.println((char)bluetooth.read());

 

그로인해 시리얼 모니터 출력내용 코드 일부는 실행되지 않고 있습니다.

 

원본내용은 유투브 동영상에 연결되어 있으니 링크를 눌러주세요.

'아두이노' 카테고리의 다른 글

포토센서  (0) 2016.07.27
신호등제어  (0) 2016.07.27
코드밴더  (0) 2016.07.27
아두이노 블루투스 연결기초  (0) 2016.07.20
아두이노 개발환경 설치  (0) 2016.07.20

아두이노와 블루투스(HC-06)간 어플을 사용하여 SoftwareSerial을 이용한 통신 기초내용입니다

 

적용어플은 이번에 적용할 코드에 특성화된 어플이기에 하기와 같이 접속하여 다운받으시기

바랍니다.

 

# 어플 다운로드 방법

  플레이스토어에서 BlueTerm 검색

 

 

 

하기와 같이 아두이노와 블루투스를 연결합니다.


아두이노 코드는 하기와 같다.


#include <SoftwareSerial.h>     // 소프트웨어 시리얼 헤더파일 호출


SoftwareSerial BTSerial(2,3);     // 블루투스 TX, RX를 아두이노 디지털핀 2,3번 지정 (초기화)


void setup()  

  { 

      Serial.begin(9600);           // 아두이노의 시리얼 모니터 통신속도

     

     BTSerial.begin(9600);         // Bluetooth 통신속도

}


void loop()

  if (BTSerial.available()) {            // 블루투스 시리얼 OPEN 시

    Serial.write(BTSerial.read());     // 블루투스 어플 입력값을 시리얼 모니터 출력

  }

  if (Serial.available()) {               // 시리얼 OPEN 시

    BTSerial.write(Serial.read());     // 시리얼모니터 입력값 블루투스 어플 출력

    

  }

}



휴대폰 블루투스기능 ON 시킨 후 BlueTerm 어플을 실행한다.


어플 실행 후 하기 화면 connect device선택 후 HC-06 블루투스 모듈 선택한다.


# 블루투스모듈 연결 password 초기값은 1234




상기 셋팅 후 블루투스 어플과 시리얼 모니터간의 텍스트 전송이 가능하다.

 

'아두이노' 카테고리의 다른 글

포토센서  (0) 2016.07.27
신호등제어  (0) 2016.07.27
코드밴더  (0) 2016.07.27
아두이노 블루투스 LED, 모터제어  (0) 2016.07.20
아두이노 개발환경 설치  (0) 2016.07.20

아두이노 개발환경 설치

 

아두이노 개발환경 설치에 관한 설명입니다.

 

아두이노 홈페이지로 접속하여 프로그램을 다운로드 합니다. << 링크를 눌러주세요.

 

아두이노 홈페이지의 좌측 상단메뉴에서 세번째의 Download를 클릭합니다.

 

우측의 Windows installer를 클릭합니다. 본인의 운영체제에 맞게 선택하면 됩니다.

 

상단 화면은 기부를 할 것인지에 대한 선택창입니다.

하단 좌측의 JUST DOWNLOAD로 기부없이 프로그램을 설치합니다.

 

설치파일로 아두이노 개발환경을 설치합니다.

 

바탕화면에 생성된 아두이노 아이콘을 실행시키면 개발환경이 성공적으로 설치된 것을

확인할 수 있습니다.

'아두이노' 카테고리의 다른 글

포토센서  (0) 2016.07.27
신호등제어  (0) 2016.07.27
코드밴더  (0) 2016.07.27
아두이노 블루투스 LED, 모터제어  (0) 2016.07.20
아두이노 블루투스 연결기초  (0) 2016.07.20

+ Recent posts