BASIC4MCU | 질문게시판 | 답변 : 세 가지 코드들을 모두 한 번에 나타내고 싶습니다.
페이지 정보
작성자 master 작성일2019-06-12 20:33 조회247회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=9359
본문
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2019-06-12 오후 8:28:25// by Ok-Hyun Park//#include <SoftwareSerial.h>SoftwareSerial btSerial(2,3);//#include <Stepper.h>const int stepsPerRevolution=1024; // 1024는 90도를 의미Stepper myStepper(stepsPerRevolution,11,9,10,8); // 회전각도와 연결할 핀 번호//#include <DHT.h>#define DHTPIN 4 // DHT센서를 4번 핀에 연결#define DHTTYPE DHT11DHT dht(DHTPIN,DHTTYPE);//int gasPin=A0; // 가스 핀을 A0번에 연결int fan=8,LED=9;//float h=0,t,f,hic,hif;int GasValue,flag=0;char val,mode=1; // 초기값 자동모드unsigned long dhttime;//void setup(){pinMode(fan,OUTPUT);pinMode(LED,OUTPUT);dht.begin();myStepper.setSpeed(14); // 스텝모터의 회전속도Serial.begin(9600);btSerial.begin(9600);dhttime=millis();}//void ss(){ Serial.print("GasValue="); Serial.println(GasValue); }//void loop(){if(btSerial.available()){val=btSerial.read();//if(val=='0'){ mode=0; // 정회전if(flag==0){ flag=1; myStepper.step(stepsPerRevolution); }}if(val=='1'){ mode=0; // 역회전if(flag==1){ flag=0; myStepper.step(-stepsPerRevolution); }}if(val=='2'){ mode=0; digitalWrite(fan,1); } // 수동모드 fan onif(val=='3'){ mode=0; digitalWrite(fan,0); } // 수동모드 fan off//if(val=='4'){ digitalWrite(LED,1); } // LED onif(val=='5'){ digitalWrite(LED,0); } // LED off//if(val=='A'){ mode=1; } // AUTO 모드로 변경}//----------------------------------------------------------------------------if(mode){ // mode=1(자동모드)일 때만 동작GasValue=analogRead(gasPin); // 가스핀의 값을 읽기//if(GasValue>=350){ // 정회전if(flag==0){ flag=1; myStepper.step(stepsPerRevolution); ss(); }}else if(GasValue<300){ // 역회전if(flag==1){ flag=0; myStepper.step(-stepsPerRevolution); ss(); }}//if(millis()-dhttime>=1500){ dhttime=millis();h=dht.readHumidity(); t=dht.readTemperature(); f=dht.readTemperature(true);if(isnan(h)||isnan(t)||isnan(f)){ Serial.println("Fail DHT!"); return; } // 온습도 읽기 실패hic=dht.computeHeatIndex(t,h,false);hif=dht.computeHeatIndex(f,h);//Serial.print("습도: "); Serial.print(h); Serial.print("%");Serial.print("온도: "); Serial.print(t); Serial.println(" 도 ");//if(h>=50){ digitalWrite(fan,1); } // 자동모드 fan onelse { digitalWrite(fan,0); } // 자동모드 fan off}}}
LED는 센서로 제어하지 않으므로 모드를 변경하지 않습니다.
댓글 0
조회수 247등록된 댓글이 없습니다.