BASIC4MCU | 질문게시판 | 답변 : 아두이노 소스 합치기
페이지 정보
작성자 master 작성일2019-02-11 00:48 조회293회 댓글1건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=7697
본문
// MCU BASIC: https://www.basic4mcu.com// 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 =A1int 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); delayMicroseconds( 280); // samplingTimefloat voMeasured=analogRead(DUST_output); delayMicroseconds( 40); // deltaTimedigitalWrite(ledPower,1); delayMicroseconds(9680); // sleepTimefloat 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(green, 50); 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);}
남는 핀이 없겠습니다.
참고해서 완성시켜보세요
댓글 1
조회수 293열심히하자님의 댓글
열심히하자 작성일감사합니다. 참고해서 완성시키겠습니다!