Protocolo JVC COMPU LINK e Arduino
Quem tem um Tape Deck antigo com entrada COMPU LINK - 3, e não tem o amplificador com controle remoto, o mesmo pode ser controlado por outros equipamentos via cabo. Muitas vezes, obrigando à quem não tem os módulos restantes, pouco utilizarem o Tape Deck.
Ao procurar no GOOGLE, descobri, que existe um protocolo para envio de comandos via cabo, neste Site https://github.com/jcj83429/jvc_compulink .
Conectando um Osciloscópio no terminal COMPU LINK e na terra do equipamento, ao pressionar play, observei parte do código que o equipamento enviou, provavelmente para ligar o resto do conjunto e pedir prioridade de execução.
Trecho do código enviado pelo Tape Deck
Agora como testar os Códigos DCS do manual:
- Realizar a conversão de Hex para Bin na calculadora do Windows.
- Realizar alguns comandos (digitalWrite) no pino 13 do Arduino.
//Comandos em teste do Deck JVC W218, inicia pelo deck b
//Josicáudio J. Lima
//Base do protocolo https://github.com/jcj83429/jvc_compulink
#define saida 13
void setup() {pinMode(saida, OUTPUT);}
//códigos sem sucesso 26, 28, 30, 2B, 44, C0, C1, C2
//códigos utilizados hex funcionais 20, 22, 23, 24, 25, 27, 29
void loop() {
rec();delay(5000);
pauses();delay(5000);
ff();delay(5000);
stope();delay(5000);
play();delay(5000);
pauses();delay(5000);
rew();delay(5000);
stope();delay(5000);
tlado();delay(5000);
/*
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); //BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); //BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW); //END
*/
}
void pauses(){//00100101 = 0x25
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); //BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); //BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); //BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); //BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); //BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); //BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); //BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); //BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW); //END
}
void play() {//00100000 = 0x20
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); //BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); //BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); //BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); //BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); //BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); //BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); //BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); //BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW); //END
}
void rec(){//00101001 0x29
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); //BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); //BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); //BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); //BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); //BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); //BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); //BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); //BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW); //END
}
void tlado(){// 00100111 0x27
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); //BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); //BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); //BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); //BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); //BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); //BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); //BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); //BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW); //END
}
void ff(){//00100011 = 0x23
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); //BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); //BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); //BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); //BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); //BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); //BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); //BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); //BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW); //END
}
void stope(){//00100010 = 0x22
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); //BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); //BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); //BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); //BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); //BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); //BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); //BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); //BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW); //END
}
void rew(){//00100100 0x24
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); //BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); //BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); //BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); //BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); //BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); //BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); //BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); //BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW); //END
}
Pronto, o Tape Deck, respondeu perfeitamente!!!
No caso do programa acima:
- Inicia gravação no Deck b;
- Após 5S, realiza a pausa;
- Após 5S, Avança a fita;
- Após 5S, para;
- Após 5S, play;
- Após 5S, pausa;
- Após 5S, volta;
- Após 5S, para;
- Após 5S, troca o lado da fita;
Segue aplicação utilizada no Arduino Mega, para conversão e controle do Tape Deck JVC W218.
Pode ser modificado para várias aplicações, decodificações...
// Comandos play, avançar, retroceder, gravar, pausar, parar, trocar lado Deck B JVC W218
// Comandos play, avançar, retroceder, parar, trocar lado Deck A JVC W218
// Controle remoto Samsung
// Josicláudio J. Lima
// Podem ser realizados mapeamentos de vários controles, só abrir o Monitor serial do Arduino
#include <IRremote.h>
int RECV_PIN = 8; //Recebe na porta digital 8 receptor IR TSOP38238
IRrecv irrecv(RECV_PIN);
decode_results results;
#define saida 13
void setup() {
Serial.begin(9600);
irrecv.enableIRIn();
pinMode(saida, OUTPUT);
//códigos utilizados hex funcionais 20, 22, 23, 24, 25, 27, 29, 60, 62, 63, 64, 67
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, DEC);//Decodifica os dados recebidos para decimal e envia para pc
irrecv.resume();//pega próximo valor
if(results.value == 1784778242){ //comando play 00100000 = 0x20
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); // BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW); //END
}
if(results.value == 3774104872){ //comando pausa 00100101 = 0x25
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); // BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); // BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); // BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW); //END
}
if(results.value == 3843765582){ //comando gravar 00101001 0x29
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); // BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); // BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); // BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW); //END
}
if(results.value == 2770332734){ //comando trocar de lado 00100111 0x27
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); // BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); // BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); // BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); // BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW); //END
}
if(results.value == 3980777284){ //comando avançar 00100011 = 0x23
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); // BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); // BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); // BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW); //END
}
if(results.value == 3361986248){ //comando parar 00100010 = 0x22
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); // BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); // BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW); //END
}
if(results.value == 1976685926){ //comando retroceder 0x24
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); // BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); // BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW); //END
}
if(results.value == 2331063592){ //comando enter Play Deck A 0x60
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); // BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); // BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW); //END
}
if(results.value == 3261853764){ //comando Seta Acima Tlado 0x67
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); // BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); // BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); // BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); // BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); // BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW); //END
}
if(results.value == 1400905448){ //comando Seta dir FF 0x63
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); // BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); // BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); // BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); // BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW); //END
}
if(results.value == 1972149634){ //comando Seta Esq REW 0x64
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); // BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); // BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); // BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW); //END
}
if(results.value == 3305092678){ //comando Seta baixo Stop 0x62
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); // BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); // BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(15); // BIT 1
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW);delay(5); // BIT 0
digitalWrite(saida, HIGH);delay(5);digitalWrite(saida, LOW); //END
}
}
}
/*
Mapeamento controle samsung tv AA59-00469A
play 1784778242
rec 3843765582
stop 3361986248
ff 3980777284
pause 3774104872
rew 1976685926
psize 2308325960
cc 2770332734
mts 1150532780
pmode 3135877228
srs 551334792
emanual 1268204482
a 3672802284
b 732942060
c 3038842278
d 1906441864
exit 158659426
return 1003313352
seta baixo 3305092678
seta direita 1400905448
seta esquerda 1972149634
seta superior 3261853764
ok setas 2331063592
info 1908947622
tools 1825097194
menu 1723810024
vol menos 2209452902
vol mais 1752382022
mudo 591444258
canal mais 1595074756
canal menos 412973352
0 3119867746
1 3778927144
2 2908251746
3 657459652
4 4120482440
5 1931099650
6 742730860
7 1167253836
8 1747313982
9 2340753640
hdmi 3241158247
source 3459683302
power 4105841032
ch list 1820560902
content 1809676774
guide 3468072230
*/
Segue o mesmo código mais enxuto, sem escrita no monitor serial
// Comandos play, avançar, retroceder, gravar, pausar, parar, Reversao Deck B JVC W218
// Comandos play, avançar, retroceder, parar, Reversao Deck A JVC W218
// Controle remoto Samsung// Josicláudio J. Lima
#include <IRremote.h>
int RECV_PIN = 8;IRrecv irrecv(RECV_PIN);decode_results results;
#define A digitalWrite(13, HIGH);
#define B digitalWrite(13, LOW);
#define a delay(5);
#define b delay(15);
void setup() {irrecv.enableIRIn();pinMode(13, OUTPUT);}
void loop() {if (irrecv.decode(&results)) {irrecv.resume();
if(results.value == 1784778242){A;a;B;a;A;a;B;a;A;a;B;b;A;a;B;a;A;a;B;a;A;a;B;a;A;a;B;a;A;a;B;a;A;a;B;}//comando play 0x20
if(results.value == 3774104872){A;a;B;a;A;a;B;a;A;a;B;b;A;a;B;a;A;a;B;a;A;a;B;b;A;a;B;a;A;a;B;b;A;a;B;}//comando pausa 0x25
if(results.value == 3843765582){A;a;B;a;A;a;B;a;A;a;B;b;A;a;B;a;A;a;B;b;A;a;B;a;A;a;B;a;A;a;B;b;A;a;B;}//comando gravar 0x29
if(results.value == 2770332734){A;a;B;a;A;a;B;a;A;a;B;b;A;a;B;a;A;a;B;a;A;a;B;b;A;a;B;b;A;a;B;b;A;a;B;}//comando Reversao 0x27
if(results.value == 3980777284){A;a;B;a;A;a;B;a;A;a;B;b;A;a;B;a;A;a;B;a;A;a;B;a;A;a;B;b;A;a;B;b;A;a;B;}//comando avançar 0x23
if(results.value == 3361986248){A;a;B;a;A;a;B;a;A;a;B;b;A;a;B;a;A;a;B;a;A;a;B;a;A;a;B;b;A;a;B;a;A;a;B;}//comando parar 0x22
if(results.value == 1976685926){A;a;B;a;A;a;B;a;A;a;B;b;A;a;B;a;A;a;B;a;A;a;B;b;A;a;B;a;A;a;B;a;A;a;B;}//comando retroceder 0x24
if(results.value == 2331063592){A;a;B;a;A;a;B;b;A;a;B;b;A;a;B;a;A;a;B;a;A;a;B;a;A;a;B;a;A;a;B;a;A;a;B;}//comando enter Play Deck A 0x60
if(results.value == 3261853764){A;a;B;a;A;a;B;b;A;a;B;b;A;a;B;a;A;a;B;a;A;a;B;b;A;a;B;b;A;a;B;b;A;a;B;}//comando Seta Acima reversao 0x67
if(results.value == 1400905448){A;a;B;a;A;a;B;b;A;a;B;b;A;a;B;a;A;a;B;a;A;a;B;a;A;a;B;b;A;a;B;b;A;a;B;}//comando Seta dir FF 0x63
if(results.value == 1972149634){A;a;B;a;A;a;B;b;A;a;B;b;A;a;B;a;A;a;B;a;A;a;B;b;A;a;B;a;A;a;B;a;A;a;B;}//comando Seta Esq REW 0x64
if(results.value == 3305092678){A;a;B;a;A;a;B;b;A;a;B;b;A;a;B;a;A;a;B;a;A;a;B;a;A;a;B;b;A;a;B;a;A;a;B;}//comando Seta baixo Stop 0x62
}
}
Controle do Tape Deck pela internet com ESP32 Wroom
#include <WiFi.h>
unsigned long previousMillis = 0;
unsigned long interval = 30000;
#define D1 26
#define CONNECT_TIME 10000
#define TIMEOUTTIME 5000
const char* ssid = "your_ssid";
const char* password = "your_password";
WiFiServer server(80);
size_t currentTime = millis();
size_t previousTime = 0;
String header;
void setup() {
pinMode(D1, OUTPUT);
WiFi.begin(ssid, password);
server.begin();}
void loop() {
WiFiClient client = server.available();
if (client) {
currentTime = millis();
previousTime = currentTime;
String currentLine = "";
unsigned long currentMillis = millis();
if ((WiFi.status() != WL_CONNECTED) && (currentMillis - previousMillis >=interval)) {
WiFi.disconnect();
WiFi.reconnect();
previousMillis = currentMillis;}
while (client.connected() && currentTime - previousTime <= TIMEOUTTIME) {currentTime = millis();
if (client.available()) {char c = client.read();header += c;
if (c == '\n') {if (currentLine.length() == 0) {
client.println("<br />");
client.println("<h1 style=\"text-align:center; \" class=\"display-4\"><font color='Gold'><i><u>JVC TAPE DECK Control</u></i></h1> ");
if (header.indexOf("GET /D1/on") >= 0) {
client.println("<h2 style=\"text-align:center; \" class=\"display-4\"><i><MARQUEE BEHAVIOR=SCROLL WIDTH=30%><font color='Cyan'>State: PLAY B</MARQUEE></2></i>");
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);} //END code 0x20
else if (header.indexOf("GET /D2/on") >= 0) {
client.println("<h2 style=\"text-align:center; \" class=\"display-4\"><i><MARQUEE BEHAVIOR=SCROLL WIDTH=30%><font color='Cyan'>State: PAUSE B</MARQUEE></2></i>");
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);} //END code 0x25
else if (header.indexOf("GET /D3/on") >= 0) {
client.println("<h2 style=\"text-align:center; \" class=\"display-4\"><i><MARQUEE BEHAVIOR=SCROLL WIDTH=30%><font color='Crimson'>State: REC B</MARQUEE></2></i>");
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);} //END code 0x29
else if (header.indexOf("GET /D4/on") >= 0) {
client.println("<h2 style=\"text-align:center; \" class=\"display-4\"><i><MARQUEE BEHAVIOR=SCROLL WIDTH=30%><font color='Cyan'>State: SIDE B</MARQUEE></2></i>");
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);} //END code 0x27
else if (header.indexOf("GET /D5/on") >= 0) {
client.println("<h2 style=\"text-align:center; \" class=\"display-4\"><i><MARQUEE BEHAVIOR=SCROLL WIDTH=30%><font color='Cyan'>State: FF B</MARQUEE></2></i>");
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);} //END code 0x23
else if (header.indexOf("GET /D6/on") >= 0) {
client.println("<h2 style=\"text-align:center; \" class=\"display-4\"><i><MARQUEE BEHAVIOR=SCROLL WIDTH=30%><font color='Cyan'>State: STOP B</MARQUEE></2></i>");
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);} //END code 0x22
else if (header.indexOf("GET /D7/on") >= 0) {
client.println("<h2 style=\"text-align:center; \" class=\"display-4\"><i><MARQUEE BEHAVIOR=SCROLL WIDTH=30%><font color='Cyan'>State: REW B</MARQUEE></2></i>");
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);} //END code 0x24
else if (header.indexOf("GET /D8/on") >= 0) {
client.println("<h2 style=\"text-align:center; \" class=\"display-4\"><i><MARQUEE BEHAVIOR=SCROLL WIDTH=30%><font color='Cyan'>State: PLAY A</MARQUEE></2></i>");
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);} //END code 0x60
else if (header.indexOf("GET /D9/on") >= 0) {
client.println("<h2 style=\"text-align:center; \" class=\"display-4\"><i><MARQUEE BEHAVIOR=SCROLL WIDTH=30%><font color='Cyan'>State: SIDE A</MARQUEE></2></i>");
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);} //END code 0x67
else if (header.indexOf("GET /D10/on") >= 0) {
client.println("<h2 style=\"text-align:center; \" class=\"display-4\"><i><MARQUEE BEHAVIOR=SCROLL WIDTH=30%><font color='Cyan'>State: FF A</MARQUEE></2></i>");
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);} //END code 0x63
else if (header.indexOf("GET /D11/on") >= 0) {
client.println("<h2 style=\"text-align:center; \" class=\"display-4\"><i><MARQUEE BEHAVIOR=SCROLL WIDTH=30%><font color='Cyan'>State: REW A</MARQUEE></2></i>");
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);} //END code 0x64
else if (header.indexOf("GET /D12/on") >= 0) {
client.println("<h2 style=\"text-align:center; \" class=\"display-4\"><i><MARQUEE BEHAVIOR=SCROLL WIDTH=30%><font color='Cyan'>State: STOP A</MARQUEE></2></i>");
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);} //END code 0x62
else if (header.indexOf("GET /D13/on") >= 0) {
client.println("<h2 style=\"text-align:center; \" class=\"display-4\"><i><MARQUEE BEHAVIOR=SCROLL WIDTH=30%><font color='RED'>State: POWER OFF</MARQUEE></2></i>");
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);} //END code 0xBF
else if (header.indexOf("GET /D14/on") >= 0) {
client.println("<h2 style=\"text-align:center; \" class=\"display-4\"><i><MARQUEE BEHAVIOR=SCROLL WIDTH=30%><font color='Gold'>State: POWER ON</MARQUEE></2></i>");
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(15); // BIT 1
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);delay(5); // BIT 0
digitalWrite(D1, HIGH);delay(5);digitalWrite(D1, LOW);} //END code 0xBE
client.println("<!DOCTYPE html><html>");
client.println("<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">");
client.println("<meta charset=\"UTF-8\">");
client.println("<title>JVC TAPE DECK Control</title>");
client.println("<link rel=\"icon\" href=\"data:,\">");
client.println("<style> { font-family: Helvetica; display: inline-block; margin: 3px auto; text-align: center;}");
client.println(".mybtn { background-color: #4CAF50; border: 3px solid #4CAF50;border-radius:50px;; color: white; padding: 10px 15px; text-align: center; text-decoration: none; display: inline-block; font-size: 16px; margin: 4px 2px; cursor: pointer; }");
client.println(".par { font-size: 16px;}");
client.println("p {text-align: center;}");
client.println("</style></head>");
client.println("<body style=background-color:#000000>");
client.println("<body class=\"bg-light\">");
client.println("<center><table>");
client.println("<td><p><a href=\"/D13/on\" role=\"button\" class=\" mybtn btn btn-success mybtn\"style=\"background-color: #B22222!important; color:#f8f9fa!important;\">Pwr OFF</a></p></td>");
client.println("<td><p><a href=\"/D14/on\" role=\"button\" class=\" mybtn btn btn-success mybtn\"style=\"background-color: #198754!important; color:#f8f9fa!important;\">Pwr ON</a></p></td>");
client.println("<tr>");
client.println("<td><p><a href=\"/D1/on\" role=\"button\" class=\" mybtn btn btn-success mybtn\"style=\"background-color: #198754!important; color:#f8f9fa!important;\" >PLAY B</a></p></td>");
client.println("<td><p><a href=\"/D2/on\" role=\"button\" class=\" mybtn btn btn-success mybtn\"style=\"background-color: #198754!important; color:#f8f9fa!important;\">PAUSE B</a></p></td>");
client.println("<td><p><a href=\"/D3/on\" role=\"button\" class=\" mybtn btn btn-success mybtn\"style=\"background-color: #DC143C!important; color:##DC143C!important;\">REC B</a></p></td>");
client.println("<td><p><a href=\"/D4/on\" role=\"button\" class=\" mybtn btn btn-success mybtn\"style=\"background-color: #198754!important; color:#f8f9fa!important;\">SIDE B</a></p></td>");
client.println("<tr>");
client.println("<td><p><a href=\"/D5/on\" role=\"button\" class=\" mybtn btn btn-success mybtn\"style=\"background-color: #198754!important; color:#f8f9fa!important;\">FF --- B</a></p></td>");
client.println("<td><p><a href=\"/D6/on\" role=\"button\" class=\" mybtn btn btn-success mybtn\"style=\"background-color: #198754!important; color:#f8f9fa!important;\">STOP B</a></p></td>");
client.println("<td><p><a href=\"/D7/on\" role=\"button\" class=\" mybtn btn btn-success mybtn\"style=\"background-color: #198754!important; color:#f8f9fa!important;\">REW B</a></p></td>");
client.println("<td><p><a href=\"/D8/on\" role=\"button\" class=\" mybtn btn btn-success mybtn\"style=\"background-color: #198754!important; color:#f8f9fa!important;\">PLAY A</a></p></td>");
client.println("</tr>");
client.println("<tr>");
client.println("<td><p><a href=\"/D9/on\" role=\"button\" class=\" mybtn btn btn-success mybtn\"style=\"background-color: #198754!important; color:#f8f9fa!important;\">SIDE A</a></p></td>");
client.println("<td><p><a href=\"/D10/on\" role=\"button\" class=\" mybtn btn btn-success mybtn\"style=\"background-color: #198754!important; color:#f8f9fa!important;\">FF --- A</a></p></td>");
client.println("<td><p><a href=\"/D11/on\" role=\"button\" class=\" mybtn btn btn-success mybtn\"style=\"background-color: #198754!important; color:#f8f9fa!important;\">REW A</a></p></td>");
client.println("<td><p><a href=\"/D12/on\" role=\"button\" class=\" mybtn btn btn-success mybtn\"style=\"background-color: #198754!important; color:#f8f9fa!important;\">STOP A</a></p></td>");
client.println("</tr>");
client.println("</div>");
client.println("</body></html></div></form></table></center>");
client.println();
break;} else {
currentLine = "";}}
else if (c != '\r') {
currentLine += c;}}}
header = "";
client.stop();}
delay(1);}








cara,pelo visto vou ter que tentar descobrir o comando do REC no deck A do W718 porque no seu não tem ne ? porque o W218 não grava no deck A e ai não tem como você pegar o codigo e publicar aqui.
ResponderExcluir