질문게시판 > 답변 : 아두이노를 이용한 축이 회전하는 환풍기

인기검색어 > 아두이노 센서 ATMEGA128

최신글 질문게시판 동영상강좌 가입하기

▼ BASIC4MCU 후원업체 신제품 정보 ▼

▲ BASIC4MCU 후원업체 신제품 정보 ▲

BASIC4MCU > 질문게시판

답변 : 아두이노를 이용한 축이 회전하는 환풍기

페이지 정보

작성자 master 작성일18-10-29 07:20 조회1,588회 댓글0건

본문

 

// DateTime : 2018-10-29 오전 7:25:07
// by Ok-Hyun Park
//
#define U32 unsigned long
#include <DHT.h>
#define DHTTYPE DHT22
#define DHTPIN1 52
#define DHTPIN2 53
DHT dht1(DHTPIN1,DHTTYPE);
DHT dht2(DHTPIN2,DHTTYPE);
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
LiquidCrystal_I2C lcd(0x27,20,4);
//
#include <SoftwareSerial.h>
SoftwareSerial mySerial(13,11);
//
#include <Stepper.h>
const int stepsPerRevolution=100;
Stepper myStepper(stepsPerRevolution,8,9,10,3);
//
int MQ5LPG=48,MQ7CO=49;
int ENA=7,ENB=12;
int fan=4,led=6,buzzer=5;
//
U32  PM25;
float Tin=0,t_out=0;
int target=0,angle=0;
unsigned char Send_data[5]={0x11,0x02,0x0b,0x01,0xE1};
unsigned char recv_cnt=0,RxBuf[20];
//
void Send_CMD(void){
  for(char i=0i<5i++){ mySerial.write(Send_data[i]); delay(1); }
}
//
unsigned char Checksum_cal(void){
  unsigned char count,SUM=0;
  for(count=0count<19count++)SUM+=RxBuf[count];
  return 256-SUM;
}
//
void setup(){
  pinMode(fan,OUTPUT); pinMode(led,OUTPUT); pinMode(buzzer,OUTPUT); pinMode(11,OUTPUT);
  analogWrite(ENA,255); analogWrite(ENB,255);
  pinMode(13,INPUT);
  myStepper.setSpeed(60);
  lcd.init(); lcd.backlight();
  Serial.begin(9600); while(!Serial);
  mySerial.begin(9600); while(!mySerial);
}
//
void loop(){
  Send_CMD();
  while(1){
    if(mySerial.available()){
      RxBuf[recv_cnt++]=mySerial.read();
      if(recv_cnt==20){ recv_cnt=0break; }
    }
  }
  //
  if(Checksum_cal()==RxBuf[19]){
    PM25=(U32)RxBuf[3]<<24|(U32)RxBuf[4]<<16|(U32)RxBuf[5]<<8|(U32)RxBuf[6];
    Serial.write("PM2.5: "); Serial.println(PM25);
  }
  elseSerial.write("CHECKSUM Error"); }
  //
  Tin =dht1.readTemperature(); Serial.write("DHT_1: "); Serial.println(Tin);
  Tout=dht2.readTemperature(); Serial.write("DHT_2: "); Serial.println(Tout);
  Serial.write("MQ5LPG: "); Serial.println(digitalRead(MQ5LPG));
  Serial.write("MQ7CO: "); Serial.println(digitalRead(MQ7CO));
  //
  int dif=Tin-Tout// 실내 실외 온도차를 계산
  //
  if( !digitalRead(MQ5LPG) || !digitalRead(MQ7CO) || (PM25>=35.1) ){    // LPG or CO감지 or 미세먼지 농도가 높으면
    while(180>angle){ angle++; myStepper.step(1); delay(10); }          // 환풍기 외부 방향으로 열고
    analogWrite(fan,150); digitalWrite(led,HIGH); tone(buzzer,500,100); // 고속회전, 내부공기를 외부로 방출
  }
  else ifdif>0 ){ // 실내 온도가 더 높으면
    ifTin<=25 ){  // 실내 온도가 25도 이상이면
      while(180>angle){ angle++; myStepper.step(1); delay(10); }   // 환풍기 외부 방향으로 열고
      analogWrite(fan,150); digitalWrite(led,LOW); noTone(buzzer); // 고속회전, 내부공기를 외부로 방출
    }
  }
  else ifdif<0 ){ // 실외 온도가 더 높으면
    ifTin<=18 ){  // 실내 온도가 18도 이하면
      while(0<angle){ angle--; myStepper.step(-1); delay(10); }    // 환풍기 내부 방향으로 열고
      analogWrite(fan,150); digitalWrite(led,LOW); noTone(buzzer); // 고속회전, 외부공기를 내부로 유입
    }
  }
  else{                                                         // 위 조건에 해당하지 않으면
    analogWrite(fan,0); digitalWrite(led,HIGH); noTone(buzzer); // 정지
  }
  //
  lcd.setCursor(0,0); lcd.print("Tin: "); lcd.print(t1); lcd.print("Tout: "); lcd.print(Tout);
  lcd.setCursor(0,1); lcd.print("D: ");  lcd.print(PM25);
  delay(3000);
}

 

  • BASIC4MCU 작성글 SNS에 공유하기
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기
  • 카카오톡으로 보내기

댓글 : 0

조회수 : 1,588

등록된 댓글이 없습니다.

게시물 검색

BASIC4MCU > 질문게시판 목록

제목 날짜
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은… 스태프  19-01-15
공지 사이트 이용 안내 댓글[13] master  17-10-29
공지 [무료 공개] 소스코드 하이라이트 v2.0 beta [… 댓글[1] 첨부파일master  18-01-23
질문 아두이노 조도센서 질문입니다 댓글[1] horoong 새글 06:00
질문 atmega128 j-kit 질문입니다. 댓글[1] 붐붐 새글 20-09-19
질문 앱인벤터 스크린마다 블루투스 센서값 띄우기 댓글[1] 박효신조아요  20-09-16
질문 스텝모터 위치제어 질문 드립니다 댓글[1] 박취  20-09-15
질문 ATmega128 8음계 질문입니다! 댓글[5] oujowo  20-09-14
질문 아두이노 포토 인터럽터 질문입니다. sion  20-09-14
답변 답변 : 아두이노 포토 인터럽터 질문입니다. master  20-09-14
질문 유량센서 질문합니다! 댓글[1] zzzzz  20-09-14
질문 아두이노 IF문 관련 질문입니다 댓글[1] sjy1752  20-09-14
질문 PIR 센서를 이용한 아두이노에 대한 질문 13204  20-09-13
답변 답변 : PIR 센서를 이용한 아두이노에 대한 질문 master  20-09-13
질문 ATmega128 쿨링팬 동작에 관해 질문하고 싶습니다… 댓글[2] mbdd  20-09-12
질문 아두이노 블루투스센서 질문입니다. 댓글[1] 첨부파일mnbg02  20-09-11
질문 아두이노,모터 속도조절 아두초adui  20-09-10
답변 답변 : 아두이노,모터 속도조절 댓글[6] master  20-09-11
질문 미세먼지 측정기를 개조하여 별도의 모니터에 표시를 하고… 댓글[3] 은하수너머에  20-09-10
질문 아두이노 스마트 블라인드? 코드...도움... 요청 첨부파일losa  20-09-10
답변 답변 : 아두이노 스마트 블라인드? 코드...도움...… master  20-09-10
질문 atmega128 보드 질문입니다! 댓글[2] 망고  20-09-09
질문 RC카, 초음파를 이용하여 자율주행 질문입니다! 댓글[3] 첨부파일seojc  20-09-09
답변 답변 : RC카, 초음파를 이용하여 자율주행 질문입니다… 댓글[3] master  20-09-10
질문 아두이노 dac 전압제어 댓글[1] 213sswr  20-09-09
질문 아두이노 조도센서+LED를 스위치로 제어 댓글[1] 지이잉  20-09-08
질문 앱인벤터 블루투스 온습도제어 모터 오류 첨부파일박효신조아요  20-09-08
답변 답변 : 앱인벤터 블루투스 온습도제어 모터 오류 댓글[2] master  20-09-08
질문 아두이노 RFID 아두이노배우기  20-09-08
답변 답변 : 아두이노 RFID 댓글[1] master  20-09-08
게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전