BASIC4MCU | 질문게시판 | 아두이노 소스
페이지 정보
작성자 앙우앙 작성일2018-06-06 21:06 조회6,447회 댓글0건본문
안녕하세요! 빗물감지 센서와 먼지센서와 dc모터를 이용한 소스를 짜보았는데요 ! 구동해보았는데 빗물감지값은 읽지만 dc모터가 작동이 안되는데 이유를 알수가 없네요 뭐가 문제인지 모르겠는데 도와주세요 ㅠㅠ
#include <Serial.h>
int Raindrops_pin = A0; // 빗방울센서 핀
int Particle_pin = A1; // 먼지센서 핀float dust_value = 0; // 센서에서 입력 받은 미세먼지 값
float dustDensityug=0; // ug/m^3 값을계산int sensor_led = 12;
int enablePin = 11;
int in1Pin = 10;
int in2Pin = 9;boolean bReverse = false;
int nSpeed = 200;
int sRain=0;
int sParticle=0;int sampling = 280; // 적외선 led를 키고, 센서 값을 읽어 들여 미세먼지를 측정하는 샘플링 시간
int waiting = 40;
float stop_time = 9680; // 센서를 구동하지 않는 시간
void setup(){
Serial.begin(9600); // Serial monitor 전원 인가
pinMode(Raindrops_pin , INPUT); // 빗방울 감지핀을 아날로그 입력으로 설정
pinMode(sensor_led , OUTPUT); // 먼지센서 아날로그 출력으로 설정
pinMode(enablePin, OUTPUT);
pinMode(in1Pin, OUTPUT);
pinMode(in2Pin, OUTPUT);
}
void loop(){
sRain = analogRead(Raindrops_pin);
delay(100);
Serial.println(sRain);
digitalWrite(sensor_led, LOW);
delayMicroseconds(sampling);dust_value = analogRead(Particle_pin);
delayMicroseconds(waiting);
digitalWrite(sensor_led, HIGH);
delayMicroseconds(stop_time);
dustDensityug = (0.17 * (dust_value * (5.0 / 1024)) - 0.1) * 1000;
Serial.print(dustDensityug);
if((sRain < 100)){
setMotor(100,true);
}
else {
setMotor(100,false);
}sParticle = analogRead(Particle_pin);
delay(100);
if(30.0 < dustDensityug && dustDensityug <= 80.0){ // 먼지센서
setMotor(100,true);
}
else if(80.0 < dustDensityug && dustDensityug <= 150.0){
setMotor(100,false);
}
}void setMotor(int nSd, boolean bRe)
{
analogWrite(11, nSd);
analogWrite(12, nSd);
digitalWrite(9, !bRe);
digitalWrite(10, bRe);
}
댓글 0
조회수 6,447등록된 댓글이 없습니다.