// PRE LM4652 Adam Tatuś
#include <IRremote.h>
#include <EEPROM.h>
#include <LiquidCrystal.h>
void VoL_Level(void);
int VOL_LUT[64]=
{
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,
18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,
52,56,60,64,68,72,76,80,84,88,92,96,100,104,108,
116,124,132,140,148,156,164,172,180,188,196,204,
213,223,239,255
};
int RECV_PIN = 11;
int REL_ON = 13;
int REL_9 = 8;
int REL_10 = 9;
int BCKL = 10;
boolean PWR_ON = false;
int VOL_LEVEL;
boolean MUTE = false;
int IN_SEL;
IRrecv irrecv(RECV_PIN);
decode_results results;
LiquidCrystal lcd(A4, A5, A0, A1, A2, A3);
// RS,EN,D4-D7
void setup()
{
lcd.begin(8, 2);
lcd.clear();
DDRD = B11111111;
DDRD = DDRC | B11111111;
pinMode(REL_ON, OUTPUT);
pinMode(REL_9, OUTPUT);
pinMode(REL_10, OUTPUT);
pinMode(BCKL, OUTPUT);
VOL_LEVEL = EEPROM.read(1);
IN_SEL = EEPROM.read(2);
if (IN_SEL >3) IN_SEL=3;
if (IN_SEL <1) IN_SEL=1;
irrecv.enableIRIn(); // Start the receiver
}
void VoL_LeveL(){
lcd.setCursor(0, 1);
lcd.print("Vol: ");
if (VOL_LEVEL >9) lcd.setCursor(6, 1); else lcd.setCursor(7, 1);
lcd.print(VOL_LEVEL, DEC);
}
void loop() {
if (irrecv.decode(&results)) {
switch (results.value) {
case 0x80C:{ //ON 0x14C
digitalWrite(REL_ON, HIGH);
digitalWrite(BCKL, HIGH);
lcd.setCursor(0, 0);
lcd.print("PRE 4562");
lcd.setCursor(0, 1);
lcd.print("traxman ");
delay(1000);
PWR_ON = true;
PORTD=VOL_LUT[VOL_LEVEL];
VoL_LeveL();
lcd.setCursor(0, 0);
switch (IN_SEL) {
case 1: {digitalWrite(REL_9, LOW); digitalWrite(REL_10, LOW); lcd.print("PRE CD"); break;};
case 2: {digitalWrite(REL_9, HIGH); digitalWrite(REL_10, LOW); lcd.print("PRE PH"); break;};
case 3: {digitalWrite(REL_9, HIGH); digitalWrite(REL_10, HIGH); lcd.print("PRE AUX"); break;};
delay(500);
}
break; }
case 0x00C:{ //OFF 0x94C
digitalWrite(REL_ON, LOW);
digitalWrite(REL_9, LOW);
digitalWrite(REL_10, LOW);
digitalWrite(BCKL, LOW);
PWR_ON = false;
PORTD=0;
lcd.clear();
break; }
}
if (PWR_ON) {
results.value= results.value & 0x0FF;
switch (results.value) {
case 0x0D: {
if (MUTE){
lcd.setCursor(0, 1);
lcd.print("Vol: --");
PORTD=0;
}
else{
VoL_LeveL();
PORTD=VOL_LUT[VOL_LEVEL];;}
MUTE=!MUTE;
break;}
case 0x01: {
digitalWrite(REL_9, LOW);
digitalWrite(REL_10, LOW);
IN_SEL=1;
EEPROM.write(2, IN_SEL);
lcd.setCursor(0, 0);
lcd.print("PRE CD");
VoL_LeveL();
PORTD=VOL_LUT[VOL_LEVEL];
break;}
case 0x02:{
digitalWrite(REL_9, HIGH);
digitalWrite(REL_10, LOW);
IN_SEL=2;
EEPROM.write(2, IN_SEL);
lcd.setCursor(0, 0);
lcd.print("PRE PH");
VoL_LeveL();
PORTD=VOL_LUT[VOL_LEVEL];
break;}
case 0x03: {
digitalWrite(REL_9, HIGH);
digitalWrite(REL_10, HIGH);
IN_SEL=3;
EEPROM.write(2, IN_SEL);
lcd.setCursor(0, 0);
lcd.print("PRE AUX");
VoL_LeveL();
PORTD=VOL_LUT[VOL_LEVEL];
break;}
case 0x10: {
if (VOL_LEVEL < 63) ++VOL_LEVEL; else VOL_LEVEL = 63;
EEPROM.write(1, VOL_LEVEL);
VoL_LeveL();
PORTD=VOL_LUT[VOL_LEVEL];
break;}
case 0x11: {
if (VOL_LEVEL > 0) --VOL_LEVEL; else VOL_LEVEL = 0;
EEPROM.write(1, VOL_LEVEL);
VoL_LeveL();
PORTD=VOL_LUT[VOL_LEVEL];
break;}
}
}
delay(250);
irrecv.resume(); // Receive the next value
}
}
Aktyw Forum
Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.
Sprawdź punkty Zarejestruj sięAVT 5382 PRE4562 – przedwzmacniacz liniowy audio
Moderatorzy:Jacek Bogusz, Grzegorz Becker, procesorowiec, robertw, Moderatorzy
-
- -
- Posty:38
- Rejestracja:22 cze 2011, o 07:46
W artykule z EP02/13 nie zmieściły się zdjęcie z rozmieszczeniem elementów przedwzmacniacza, może być sugestią przy montażu w posiadanej obudowie:
http://github.com/shirriff/Arduino-IRremote) :
oraz kod dla Arduino obsługujący pilota i PVC przydatny gdy chcemy dostosować innego pilota, konieczna jest biblioteka IRremote (Re: AVT 5382 PRE4562 – przedwzmacniacz liniowy audio
Z przyjemnoscia czytam twoje i Tomka projekty w EP
Ta obudowa jak piszesz jest kupiona na portalu aukcyjnym, a jakis link do takiej obudowy podałbys?
Dodano po namyśle:
O, nie moge ci wysłac pw, czy adres email na tlenie jest aktualny?
Ta obudowa jak piszesz jest kupiona na portalu aukcyjnym, a jakis link do takiej obudowy podałbys?
Dodano po namyśle:
O, nie moge ci wysłac pw, czy adres email na tlenie jest aktualny?
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 21 gości