정보나눔

오픈소스하드웨어 프로젝트에 대한 다양한 정보를 나누는 공간입니다.

mp3플레이어와 서보모터의 오작동
갫이 | 2019-12-08

1. 프로젝트 사용한 보드 종류

   아두이노 UNO

 

 

2. 사용한 개발 프로그램명

  아두이노 IDE

 

 

3. 사용한 센서 모델명

   초음파 거리감지 센서

   무한회전 서보모터

   dfplayer mini 

 

 

4. 연결한 회로 설명 (또는 이미지)

 

 위 회로도에 서보모터 추가로 연결했습니다. 

 

5. 소스코드 (주석 필수)

  (원하는 기능의 코드를 전부 작성해 드리긴 어렵습니다. 기초부터 차근차근 공부해보면서 코드를 만들어 보세요.)

 

#include <DFPlayer_Mini_Mp3.h>

#include <SoftwareSerial.h>

#include <Servo.h>

Servo myservo;  //서보모터 객체 생성

int echoPin = 8;
int trigPin = 9;
float duration;
float distance;
void setup() 
{
  myservo.attach(10);  //서보모터 핀번호를 9번으로 설정
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);

   mp3_set_serial (Serial);     // DFPlayer-mini mp3 module 시리얼 세팅
   delay(1);                     // 볼륨을 Setup 하기 위한 delay
   mp3_set_volume (25);          // 볼륨 0~30
    
  Serial.begin(9600);
}
void loop()
{
  digitalWrite(trigPin, HIGH);
  delay(10);
  digitalWrite(trigPin, LOW);
  
  duration = pulseIn(echoPin, HIGH); // echoPin 이 HIGH를 유지한 시간을 저장
  distance = ((float)(340 * duration) / 10000) / 2; // 거리 계산
 
  // 측정된 거리 값를 시리얼 모니터에 출력
  Serial.print(distance);
  Serial.println("cm");
 
  // 측정된 거리가 22cm 이하라면 Servo 멈춤, mp3멈춤
  if (distance < 22) 
  {

    delay(1000);
    myservo.write(90);

    mp3_stop();
  }
  // 측정된 거리가 22cm 이상이라면, Servo 저속회전, mp3 재생
  else 
{
  //delay(1000);
  myservo.write(0); //
  delay(80); //
  myservo.write(90); //
  delay(80); //

    mp3_play(1); //
    delay(10000);
  }
  // 0.2초 동안 대기
  delay(200);
}

 

6. 문제점 및 에러 내용

 

소스가 돌아가는데 에러는 없지만 제가 원하는 것은

초음파 거리감지 센서로 거리를 감지해서

거리가 22cm 이상이면 노래가 나오며 서보모터가 돌아가는 것과

22cm이하면 노래와 서보모터의 동작이 멈추는 것입니다.

 

그러나 코딩을 잘못 쓴 것인지

노래가 딜레이 시간을 다 채워서야 거리를 감지하고 멈춥니다. 

노래가 멈추면 서보모터가 잠깐 작동을 하다가 노래가 다시 시작되면 아예 작동을 하지 않습니다. 

 

서보모터와 거리감지센서만 연결했을 때는 문제없이 돌아가다가

dfplayer의 소스와 결합하면 이렇게 오류가 납니다 

 

for문 if문 while문 등등 제가 할 수 있는 선에서 다 해봤지만 잘 되지 않더군요 ㅠㅠ

 

노래가 재생되는 도중에 초음파 거리감지 센서의 거리를 막으면

노래와 서보모터의 작동이 멈추는 방법을 알고 싶습니다. 고수님들 도와주세요 

 

감사합니다.

이전글   |    오늘주제는 바로이것!! 샤샤샤~~ 2019-12-05
다음글   |    급해요ㅠㅠㅠ제발 도와주세요 살려주세요!!... 2019-12-08