아두이노 > 아두이노 수위센서 부저 DS18S20 온도센서 2색LED

TODAY375 TOTAL182,575
사이트 이용안내
Login▼/회원가입
포럼 동영상강좌 회원가입


BASIC4MCU | 아두이노 | 아두이노 | 아두이노 수위센서 부저 DS18S20 온도센서 2색LED

페이지 정보

작성자 master 작성일2018-06-26 17:26 조회52회 댓글0건

본문

	

 

 

// DateTime : 2018-06-26 오후 5:28:59
// by Ok-Hyun Park
//
1.수위센서 피에조 부저 이용 수위 500 넘었을때 부저에서 소리 
2.온도 센서.온도 40 넘으면 빨간 led 불들어옴 넘지 않을땐 파랑 led 불들어옴
//
#include <OneWire.h>
int DS18S20_Pin=2//온도센서 2번 핀 연결
int red =11;       //빨간색led 11번 핀 연결
int blue=10;       //파란색led 10번 핀 연결
OneWire ds(DS18S20_Pin);
//
void setup(){
  pinMode(9,OUTPUT);   // 피에조 부저
  pinMode(red,OUTPUT); pinMode(blue,OUTPUT);
  Serial.begin(9600);
}
//
void loop(){
  int level=analogRead(A0); // 수위센서
  Serial.println(level);
  if(level>500){ analogWrite(9,HIGH); } // 부저ON
  else         { analogWrite(9,LOW ); } // 부저OFF
  //
  float temperature=getTemp(); //온도 측정 후 변수에 저장
  Serial.println(temperature);
  if(temperature<40){ digitalWrite(red,LOW ); digitalWrite(blue,HIGH); } // 40도 이하,파란색
  else              { digitalWrite(red,HIGH); digitalWrite(blue,LOW ); } // 40도 이상,빨간색
  delay(100);
}
//
float getTemp(){ //온도 측정 후 반환하는 함수
  byte MSB,LSB,data[12],addr[8];
  if(!ds.search(addr)              ){ ds.reset_search();                        return -1000; }  
  if(OneWire::crc8(addr,7)!=addr[7]){ Serial.println("CRC is not valid!");      return -1000; }
  if(addr[0]!=0x10 && addr[0]!=0x28){ Serial.print("Device is not recognized"); return -1000; }
  ds.reset();
  ds.select(addr);
  ds.write(0x44,1);
  byte present=ds.reset();
  ds.select(addr);
  ds.write(0xBE);
  for(int i=0;i<9;i++)data[i]=ds.read();
  ds.reset_search();
  MSB=data[1]; LSB=data[0];
  float tempRead=((MSB<<8)|LSB);
  float TemperatureSum=tempRead/16;
  return TemperatureSum;
}

 

 

댓글 0

조회수 52

등록된 댓글이 없습니다.

아두이노HOME > 아두이노 > 전체 목록

게시물 검색

Privacy Policy
MCU BASIC ⓒ 2017