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

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

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

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

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

BASIC4MCU > 질문게시판

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

페이지 정보

작성자 링여 작성일22-11-30 21:49 조회2,978회 댓글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

조회수 : 2,978

등록된 댓글이 없습니다.

게시물 검색

BASIC4MCU > 질문게시판 목록

제목 날짜
답변 답변 : 아두이노 센서 코딩 오류 댓글[1] master  23-11-02
질문 stm32에서 센서의 adc값을 읽어올때 댓글[1] 라칸  23-11-01
질문 스텝모터와 dc모터를 같이 사용해도 문제가 없을까요? 댓글[1] 알두  23-11-01
질문 아두이노 핀개수가 부족합니다 댓글[3] 알두  23-11-01
질문 pir센서를 쓰려는데 디지털ouput값을 댓글[5] 라칸  23-10-31
질문 MEGA보드와 LiDAR, BT 오류 질문입니다. 댓글[1] 맹균  23-10-30
질문 cube ide에서 dma를 쓰려는데 댓글[1] 라칸  23-10-24
질문 atmega128 pwm 질문드립니다 댓글[6] 안녕수야  23-10-23
질문 atmega128 cds가렸을시 부저 울리기 질문 댓글[1] csh3425  23-10-23
질문 시리얼로 메시지 받고 전송하려는데 댓글[1] 라칸  23-10-23
질문 도트 매트릭스 제어 질문입니다. 댓글[1] Tell  23-10-20
질문 도트 매트릭스 스위치제어 질문입니다. Tell  23-10-19
답변 답변 : 도트 매트릭스 스위치제어 질문입니다. master  23-10-19
질문 아두이노 텍트스위치를 사용하여 스텝모터 제어 (가감속)… 댓글[1] metanoia  23-10-17
답변 답변 : 아두이노 텍트스위치를 사용하여 스텝모터 제어 … master  23-10-18
질문 Atmega128 전력 측정 댓글[1] OP반장  23-10-16
질문 초음파센서 두개사용하여 물체탐지 Led 댓글[1] 알려주새ㅔㅔ요ㅠ  23-10-16
질문 마스터 슬레이브 초음파 센서를 사용하여 RC카 제어하기 댓글[1] 둘둘이  23-10-16
질문 아두이노 보드간 통신 질문 입니다.(MEGA-->UNO… 댓글[1] 맹균  23-10-14
답변 답변 : 아두이노 보드간 통신 질문 입니다.(MEGA-… master  23-10-15
질문 esp32 C3 Deep Sleep Mode 관련 질문 댓글[2] 첨부파일cansad  23-10-14
질문 아두이노 리니어레일 제어 폴폴이  23-10-14
답변 답변 : 아두이노 리니어레일 제어 댓글[1] master  23-10-14
질문 아두이노 메가 보드에서 LiDAR 사용 질문입니다. 댓글[2] 맹균  23-10-12
질문 아두이노 초음파센서와 서보모터 사용한 엘리베이터 댓글[1] wjsdnsa  23-10-09
질문 atmega128 lcd led 동시 제어 ewaesdf  23-10-09
답변 답변 : atmega128 lcd led 동시 제어 master  23-10-09
질문 벽면을 닦는 기계를 만들려고 하는데 댓글[1] 알두  23-10-05
질문 atmega while문 안에서 string이 한줄만 … 댓글[2] qa5362qa  23-10-04
질문 atmega128a와 i2c lcd 댓글[1] 까미  23-10-04
게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전