질문게시판 > 답변 : 아두이노 소스 합치기

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

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

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

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

BASIC4MCU > 질문게시판

답변 : 아두이노 소스 합치기

페이지 정보

작성자 master 작성일19-02-11 00:48 조회71회 댓글1건

본문

 

// DateTime : 2019-02-11 오전 12:54:02
// by Ok-Hyun Park
//----------------------------------------소스 1.
#include <SoftwareSerial.h>
int   T=2,R=3;
SoftwareSerial my_blue(T,R);
//
#include <DHT.h>
int temp_sensor=4;
DHT my_sensor(temp_sensor,DHT11);
//
#include <Servo.h>
Servo servo;
//
int   CDS_sensor  =A0// 조도센서
int   RAIN_sensor =A1
int   flame_sensor=A2;
int   SOUND_sensor=A3;
int   vibration_sensor=A4;
int   motor=A5;
//
int   ledPower=5;
int   sensor=6;
int   vibration_sensor=7;
int   red=10,green=9,blue=8;
int   RELAY=11;
int   PIR_sensor=12;
int   buzzer=13;
//
char  color;
int   flame=0,angle=0,freq=200;
//
void setup(){
  Serial.begin(9600);
  my_blue.begin(9600);
  //
  my_sensor.begin();
  //
  pinMode(ledPower,OUTPUT);
  pinMode(red,OUTPUT); pinMode(green,OUTPUT); pinMode(blue,OUTPUT);
  pinMode(buzzer,OUTPUT);
  //
  pinMode(PIR_sensor,INPUT);       // 인체감지센서
  pinMode(vibration_sensor,INPUT); // 진동센서
  pinMode(sensor,INPUT);
  pinMode(vibration_sensor,INPUT);
  //
  servo.attach(motor); servo.write(angle);
}
//
int getdust(){ 
  digitalWrite(ledPower,0);                 delayMicroseconds280); // samplingTime
  float voMeasured=analogRead(DUST_output); delayMicroseconds(  40); // deltaTime
  digitalWrite(ledPower,1);                 delayMicroseconds(9680); // sleepTime
  float calcVoltage=voMeasured*(3.3/1024);
  float dustDensity=100*calcVoltage-0.1;
  return(dustDensity);
}
//
void redFunction()   { digitalWrite(blue,  0); digitalWrite(green,  0); digitalWrite(red,  1); }
void blueFunction()  { digitalWrite(blue,  1); digitalWrite(green,  0); digitalWrite(red,  0); }
void greenFunction() { digitalWrite(blue,  0); digitalWrite(green,  1); digitalWrite(red,  0); }
void yellowFunction(){ digitalWrite(blue,  0); digitalWrite(green50); digitalWrite(red,255); }
void violetFunction(){ digitalWrite(blue,255); digitalWrite(green,  0); digitalWrite(red,255); }
void whiteFunction() { digitalWrite(blue,110); digitalWrite(green,220); digitalWrite(red,255); }
void cyanFunction()  { digitalWrite(blue,255); digitalWrite(green,255); digitalWrite(red,  0); }
//
void loop(){
  if(Serial.available()){
    color=Serial.read();
    if(color=='r'){ redFunction();    }
    if(color=='b'){ blueFunction();   }
    if(color=='g'){ greenFunction();  }
    if(color=='y'){ yellowFunction(); }
    if(color=='v'){ violetFunction(); }
    if(color=='w'){ whiteFunction();  }
    if(color=='c'){ cyanFunction();   }
  }
  //----------------------------------------------
  if(++count>=10){ count=0// 1초마다 측정
    int a=map(getdust(),8,133,10,100);
    char b[4]="";
    sprintf(b,"%03d",a); Serial.print("dust: "); Serial.println(b); delay(250);
    //----------------------------------------------
    int readingSensor=analogRead(RAIN_sensor);
    Serial.print("rain: "); Serial.println(readingSensor); Serial.println();
    //----------------------------------------------
    int temp=my_sensor.readTemperature();
    int humi=my_sensor.readHumidity();
    my_blue.print("temp: ");  my_blue.print(temp);
    my_blue.print("/humi: "); my_blue.println(humi);
    //----------------------------------------------
    int sensor=analogRead(CDS_sensor); // 조도센서의 데이터 받아오기
    //
    if(sensor>1000){           // 주위가 어둡다면
      if(angle<180)servo.write(++angle); // 서보 모터의 각도를 180도로
    }
    else// 주위가 밝다면
      if(angle>0)servo.write(--angle); // 서보 모터의 각도를 180도로
    }
    //----------------------------------------------
    flame=analogRead(flame_sensor);
    Serial.print("Flame="); Serial.println(flame); // 시리얼통신 화면에 변수에 저장된 값을 출력
    //
    if(flame>0){
      Serial.println(" Flame is around you ");
      if(freq!=1000)tone(buzzer,1000,50); else tone(buzzer,200,50);
    }
  }
  //----------------------------------------------
  int vibration_data=digitalRead(vibration_sensor);
  Serial.print("vib: "); Serial.println(vibration_data);
  //----------------------------------------------
  int value=digitalRead(PIR_sensor);
  Serial.println(value);
  digitalWrite(RELAY,value); // 인체 감지되면 2번에 전류를 흘려라 // 인체감지가 안되면 전류를 끊어라
  //----------------------------------------------
  int Val=analogRead(SOUND_sensor); // 사운드센서 소음 측정
  if(Val>40)Serial.println(Val);
  //----------------------------------------------
  delay(100); noTone(buzzer);
}

 

남는 핀이 없겠습니다.

참고해서 완성시켜보세요

 

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

댓글 : 1

조회수 : 71

열심히하자님의 댓글

열심히하자 작성일

감사합니다. 참고해서 완성시키겠습니다!

게시물 검색

BASIC4MCU > 질문게시판 목록

제목 날짜
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은… 스태프  19-01-15
공지 사이트 이용 안내 댓글[6] master  17-10-29
공지 [무료 공개] 소스코드 하이라이트 v2.0 beta [… 댓글[1] 첨부파일master  18-01-23
질문 아두이노 모터드라이버 L293B를 이용한 제어 질문 드… 댓글[5] 닷모드 새글 19-04-19
질문 아트메가128 pwm신호 반송주기 질문있어요 댓글[3] 썰지 새글 19-04-19
질문 원하는 문자열 잘라쓰는 방법 댓글[1] 알라알 새글 19-04-19
질문 입력신호 처리가 궁금해요 스캉이 새글 19-04-19
답변 답변 : 입력신호 처리가 궁금해요 댓글[5] master 새글 19-04-19
답변 답변 : 입력신호 처리가 궁금해요 master 새글 19-04-19
질문 RS-485를 이용한 PC에서 여러개의 LCD제어 첨부파일알라알  19-04-18
답변 답변 : RS-485를 이용한 PC에서 여러개의 LCD… master 새글 19-04-19
질문 아두이노 모터 정역제어 맛나는바나나  19-04-18
답변 답변 : 아두이노 모터 정역제어 master 새글 19-04-19
질문 RS485 시리얼통신 코딩 제발 부탁합니다ㅠㅠ 댓글[2] 알라알  19-04-18
질문 processing 질문 입니다 . 댓글[1] 배울께요  19-04-18
질문 Atmega328p 인터럽트 질문 댓글[1] 롯데캐슬아파트  19-04-17
질문 아두이노 코딩 제발 부탁드려요 ㅠㅠ! 댓글[1] 훈야  19-04-17
질문 아두이노 초보.... 답 좀 알려주세요 댓글[1] 아두이노쓰  19-04-17
질문 atmega128 twi통신 통신상태 점검 소스 질문 댓글[1] wiopf1  19-04-17
질문 소리 인식을 하여 led가 켜졌을 시 자동으로 10초 … 달성폴리텍  19-04-17
답변 답변 : 소리 인식을 하여 led가 켜졌을 시 자동으로… master  19-04-17
질문 아두이노 먼지센서 대해서.. 첨부파일마늘짱아찌  19-04-17
답변 답변 : 아두이노 먼지센서 대해서.. master  19-04-17
질문 스위치 입력으로 출력제어 댓글[2] 스캉이  19-04-17
질문 LCD 표시 댓글[1] 배울께요  19-04-17
질문 가변저항을 돌려서 3개의 FND 응용 질문 댓글[2] 배울께요  19-04-16
질문 빛 센서를 이용해서 어두워 지면 하트 모양이 나오게 표… 배울께요  19-04-16
질문 서브 모터 돌아가는 각도를 LCD에 표시하는 연습하고 … 배울께요  19-04-16
질문 아두이노 먼지센서쪽에서 오류값에러...! 첨부파일마늘짱아찌  19-04-16
답변 답변 : 아두이노 먼지센서쪽에서 오류값에러...! 댓글[1] master  19-04-16
게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전