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

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

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

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

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

BASIC4MCU > 질문게시판

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

페이지 정보

작성자 master 작성일18-10-29 07:20 조회1,170회 댓글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,170

등록된 댓글이 없습니다.

게시물 검색

BASIC4MCU > 질문게시판 목록

제목 날짜
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은… 스태프  19-01-15
공지 사이트 이용 안내 댓글[10] master  17-10-29
공지 [무료 공개] 소스코드 하이라이트 v2.0 beta [… 댓글[1] 첨부파일master  18-01-23
질문 #전지역24시 #아가씨만남 #카톡:sohot69 #@H… mlo69 새글 01:02
질문 아두이노 미니서보모터 sg-90 질문[초보] 댓글[1] mapsul  20-01-24
질문 [초보]isp 케이블 어떤거 사야해요? 댓글[6] 에루후  20-01-22
질문 led 연속으로 켜기 질문.. 전자학습자  20-01-22
답변 답변 : led 연속으로 켜기 질문.. 댓글[2] master  20-01-22
질문 스위치 눌렀다떼면 동작 질문 전자학습자  20-01-22
답변 답변 : 스위치 눌렀다떼면 동작 질문 댓글[1] master  20-01-22
질문 스위치 누르기전에 동작합니다. 댓글[4] 전자학습자  20-01-21
질문 자석센서 데이터시트 댓글[2] 공기구함  20-01-21
질문 1602LCD에 실수 넣기 질문드립니다. 댓글[2] 전자학습자  20-01-21
질문 비접촉식 온도센서와 초음파센서 피에조 스피커를 이용 댓글[3] 첨부파일공기구함  20-01-21
질문 아두이노 초음파 rc카 댓글[2] pasha  20-01-19
질문 금속근접센서 LJ12A34Z/BX 아두이노 문의(2) 댓글[2] 첨부파일mapsul  20-01-17
질문 금속근접센서 LJ12A34Z/BX 아두이노 문의 댓글[1] mapsul  20-01-17
질문 오버플로 모드와 CTC 모드에 대한 질문 댓글[7] 첨부파일barthory  20-01-15
질문 ATmega328P 타이머0 오버플로 인터럽트 코드와 … 댓글[5] 첨부파일barthory  20-01-15
질문 아두이노 우노 r3 스텝모터 엔코더 제어 댓글[2] britoshu  20-01-15
질문 ATmega128과 앱 인벤터 블루투스 댓글[4] dosin  20-01-14
질문 아두이노 5상 스텝모터 회전속도 조절 댓글[4] 하나을  20-01-14
질문 Button 눌렀을 당시에 값저장 댓글[4] 콩zz  20-01-14
질문 아두이노 스텝모터 제어에 대하여.. 첨부파일sims  20-01-13
답변 답변 : 아두이노 스텝모터 제어에 대하여.. 댓글[6] master  20-01-13
질문 센서값 초기화 댓글[4] 콩zz  20-01-13
질문 HC-06 블루투스 통신 dhdiw  20-01-07
답변 답변 : HC-06 블루투스 통신 master  20-01-08
질문 아두이노 프로 마이크로 Atmega32U4와 MPU-6… 댓글[11] takethiswaltz  20-01-06
질문 WS2812 제어. 댓글[1] ParkKH  20-01-06
게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전