질문게시판 > 아두이노 입문자 과제 중인데 막혔습니다 ㅜㅜ

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

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

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

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

BASIC4MCU > 질문게시판

아두이노 입문자 과제 중인데 막혔습니다 ㅜㅜ

페이지 정보

작성자 링여 작성일22-11-30 21:49 조회1,481회 댓글0건

본문

요약 : 물 펌프 모터가 돌기 시작하면 적외선 리모컨이 먹통이 됩니다.

 

 

 

if(irrecv.decode(&results))

{Serial.println(results.value, HEX);

 

 

irrecv.resume();}

 

if(results.value == 0xFF30CF) {

   digitalWrite(relayPin,HIGH);

}

  else if(results.value == 0xFF18E7){

    digitalWrite(relayPin,LOW);

  }

 else if(results.value == 0xff7A85){

   if(cdsValue < 400){

    digitalWrite(relayPin, LOW);

  }

  else if(cdsValue >= 400){

    digitalWrite(relayPin, HIGH);

  }

 }

 

여기까지가 리모컨을 이용해서

조도센서가 있는 led를 컨트롤 하는 부분이고요 

 

 

 

if(results.value == 0xFF10EF){ 

  digitalWrite(A,LOW);

  

}

 

else if(results.value == 0xFF38c7){

  digitalWrite(A,HIGH);

}

 

else if(results.value == 0xFF5AA5){

  if(t_Value >= 29){

  digitalWrite(A,LOW);

}

else if(t_Value < 29){

  digitalWrite(A,HIGH);

}

}


여기까지가 온도 센서와 연동된 선풍기를 리모컨으로 제어하는 부분입니다.

if(Waterlevel_per < 50){
     digitalWrite(MA ,HIGH);
     digitalWrite(MB ,LOW);
     delay(3000);
     digitalWrite(MA,LOW);
     digitalWrite(MB,LOW);
     delay(3000);
  }
else{
    digitalWrite(MA,LOW);
    digitalWrite(MB,LOW);
  }

그 다음에 마지막으로 넣은 
물 공급 모터 인데

물 공급 모터가 돌아가면 리모컨이 먹통이 됩니다 ;;

그러다가 모터가 잠시 멈추거나

조건을 만족 시켜서 모터가 안 돌고 있을때는

반응이 매우 느려진 상태로 리모컨이 작동하고요.

무엇보다 자동화 기능들도 모터가 돌기 시작하면 전부 안 먹네요.

리모컨 추가 하기 전에는 따로 전부 잘 작동하던게

리모컨 추가하니까 이렇게 됐습니다..; 

코드에서 꼬인걸까요??

아니면 전류 문제일까요... 

아래부터는 코드 전부입니다 

#include <Wire.h>
#include <LiquidCrystal_I2C.h>  // LCD  라이브러리
#include <DHT.h>                // 온습도 센서  라이브러리
#include <Emotion_Farm.h>       // 특수 문자 및 이모티콘 라이브러리
#include <IRremote.h>
// 센서 핀 설정
#define relayPin 3              // 생장 led 릴레이 모듈 핀
#define cdsPin A1               // 조도센서 모듈 핀
#define DHTPIN 4                // 온습도센서 모듈 핀
#define DHTTYPE DHT11           // 온습도 센서타입 설정
#define Waterlevel A0      // 토양수분센서 핀

// 객체 생성
LiquidCrystal_I2C lcd(0x27, 16, 2); //LCD 초기화 (LCD 주소값, x축, y축)
DHT dht(DHTPIN, DHTTYPE);           //온습도 센서 모듈

// 문자열을 출력하기 위한 변수
char str_M[10];
char str_T[10];
char str_H[10];
int A=8;
int MA = 7;
int MB = 6;
int RE = 13;

IRrecv irrecv(RE);
decode_results results;


void setup() {
  Serial.begin(9600);

  irrecv.enableIRIn();
  pinMode(relayPin, OUTPUT);
  pinMode(cdsPin, INPUT);
  pinMode(Waterlevel, INPUT);
  pinMode(A,OUTPUT);
  pinMode(MA,OUTPUT);
  pinMode(MB,OUTPUT);
  
  
  //LCD에 인트로 출력
  lcd.begin();
  lcd.clear();
  lcd.noBacklight();
  delay(500);
  lcd.backlight();
  delay(500);
  lcd.setCursor(0,0);
  lcd.print("Capstone design");
  delay(2000);
  lcd.setCursor(0,1);
  lcd.print("SMART hydroponics");
  delay(2000);
  lcd.clear();


  // 라이브러리로 추가한 특수 문자 및 이모티콘 
  lcd.createChar(0, temp);
  lcd.createChar(1, C);
  lcd.createChar(2, humi);  
  lcd.createChar(3, Qmark);
  lcd.createChar(4, water);
  lcd.createChar(5, good);
  lcd.createChar(6, wind);


 
}
void loop() {


  //센서값 측정
  int cdsValue = analogRead(cdsPin);                                 //   조도센서 값 측정: 0 ~ 1023 
  int soilmoistureValue = analogRead(Waterlevel);               //   수위 측정: 0 ~ 1023
  int Waterlevel_per = map(soilmoistureValue, 170, 1023, 100, 0);  //   센서 값을 퍼센트로 변경
  unsigned char h_Value = dht.readHumidity();                        //   습도 값 측정
  unsigned char t_Value = dht.readTemperature();                     //   온도 값 측정


if(irrecv.decode(&results))
{Serial.println(results.value, HEX);


irrecv.resume();}

if(results.value == 0xFF30CF) {
   digitalWrite(relayPin,HIGH);
}
  else if(results.value == 0xFF18E7){
    digitalWrite(relayPin,LOW);
  }
 else if(results.value == 0xff7A85){
   if(cdsValue < 400){
    digitalWrite(relayPin, LOW);
  }
  else if(cdsValue >= 400){
    digitalWrite(relayPin, HIGH);
  }
 }

if(results.value == 0xFF10EF){ 
  digitalWrite(A,LOW);
  
}
 
else if(results.value == 0xFF38c7){
  digitalWrite(A,HIGH);
}

else if(results.value == 0xFF5AA5){
  if(t_Value >= 29){
  digitalWrite(A,LOW);
}
else if(t_Value < 29){
  digitalWrite(A,HIGH);
}
}

 if(Waterlevel_per < 50){
     digitalWrite(MA ,HIGH);
     digitalWrite(MB ,LOW);
     delay(3000);
     digitalWrite(MA,LOW);
     digitalWrite(MB,LOW);
     delay(3000);
  }
else{
    digitalWrite(MA,LOW);
    digitalWrite(MB,LOW);
  }


  //LCD에 수위 값 출력
  lcd.setCursor(1,0);
  lcd.print("Water Lv:");
  sprintf(str_M, "%03d", Waterlevel_per);
  lcd.print(str_M);
  lcd.setCursor(10,0);
  lcd.print("%");

  //LCD에 온도값 출력
  lcd.setCursor(1,1);
  lcd.write(0);
  sprintf(str_T, "%02d", t_Value);
  lcd.setCursor(3,1);
  lcd.print(str_T);
  lcd.write(1);

  //LCD에 습도값 출력
  lcd.setCursor(7,1);
  lcd.write(2);
  sprintf(str_H, "%02d", h_Value);
  lcd.setCursor(9,1);
  lcd.print(str_H);
  lcd.print("%");

 
 

  //토양습도 값에 따른 LCD에 이모티콘 띄우기
  if(Waterlevel_per >= 0 && Waterlevel_per < 30){
    lcd.setCursor(13,0);
    lcd.write(3);
    lcd.setCursor(14,0);
    lcd.write(4);
  }
  else if(Waterlevel_per >= 30 && Waterlevel_per < 70){
    lcd.setCursor(13,0);
    lcd.print(" ");
    lcd.setCursor(14,0);
    lcd.write(5);
  }
  else if(Waterlevel_per >= 70){
    lcd.setCursor(13,0);
    lcd.write(3);
    lcd.setCursor(14,0);
    lcd.write(6);
  }

  
  
  delay(500);
}


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

댓글 : 0

조회수 : 1,481

등록된 댓글이 없습니다.

게시물 검색

BASIC4MCU > 질문게시판 목록

제목 날짜
답변 답변 : 아두이노 코딩 관련 질문 댓글[3] master  23-05-11
질문 아두이노 ?오류 도와주세요! 댓글[1] 첨부파일비차  23-05-09
질문 작은 피에조 부저 로 했는데 동작을 안해요. 도와주세요… 댓글[1] mingu123  23-05-09
질문 atmega128 분초시계에서 초부분이 잘안돼고있어요 댓글[2] rpdla  23-05-08
질문 가변 저항 입력을 0∼4095로 7-세그먼트에 표시한걸… 댓글[2] 수포자  23-05-08
질문 아두이노 서보모터 제어 질문이있습니다 댓글[1] apzk3  23-05-06
질문 atmega128로 분초 전자시계를 어떻게 만들어야하나… 댓글[5] 첨부파일rpdla  23-05-05
질문 mpu 6050 과 gps 센서 질문 댓글[1] Mick  23-05-05
질문 아두이노 GPS 확장 SPI통신 쉴드 댓글[3] 첨부파일Mick  23-05-04
질문 gps 확장 spi통신 쉴드 댓글[1] 첨부파일Mick  23-05-04
질문 아두이노 우노 보드 구입하려고 하는데 두 부품의 차이점… 댓글[1] 나도할수있어아두  23-05-03
질문 온도 센서 오류 댓글[1] 핸찌니  23-05-03
질문 hm10으로 pwm모델을 제어하려고 합니다. 댓글[6] 용용이  23-05-01
질문 비콘 댓글[1] 앋우이노  23-05-01
질문 atmega128 dc모터 코딩 질문입니다. 김자라  23-04-30
답변 답변 : atmega128 dc모터 코딩 질문입니다. 댓글[4] master  23-04-30
질문 여러센서 아두이노 연결관련 코드 핸찌니  23-04-29
질문 Ph 블루투스로 앱인벤터 출력 안녕하세요13  23-04-28
답변 답변 : Ph 블루투스로 앱인벤터 출력 댓글[15] master  23-04-29
질문 아두이노 프로젝트 - 여러센서연결문의 댓글[6] 핸찌니  23-04-27
질문 atmega128 fnd 24시간 시계 댓글[1] 마이크로어려워  23-04-27
질문 아두이노 초음파센서와 HC06(블루투스)를 이용, 릴레… 댓글[3] 나도할수있어아두  23-04-27
질문 학부수업에서 마이크로프로세서를 배우고 있는데 혹시 작은… 댓글[2] E10n  23-04-26
질문 아두이노 블루투스 서보 제어서 튐 댓글[2] 첨부파일타이지  23-04-24
질문 AVR 질문입니다. 댓글[1] 모지리학부생  23-04-22
질문 아트메가128 전류증폭 질문드립니다 ..!! 댓글[5] 순길  23-04-21
질문 아두이노 질문 댓글[2] 1233  23-04-20
질문 스텝모터 감속 코딩 질문입니다. 무야더싱  23-04-19
답변 답변 : 스텝모터 감속 코딩 질문입니다. 댓글[2] master  23-04-19
질문 atmega128 스위치로 스피커 제어하기 댓글[6] 호구마  23-04-19
게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전