1#include <Wire.h>
2#include <Adafruit_GFX.h>
3#include <Adafruit_SSD1306.h>
4
5#include "Arduino.h"
6#include "SoftwareSerial.h"
7#include "DFRobotDFPlayerMini.h"
8
9Adafruit_SSD1306 display(128, 32, &Wire, 4);
10
11SoftwareSerial mySoftwareSerial(10, 11);
12DFRobotDFPlayerMini myDFPlayer;
13
14#define v A0
15#define s A1
16#define pp 9
17
18int vol= 20, pv=0;
19
20void setup()
21{
22 if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
23 while(true);
24 }
25 display.display();
26 display.clearDisplay();
27
28 mySoftwareSerial.begin(9600);
29 Serial.begin(9600);
30
31 pinMode(pp,INPUT_PULLUP);
32
33 if (myDFPlayer.begin(mySoftwareSerial))
34 {
35 Serial.println("\r\n\r\nOK");
36
37 myDFPlayer.volume(30);
38 }
39 else
40 {
41 Serial.println("Connecting to DFPlayer Mini failed!");
42 }
43
44}
45
46
47void loop()
48{
49
50int x = analogRead(v);
51int y = analogRead(s);
52
53int button = !digitalRead(pp);
54
55 if(digitalRead(pp)==0){
56 if(pv == 0){
57 myDFPlayer.start();
58 display.drawRect(90, 5, 5, 25, WHITE);
59 display.drawRect(100, 5, 5, 25, WHITE);
60 display.display();
61 pv=1;
62 }
63 else if(pv == 1){
64 myDFPlayer.pause();
65 display.drawLine(100, 5, 120, 15, WHITE);
66 display.drawLine(100, 5, 100, 25, WHITE);
67 display.drawLine(100, 25, 120, 15, WHITE);
68 display.display();
69 pv=0;
70 }
71 }
72 if(analogRead(s)==0){
73 myDFPlayer.next();
74 }
75 if(analogRead(s)==1023){
76 myDFPlayer.previous();
77
78 }
79 if(analogRead(v)==1023 && vol<30){
80 vol=vol+1;
81 myDFPlayer.volume(vol);
82 }
83 if(analogRead(v)==0 && vol>0){
84 vol=vol-1;
85 myDFPlayer.volume(vol);
86 }
87
88 display.clearDisplay();
89 display.setTextSize(1);
90 display.setTextColor(WHITE);
91
92 display.setCursor(0, 0);
93 display.print("Volume");
94 display.setCursor(50, 0);
95 display.print(vol);
96 display.setCursor(128, 0);
97 display.print("Track");
98 display.setCursor(45, 10);
99 display.print(myDFPlayer.readCurrentFileNumber());
100 display.display();
101
102}