이번에는 단순합니다. 제목 그대로 제작을 목표로 했습니다.
그런데 이제 실제 BB탄 에어건에 들어가게 만들려고 합니다.
그러면 당연히 안에 들어갈 수 있을정도로 간략화시켜서 제작해야합니다.
기존의 아두이노 우노를 활용한 DFPlayer는 진행해본 경험이 있었지만
2021.09.20 - [메이킹 일지 (마무리 완료)/Ammonomicon (完)] - Ammonomicon 프로젝트 - 3. 회로 정리 및 케이스 모델링, 데코레이션
Nano를 활용한 DFPlayer는 활용해본 경험이 없었기에 이번에는 공부를 해야했습니다.
그래서 한참동안 찾아보고 알아본 회로가 이렇게 됩니다.
찾아보니까 RX선에만 10K옴을 추가해서 연결하면 전혀 문제가 없다는 것을 확인할 수 있어서 좋았습니다.
따라서 이 회로에서는 릴레이, LED, 스위치 2개, DFPlayer, 스피커까지 기능을 구현해놨습니다.
의외로 아두이노 나노가 잘 돌아가는 것 같아서 코딩까지 진행했습니다.
일단 이전의 프로젝트에서 사용한 switch문을 활용해서 짜봤습니다.
#include "DFRobotDFPlayerMini.h"
#include "SoftwareSerial.h"
#include <SPI.h>
SoftwareSerial mySoftwareSerial (3, 2);
DFRobotDFPlayerMini myDFPlayer;
int buttonPin1 = 5;
int buttonPin2 = 6;
int led = 4;
int Mode1 = 0;
int Mode2 = 0;
void setup () {
pinMode(buttonPin1, INPUT);
pinMode(buttonPin2, INPUT);
pinMode(4, OUTPUT);
pinMode(7, OUTPUT);
digitalWrite(buttonPin1, HIGH);
digitalWrite(buttonPin2, HIGH);
mySoftwareSerial.begin(9600);
myDFPlayer.begin(mySoftwareSerial);
myDFPlayer.volume(28); // 볼륨 1~30
// myDFPlayer.play(1); 0001번을 재생
// delay(3500); 3.5초간 재생
Serial.begin(9600);
}
void loop () {
boolean play_state1 = digitalRead(5); // Pin2가 나와 연결
boolean play_state2 = digitalRead(6);
if (play_state2 == HIGH){ // 페이스멜터
Mode1++;
switch(Mode1 % 3){
case 0:
myDFPlayer.play(6);
digitalWrite(4, HIGH);
delay(200);
digitalWrite(4, LOW);
Mode1 = 0;
break;
case 1:
myDFPlayer.play(2);
digitalWrite(4, HIGH);
delay(200);
digitalWrite(4, LOW);
break;
case 2:
myDFPlayer.play(4);
digitalWrite(4, HIGH);
delay(200);
digitalWrite(4, LOW);
break;
}
}
if (Mode1 == 0 && play_state1 == HIGH){
myDFPlayer.play(1);
digitalWrite(7, HIGH);
digitalWrite(4, HIGH);
delay(200);
digitalWrite(7, LOW);
digitalWrite(4, LOW);
}
if (Mode1 == 1 && play_state1 == HIGH){
myDFPlayer.play(3);
digitalWrite(7, HIGH);
digitalWrite(4, HIGH);
delay(200);
digitalWrite(7, LOW);
digitalWrite(4, LOW);
}
if (Mode1 == 2 && play_state1 == HIGH){
myDFPlayer.play(5);
digitalWrite(7, HIGH);
digitalWrite(4, HIGH);
delay(200);
digitalWrite(7, LOW);
digitalWrite(4, LOW);
}
else {}
}
5번 버튼과 6번 버튼 중 하나는 모드를 변경하고, 하나는 모드에 따라서 소리가 다르게 나오는 것을 구현했습니다.
DFPlayer로 아두이노 나노로 연결하는 방법을 찾으시던 분들에게 이 글이 조금 도움이 되었으면 합니다.
다음은 실제 회로 제작 및 확인 글이 됩니다.