0.1.6 'rewrite'

master
Jay 4 years ago
parent 66058c5b45
commit d115bee8e3

@ -1,5 +1,10 @@
CHANGELOG: CHANGELOG:
Version 0.1.6:
Software:
Removed a bunch of functions in favor of passing arguments to function.
Version 0.1.5: Version 0.1.5:
Hardware Hardware

@ -13,6 +13,7 @@ Arduino Control for Your Vintage Stereo
01-Jan-2020: Added license, media, and proper README. 01-Jan-2020: Added license, media, and proper README.
04-Jan-2020: Version 0.1.4 - Changed project name. Removed 1602 display code. Added 128x32 OLED code 04-Jan-2020: Version 0.1.4 - Changed project name. Removed 1602 display code. Added 128x32 OLED code
05-Jan-2020: Version 0.1.5 - Fixed stupid mistake in hardware. Flipped logic of srEnable for new circuit. 05-Jan-2020: Version 0.1.5 - Fixed stupid mistake in hardware. Flipped logic of srEnable for new circuit.
05-Jan-2020: Version 0.1.6 - Lots of code clean-up, condensing, rewriting.
```` ````

@ -1,5 +1,5 @@
/* /*
HiFiLOGIX 0.1.5 HiFiLOGIX 0.1.6
dewdude@gmail.com - 05-JAN-2020 dewdude@gmail.com - 05-JAN-2020
@ -10,9 +10,8 @@
U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2(U8G2_R0); U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2(U8G2_R0);
// const char *inputs[] = {"TAPE-2","TAPE-1","AUX","TUNER","PHONO-2","PHONO-1"};
// int i = 0;
int latchPin = 11; int latchPin = 11;
int clockPin = 9; int clockPin = 9;
int dataPin = 12; int dataPin = 12;
@ -26,20 +25,15 @@ decode_results ircode;
void logo() { void logo() {
u8g2.clearBuffer(); u8g2.clearBuffer();
u8g2.setFont(u8g2_font_fewture_tr); u8g2.setFont(u8g2_font_fewture_tr);
u8g2.drawStr(15,14,"HiFiLOGIX"); u8g2.drawStr(15,14,"HiFiLOGIX");
u8g2.setFont(u8g2_font_freedoomr10_tu); u8g2.setFont(u8g2_font_freedoomr10_tu);
u8g2.drawStr(14,30,"DENON PMA-770"); u8g2.drawStr(14,30,"DENON PMA-770");
u8g2.sendBuffer(); u8g2.sendBuffer();
u8g2.setFont(u8g2_font_logisoso28_tr); u8g2.setFont(u8g2_font_logisoso28_tr);
} }
/* void inputdisp() {
u8g2.clearBuffer();
u8g2.drawStr(x,30,inputs[i]);
u8g2.sendBuffer();
}
*/
void updateShiftRegister() void updateShiftRegister()
{ {
digitalWrite(latchPin, LOW); digitalWrite(latchPin, LOW);
@ -47,75 +41,18 @@ void updateShiftRegister()
digitalWrite(latchPin, HIGH); digitalWrite(latchPin, HIGH);
} }
void DontCrossTheStreams() void DontCrossTheStreams(byte op, int x, const char* i) // Oh yeah, this much nicer than 8 seperate functions.
{ {
out = 0; out = 0;
updateShiftRegister(); updateShiftRegister();
out = op; // No more bitset. This works better.
updateShiftRegister();
u8g2.clearBuffer();
u8g2.drawStr(x,30,i);
u8g2.sendBuffer();
// Don't cross the streams! // Don't cross the streams!
} }
void setTape2()
{
DontCrossTheStreams();
bitSet(out,6);
updateShiftRegister();
u8g2.clearBuffer();
u8g2.drawStr(10,30,"TAPE-2");
u8g2.sendBuffer();
}
void setTape1()
{
DontCrossTheStreams();
bitSet(out,5);
updateShiftRegister();
u8g2.clearBuffer();
u8g2.drawStr(10,30,"TAPE-1");
u8g2.sendBuffer();
}
void setAUX()
{
DontCrossTheStreams();
bitSet(out,4);
updateShiftRegister();
u8g2.clearBuffer();
u8g2.drawStr(32,30,"AUX");
u8g2.sendBuffer();
}
void setTune()
{
DontCrossTheStreams();
bitSet(out,3);
updateShiftRegister();
u8g2.clearBuffer();
u8g2.drawStr(18,30,"TUNER");
u8g2.sendBuffer();
}
void setPh1()
{
DontCrossTheStreams();
bitSet(out,2);
bitSet(out,1);
updateShiftRegister();
u8g2.clearBuffer();
u8g2.drawStr(1,30,"PHONO-2");
u8g2.sendBuffer();
}
void setPh2()
{
DontCrossTheStreams();
bitSet(out,2);
bitSet(out,0);
updateShiftRegister();
u8g2.clearBuffer();
u8g2.drawStr(1,30,"PHONO-1");
u8g2.sendBuffer();
}
void setup() void setup()
{ {
pinMode(latchPin, OUTPUT); pinMode(latchPin, OUTPUT);
@ -124,39 +61,39 @@ void setup()
pinMode(srEnable, OUTPUT); pinMode(srEnable, OUTPUT);
u8g2.begin(); u8g2.begin();
remote.enableIRIn(); remote.enableIRIn();
logo(); logo(); // It's so pretty!
delay(2000); delay(2000); // It takes the Denon about 4.5 seconds to kick speakers on.
setAUX(); DontCrossTheStreams(16,32,"AUX"); // Someday this will not be static.
digitalWrite(srEnable,HIGH); digitalWrite(srEnable,HIGH); // Now drives a logic inverter.
} }
void loop() { void loop() {
int mx = analogRead(matrix); int mx = analogRead(matrix);
if (mx > 100 && mx < 200) setTape2(); if (mx > 100 && mx < 200) DontCrossTheStreams(64,10,"TAPE-2"); // Byte value for outputs, X offset for display, text to display
if (mx > 500 && mx < 600) setTape1(); if (mx > 500 && mx < 600) DontCrossTheStreams(32,10,"TAPE-1");
if (mx > 900 && mx < 950) setAUX(); if (mx > 900 && mx < 950) DontCrossTheStreams(16,32,"AUX");
if (mx > 1000) setTune(); if (mx > 1000) DontCrossTheStreams(8,18,"TUNER");
if (mx > 820 && mx < 899) setPh1(); if (mx > 820 && mx < 899) DontCrossTheStreams(6,1,"PHONO-2");
if (remote.decode(&ircode)) { if (remote.decode(&ircode)) {
switch(ircode.value){ switch(ircode.value){
case 0xFF6897: case 0xFF6897:
setTape2(); DontCrossTheStreams(64,10,"TAPE-2"); // Same thing except for remote input.
break; break;
case 0xFF9867: case 0xFF9867:
setTape1(); DontCrossTheStreams(32,10,"TAPE-1");
break; break;
case 0xFFB04F: case 0xFFB04F:
setAUX(); DontCrossTheStreams(16,32,"AUX");
break; break;
case 0xFF30CF: case 0xFF30CF:
setTune(); DontCrossTheStreams(8,18,"TUNER");
break; break;
case 0xFF18E7: case 0xFF18E7:
setPh1(); DontCrossTheStreams(6,1,"PHONO-2");
break; break;
case 0xFF7A85: case 0xFF7A85:
setPh2(); DontCrossTheStreams(5,1,"PHONO-1");
break; break;
} }
remote.resume(); remote.resume();

Loading…
Cancel
Save