BASIC4MCU | 질문게시판 | 답변 : 아두이노 소스합치기(속도제어,온도센서,인체감지)
페이지 정보
작성자 master 작성일2018-12-04 17:21 조회3,536회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=6274
본문
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2018-12-04 오후 5:26:42// by Ok-Hyun Park//#include <OneWire.h>int DS18S20=2;OneWire ds(DS18S20);//int Dir1Pin_A=2;int Dir2Pin_A=3;int SpeedPin_A=10;//long t1,t2;bool swFalg=0,flag=0;//void setup(){pinMode(Dir1Pin_A,OUTPUT);pinMode(Dir2Pin_A,OUTPUT);pinMode(SpeedPin_A,OUTPUT);pinMode(6,INPUT); digitalWrite(6,LOW);Serial.begin(9600);t1=t2=t3=millis();}//void loop(){if(millis()-t1>1000){ t1=millis();float temperature=getTemp(); Serial.println(temperature);}//if(millis()-t2>8000){ t2=millis(); flag^=1;if(flag){ digitalWrite(Dir1Pin_A,HIGH); digitalWrite(Dir2Pin_A,LOW); analogWrite(SpeedPin_A,255); }else { digitalWrite(Dir1Pin_A,LOW); digitalWrite(Dir2Pin_A,HIGH); analogWrite(SpeedPin_A,51); }}//if(digitalRead(6)){if(swFalg==0){ swFalg=1; Serial.println("Somebody is here."); }}else{if(swFalg){ swFalg=0; Serial.println("Nobody."); }}}//float getTemp(){byte data[12];byte 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();byte MSB=data[1];byte LSB=data[0];float tempRead=((MSB<<8)|LSB);float TemperatureSum=tempRead/16;return TemperatureSum;}
댓글 0
조회수 3,536등록된 댓글이 없습니다.