I am creating an mp3 player that uses several digital inputs, so my digital ports are limited on my Nano. I read on here that I can use my analog ports as digital pins, so I wired up my LCD accordingly. When I test my code nothing prints to the LCD. Do I have to change something in the liquid crystal library?
I connected RS to A5, pin E to A4, LCD7 to A3, LCD6 to A2, LCD5 to A1, LCD4 to D13
Here is my code:
/***************************************************
Created 2016-12-07
By [Angelo qiao](Angelo.qiao@dfrobot.com)
GNU Lesser General Public License.
See <http://www.gnu.org/licenses/> for details.
All above must be included in any redistribution
****************************************************/
/***********Notice and Trouble shooting***************
1.Connection and Diagram can be found here
<https://www.dfrobot.com/wiki/index.php/DFPlayer_Mini_SKU:DFR0299#Connection_Diagram>
2.This code is tested on Arduino Uno, Leonardo, Mega boards.
****************************************************/
#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
#include "LiquidCrystal.h"
# define ACTIVATED HIGH
LiquidCrystal lcd(13, 15, 16, 17, 18, 19);
SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
void printDetail(uint8_t type, int value);
boolean playState = HIGH; // module play state HIGH:NOT playing; LOW:playing
boolean adState = HIGH; // is the AD music playing? HIGH:NOT playing; LOW:playing
float last;
int potPin =A0;
int potVal;
int pre_vol;
int hornButton= 2;
int playButton= 3;
int nextButton= 4;
int playStatePin = 5;
int prevButton= 6;
int EQButton= 7;
int EQSetting = 0;
int Repeat = 0;
void setup()
{
mySoftwareSerial.begin(9600);
Serial.begin(115200);
lcd.begin(16, 2);
lcd.print("Good Ol' Boys");
lcd.setCursor(0,1);
lcd.print("Wait Please");
Serial.println();
Serial.println(F("DFRobot DFPlayer Mini Demo"));
Serial.println(F("Initializing DFPlayer ... (May take 3~5 seconds)"));
if (!myDFPlayer.begin(mySoftwareSerial)) { //Use softwareSerial to communicate with mp3.
Serial.println(F("Unable to begin:"));
Serial.println(F("1.Please recheck the connection!"));
Serial.println(F("2.Please insert the SD card!"));
while(true);
}
Serial.println(F("DFPlayer Mini online."));
myDFPlayer.setTimeOut(500); //Set serial communictaion time out 500ms
//----Set device we use SD as default----
myDFPlayer.outputDevice(DFPLAYER_DEVICE_SD);
//----Set volume----
myDFPlayer.volume(0);
//----Set different EQ----
myDFPlayer.EQ(DFPLAYER_EQ_NORMAL);
// myDFPlayer.EQ(DFPLAYER_EQ_POP);
// myDFPlayer.EQ(DFPLAYER_EQ_ROCK);
// myDFPlayer.EQ(DFPLAYER_EQ_JAZZ);
// myDFPlayer.EQ(DFPLAYER_EQ_CLASSIC);
// myDFPlayer.EQ(DFPLAYER_EQ_BASS);
//----Mp3 control----
// myDFPlayer.sleep(); //sleep
// myDFPlayer.reset(); //Reset the module
myDFPlayer.enableDAC(); //Enable On-chip DAC
// myDFPlayer.disableDAC(); //Disable On-chip DAC
myDFPlayer.outputSetting(true, 31); //output setting, enable the output and set the gain to 15
//----Read imformation----
Serial.println(myDFPlayer.readState()); //read mp3 state
Serial.println(myDFPlayer.readVolume()); //read current volume
Serial.println(myDFPlayer.readEQ()); //read EQ setting
Serial.println(myDFPlayer.readFileCounts()); //read all file counts in SD card
Serial.println(myDFPlayer.readCurrentFileNumber()); //read current play file number
Serial.println(myDFPlayer.readFileCountsInFolder(3)); //read fill counts in folder SD:/03
pinMode(hornButton, INPUT);
pinMode(playButton, INPUT);
pinMode(nextButton, INPUT);
pinMode(prevButton, INPUT);
pinMode(EQButton, INPUT);
last = millis();
myDFPlayer.loopFolder(1);
delay(100);
}
void loop() {
// put your main code here, to run repeatedly:
playState=digitalRead(playStatePin);
potVal = analogRead(potPin);
int8_t volume;
volume = map(potVal, 0, 1023, 0, 30); // Potentiometer controls volume
if (volume != pre_vol)
{
myDFPlayer.volume(volume);
pre_vol = volume;
}
if(digitalRead(playButton)==HIGH)
{
if(playState == HIGH)
{
myDFPlayer.start();
delay(500);
}
else
{
myDFPlayer.pause();
delay(500);
}
}
if(digitalRead(nextButton)==HIGH)
{
myDFPlayer.next();
delay(500);
}
if(digitalRead(prevButton)==HIGH)
{
myDFPlayer.previous();
delay(500);
}
if(digitalRead(EQButton)==HIGH)
{
EQSetting = EQSetting +1;
delay(200);
Equalizer();
delay(500);
}
if (digitalRead(hornButton) == HIGH)
{
Serial.println("horn");
delay(100);
myDFPlayer.advertise(1);
delay(5000);
myDFPlayer.stopAdvertise();
delay(100);
}
}
void playAd() {
delay(100);
myDFPlayer.advertise(1);
delay(500);
myDFPlayer.stopAdvertise();
delay(100);
}
void Equalizer() {
if (EQSetting == 0)
{
Serial.print(EQSetting);
Serial.println("Normal");
myDFPlayer.EQ(DFPLAYER_EQ_NORMAL);
//myDFPlayer.EQ(DFPLAYER_EQ_POP);
// myDFPlayer.EQ(DFPLAYER_EQ_ROCK);
// myDFPlayer.EQ(DFPLAYER_EQ_JAZZ);
// myDFPlayer.EQ(DFPLAYER_EQ_CLASSIC);
// myDFPlayer.EQ(DFPLAYER_EQ_BASS);
delay(200);
}
if (EQSetting == 1)
{
Serial.println(EQSetting);
Serial.println("POP");
//myDFPlayer.EQ(DFPLAYER_EQ_NORMAL);
myDFPlayer.EQ(DFPLAYER_EQ_POP);
//myDFPlayer.EQ(DFPLAYER_EQ_ROCK);
// myDFPlayer.EQ(DFPLAYER_EQ_JAZZ);
// myDFPlayer.EQ(DFPLAYER_EQ_CLASSIC);
// myDFPlayer.EQ(DFPLAYER_EQ_BASS);
delay(200);
}
if (EQSetting == 2)
{
Serial.println(EQSetting);
Serial.println("Rock");
//myDFPlayer.EQ(DFPLAYER_EQ_NORMAL);
//myDFPlayer.EQ(DFPLAYER_EQ_POP);
myDFPlayer.EQ(DFPLAYER_EQ_ROCK);
// myDFPlayer.EQ(DFPLAYER_EQ_JAZZ);
// myDFPlayer.EQ(DFPLAYER_EQ_CLASSIC);
// myDFPlayer.EQ(DFPLAYER_EQ_BASS);
delay(200);
}
if (EQSetting == 3)
{
Serial.println(EQSetting);
Serial.println("Jazz");
//myDFPlayer.EQ(DFPLAYER_EQ_NORMAL);
//myDFPlayer.EQ(DFPLAYER_EQ_POP);
// myDFPlayer.EQ(DFPLAYER_EQ_ROCK);
myDFPlayer.EQ(DFPLAYER_EQ_JAZZ);
// myDFPlayer.EQ(DFPLAYER_EQ_CLASSIC);
// myDFPlayer.EQ(DFPLAYER_EQ_BASS);
delay(200);
}
if (EQSetting == 4)
{
Serial.println(EQSetting);
Serial.println("Classic");
//myDFPlayer.EQ(DFPLAYER_EQ_NORMAL);
//myDFPlayer.EQ(DFPLAYER_EQ_POP);
// myDFPlayer.EQ(DFPLAYER_EQ_ROCK);
// myDFPlayer.EQ(DFPLAYER_EQ_JAZZ);
myDFPlayer.EQ(DFPLAYER_EQ_CLASSIC);
// myDFPlayer.EQ(DFPLAYER_EQ_BASS);
delay(200);
}
if (EQSetting == 5)
{
Serial.println(EQSetting);
Serial.println("Bass");
//myDFPlayer.EQ(DFPLAYER_EQ_NORMAL);
//myDFPlayer.EQ(DFPLAYER_EQ_POP);
// myDFPlayer.EQ(DFPLAYER_EQ_ROCK);
// myDFPlayer.EQ(DFPLAYER_EQ_JAZZ);
// myDFPlayer.EQ(DFPLAYER_EQ_CLASSIC);
myDFPlayer.EQ(DFPLAYER_EQ_BASS);
delay(200);
}
if (EQSetting == 6)
{
EQSetting = 0;
Serial.println(EQSetting);
Serial.println("Normal");
}
}
Any idea why it would not be working?