BASIC4MCU | 질문게시판 | 아두이노 빗물센서 하우스 덮개 질문
페이지 정보
작성자 master 작성일2019-11-30 16:07 조회6,202회 댓글0건본문
아두이노 빗물센서를 이용하여 비가오면 하우스 덮개를 닫을려고 하는데요
int Raindrops_pin = A0;
int LED = 7;
int Buzzer = 13;void setup() {
Serial.begin(9600);
pinMode(LED, OUTPUT);
pinMode(Buzzer, OUTPUT);
}
void loop() {
Serial.println(analogRead(A0));
delay(10);if (analogRead(A0) < 1000) {
digitalWrite(7, HIGH);
delay(100);
digitalWrite(7, HIGH);tone(13, 520);
delay(200);
noTone(13);
delay(200);
}else {
digitalWrite( 7,LOW);
noTone(13);
}
}여기서 소스를 추가해서 디지털신호를 하나 더 출력해서 릴레이에 연결하려고합니다.
고수님들 도와주세요.
//
DC모터의 위치 제어는 엘리베이터 제어처럼 현재 위치를 가지고 있어야합니다.
즉, 현재 상태가 OPEN인지 CLOSE인지를 가지고 있다가
상태변경이 필요하면 모터를 구동해서 상태를 변경하고 위치 정보를 변경해줘야합니다.
또 경계값 근처에서 값이 변하게 되면 모터가 OPEN/CLOSE를 반복하게 되므로
소프트웨어 히스테리시스를 줘야합니다.
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2019-11-30 오후 4:07:18// by Ok-Hyun Park//#define CLOSE 0#define OPEN 1//int Raindrops_pin=A0;int Buzzer=13;int RLED=7,BLED=8;int IN1=9,IN2=10; // dc motor(L298)//int val;bool stat=OPEN; // 초기값 OPEN//void setup(){Serial.begin(9600);pinMode(Buzzer,OUTPUT);pinMode(RLED,OUTPUT); pinMode(BLED,OUTPUT);pinMode(IN1,OUTPUT); pinMode(IN2,OUTPUT);}//void loop(){val=analogRead(Raindrops_pin);Serial.println(val);//if(val<800){ // 0~800 rain 감지if(stat==OPEN){ stat=CLOSE;digitalWrite(BLED,HIGH); tone(Buzzer,520); // BLED 및 부저 ONdigitalWrite(IN1,HIGH); tone(IN2,LOW); // MOTOR CLOSEdelay(2000); // 일정시간 CLOSE 시킴digitalWrite(IN1,LOW); tone(IN2,LOW); // MOTOR STOPdigitalWrite(BLED,LOW); noTone(Buzzer); // BLED 및 부저 OFF}}else if(val<950){ // 800~950 히스테리시스 구간,동작안함}else{ // 950~1023,비 그침if(stat==CLOSE){ stat=OPEN;digitalWrite(RLED,HIGH); tone(Buzzer,520); // RLED 및 부저 ONdigitalWrite(IN1,LOW); tone(IN2,HIGH); // MOTOR OPENdelay(2000); // 일정시간 OPEN 시킴digitalWrite(IN1,LOW); tone(IN2,LOW); // MOTOR STOPdigitalWrite(RLED,LOW); noTone(Buzzer); // RLED 및 부저 OFF}}}
LED를 2개 사용해서 OPEN때 구동하는 LED와 CLOSE때 구동하는 LED를 각각 구동해서
색상으로 모터 동작을 쉽게 인식하도록 수정했습니다.
tone(Buzzer,520);
코드에 구현이 안되어 있지만
OPEN 때의 부저음과 CLOSE때의 부저음을 달리하면 모터 동작상태를 소리로도 구분할 수 있게됩니다.
댓글 0
조회수 6,202등록된 댓글이 없습니다.