BASIC4MCU | 질문게시판 | 아두이노 수위센서 부저 DS18S20 온도센서 2색LED
페이지 정보
작성자 master 작성일2018-06-26 17:26 조회4,479회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=5565
본문
// MCU BASIC: https://www.basic4mcu.com// 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); } // 부저ONelse { 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
조회수 4,479등록된 댓글이 없습니다.