Professional Documents
Culture Documents
Sket Remot 2313
Sket Remot 2313
+++++++++++++++++++++++++++++++++++++++++++++++++++*/
#include <Wire.h>
#include <LiquidCrystal.h>
#include <PT2313.h>
#include <String.h>
LiquidCrystal lcd(8,9,4,5,6,7);
#include <SoftwareSerial.h>
#define RxD 0
#define TxD 1
char recvChar;
SoftwareSerial blueToothSerial(RxD,TxD);
void setup()
{
delay(5000);
lcd.begin(16,2); //Initialize a 2x16 type LCD
audioChip.initialize(1,true);
audioChip.source(1); //select your source 0...3
audioChip.volume(10); //Vol 0...62 : 63=muted
audioChip.gain(3); //gain 0...11.27 db
audioChip.loudness(true); //true or false
audioChip.bass(7); //bass -7...+7
audioChip.treble(7); //treble -7...+7
audioChip.balance(0); //-31...+31
lcd.clear();
lcd.setCursor(1,0);
lcd.print("STT WIWOROTOMO");
lcd.setCursor(1,1);
lcd.print("Amron Zamzami");
delay(1000);
audioChip.initialize(1,true); //source 1,mute on
lcd.clear();
lcd.setCursor(1,0);
lcd.print("initialize.");
delay(1000);
lcd.setCursor(1,0);
lcd.print("initialize..");
delay(1000);
lcd.setCursor(1,0);
lcd.print("initialize...");
delay(1000);
lcd.setCursor(1,0);
lcd.print("initialize....");
delay(1000);
lcd.setCursor(1,0);
lcd.print("initialize.....");
delay(2000);
Serial.begin(9600);
pinMode(RxD, INPUT);
pinMode(TxD, OUTPUT);
blueToothSerial.begin(9600);
Wire.begin(); // i2c
MainMenuDisplay();
delay(1000);
}
void loop()
{
btn_push = ReadKeypad();
MainMenuBtn();
if(btn_push == 'S') //enter selected menu
{
WaitBtnRelease();
switch (mainMenuPage)
{
case 1:
MenuA();
break;
case 2:
MenuB();
break;
case 3:
MenuC();
break;
case 4:
MenuD();
break;
case 5:
MenuE();
break;
case 6:
MenuF();
break;
case 7:
MenuG();
break;
}
MainMenuDisplay();
WaitBtnRelease();
}
delay(10);
}//--------------- End of loop() loop ---------------------
void MenuA()
{
while(ReadKeypad()!= 'S')
{
void loop();
delay(50);
if ((keypad_value<100) || (recvChar == 'R'))
if (sor ==3)
sor =3;
else
sor++;
delay(50);
void MenuB()
{
while(ReadKeypad()!= 'S')
{
void loop();
delay(50);
if ((keypad_value<100) || (recvChar == 'R'))
if (vol ==62)
vol =62;
else
vol++;
delay(50);
void MenuC()
{
while(ReadKeypad()!= 'S')
{
void loop();
delay(50);
if ((keypad_value<100) || (recvChar == 'R'))
if (gan ==07)
gan =07;
else
gan++;
delay(50);
void MenuD()
{
while(ReadKeypad()!= 'S')
{
void loop();
delay(50);
if ((keypad_value<100) || (recvChar == 'R'))
if (lod ==1)
lod =1;
else
lod++;
delay(50);
void MenuE()
{
while(ReadKeypad()!= 'S')
{
void loop();
delay(50);
if ((keypad_value<100) || (recvChar == 'R'))
if (bas ==07)
bas =07;
else
bas++;
delay(50);
void MenuF()
{
while (ReadKeypad()!= 'S')
{
void loop();
delay(50);
if ((keypad_value<100) || (recvChar == 'R'))
if (tre ==7)
tre =7;
else
tre++;
delay(50);
void MenuG()
{
while (ReadKeypad()!= 'S')
{
void loop();
delay(50);
if ((keypad_value<100)|| (recvChar == 'R'))
if (bal ==31)
bal =31;
else
bal++;
delay(50);
if (((keypad_value >400)&&(keypad_value <600)) || (recvChar == 'L'))
//Insert Task for Menu D here
if (bal ==-31)
bal !=+32;
else
bal--;
audioChip.balance(bal);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Balance :");
lcd.setCursor(9,0);
lcd.print(String(bal));
delay(50);
}}
void MainMenuDisplay()
{
lcd.clear();
lcd.setCursor(0,0);
switch (mainMenuPage)
{
case 1:
lcd.print("1. Source");
break;
case 2:
lcd.print("2. Volume");
break;
case 3:
lcd.print("3. Gain");
break;
case 4:
lcd.print("4. Loudness");
break;
case 5:
lcd.print("5. Bass");
break;
case 6:
lcd.print("6. Treble");
break;
case 7:
lcd.print("7. Balance");
break;
}}
void MainMenuBtn()
{
WaitBtnRelease();
if(btn_push == 'U')
{
mainMenuPage++;
if(mainMenuPage > mainMenuTotal)
mainMenuPage = 1;
}
else if(btn_push == 'D')
{
mainMenuPage--;
if(mainMenuPage == 0)
mainMenuPage = mainMenuTotal;
}
if(mainMenuPage != mainMenuPageOld) //only update display when
page change
{
MainMenuDisplay();
mainMenuPageOld = mainMenuPage;
}}
char ReadKeypad()
{
keypad_value = analogRead(keypad_pin);
//lcd.clear();
//lcd.setCursor(4,1);
//lcd.print(String(keypad_value));
if(keypad_value < 100)
return 'R';
else if(keypad_value < 200)
return 'U';
else if(keypad_value < 400)
return 'D';
else if(keypad_value < 600)
return 'L';
else if(keypad_value < 800)
return 'S';
//else
// return 'N';
recvChar = blueToothSerial.read();
Serial.print(recvChar);
if(recvChar == 'U')
return 'U';
else if(recvChar == 'D')
return 'D';
else if(recvChar == 'L')
return 'L';
else if(recvChar == 'R')
return 'R';
else if(recvChar == 'S')
return 'S';
else
return 'N';
}
void WaitBtnRelease()
{
while( analogRead(keypad_pin) < 800){}
}
/*void bluetooth()
{
{ if(blueToothSerial.available()) //bluetooth
{
recvChar = blueToothSerial.read();
Serial.print(recvChar);
//lcd.setCursor(0,1);
//lcd.println(recvChar);
//delay(500);
delay(50);
}}}*/