아두이노와 습도센서를 사용하여 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

+ Recent posts