noepab
April 24, 2022, 5:06pm
1
/*
Since Tv is READ_WRITE variable, onTvChange() is
executed every time a new value is received from IoT Cloud.
*/
#include <avr/io.h>
#include <TVout.h>
#include <IRremote.h>
unsigned int chan1[32] = {0x20DF8877};
unsigned int chan2[32] = {0xF2BE86F1};
unsigned int chan3[32] = {0x20DFC837};
unsigned int chan4[32] = {0x20DF28D7};
unsigned int chan5[32] = {0x20DFA857};
unsigned int chan6[32] = {0x20DF6897};
unsigned int chan7[32] = {0x20DFE817};
unsigned int chan8[32] = {0x20DF18E7};
unsigned int chan9[32] = {0x20DF9867};
unsigned int volDown[32] = {0x20DFC03F};
unsigned int chanUp[32] = {0x20DF00FF};
unsigned int chanDown[32] = {0x20DF807F};
const unsigned int volUp[32] = {0x20DF40BF};
const unsigned int onoff[32] = {0x20DF10EF};
const unsigned int mute[32] = {0x20DF10EF};
IRsend irsend;
const int freq = 38;
void sendIR(const unsigned int buf[]) {
irsend.sendLG (NEC,32,freq);
delay(300);
}
void onTvChange() {
Serial.println("==================");
Serial.println("Switch:"+String(tv.getSwitch()));
Serial.println("Volume:"+String(tv.getVolume()));
Serial.println("Channel:"+String(tv.getChannel()));
Serial.println("Mute:"+String(tv.getMute()));
Serial.println("==================");
if (first){
prevSwitch = tv.getSwitch();
prevVolume = tv.getVolume();
prevChannel = tv.getChannel();
prevMute = tv.getMute();
first = false;
return;
}
// On/Off changed
if (tv.getSwitch() != prevSwitch) {
prevSwitch = tv.getSwitch();
if (tv.getSwitch()) {
sendIR(chan[6]);
} else {
sendIR(onoff);
}
Serial.println("Switch changed:"+String(tv.getSwitch()));
}
void onVolumeChange() {
if (tv.getVolume() > prevVolume) {
tv.setMute(false);
prevMute = false;
for (int k = prevVolume + 1 ; k<=tv.getVolume(); k++) {
sendIR(volUp);
Serial.println("Volume requested:"+String(tv.getVolume())+" Set:"+String(k));
}
prevVolume = tv.getVolume();
}
else if (tv.getVolume() < prevVolume) {
tv.setMute(false);
prevMute = false;
for (int k = prevVolume - 1; k>=tv.getVolume(); k--) {
sendIR(volDown);
Serial.println("Volume changed:"+String(tv.getVolume())+" Set:"+String(k));
}
prevVolume = tv.getVolume();
}
}
void onChannelChange() {
if (tv.getChannel() != prevChannel) {
int newChannel = tv.getChannel();
if (newChannel > 0 && newChannel < 10) {
sendIR(chan[newChannel-1]);
} else if (newChannel > 9) {
if (newChannel > prevChannel) {
for (int ch = prevChannel; ch < newChannel; ch++) {
sendIR(chanUp);
Serial.println("Chan requested:"+String(newChannel)+" Set:"+String(ch));
}
} else if (newChannel < prevChannel) {
for (int ch = prevChannel; ch > newChannel; ch--) {
sendIR(chanDown);
Serial.println("Chan requested:"+String(newChannel)+" Set:"+String(ch));
}
}
}
prevChannel = newChannel;
Serial.println("Channel changed:"+String(tv.getChannel()));
}
}
void onMuteChange() {
// Mute changed
if (tv.getMute() != prevMute && tv.getMute()) {
prevMute = tv.getMute();
sendIR(mute);
Serial.println("Mute changed:"+String(tv.getMute()));
}
else if (tv.getMute() != prevMute && !tv.getMute()) {
prevMute = tv.getMute();
sendIR(mute);
Serial.println("Mute changed:"+String(tv.getMute()));
}
}
Arduino:1.8.19 (Windows 10), Tarjeta:"NodeMCU 1.0 (ESP-12E Module), 80 MHz, Flash, Disabled (new aborts on oom), Disabled, All SSL ciphers (most compatible), 32KB cache + 32KB IRAM (balanced), Use pgm_read macros for IRAM/PROGMEM, 4MB (FS:2MB OTA:~1019KB), 2, v2 Lower Memory, Disabled, None, Only Sketch, 115200"
In file included from C:\Users\noemi\OneDrive\Documentos\Arduino\tvremote\tvremote\tvremote.ino:5:
C:\Users\noemi\OneDrive\Documentos\Arduino\libraries\arduino-tvout-master/TVout.h:35:10: fatal error: avr/io.h: No such file or directory
35 | #include <avr/io.h>
| ^~~~~~~~~~
compilation terminated.
exit status 1
Error compilando para la tarjeta NodeMCU 1.0 (ESP-12E Module).
````Texto preformateado`
Moderador:
Por favor, lee las Normas del foro y edita tu código/error usando etiquetas de código.
Ve a edición, luego selecciona todo el código que has publicado, lo cortas y click en </>
Luego de editar el código, edita el título. Vuelve a leer el punto 3. sobre como poner titulos adecuados. Nada de "necesito ayuda, soy novato". Coloca algo que identifique tu consulta.
No continúes escribiendo sin antes hacer esto que te he pedido.
noepab
April 25, 2022, 9:08am
3
muchas gracias por la ayuda
noepab
April 25, 2022, 10:36am
4
confirmame por favor si es asi o tengo que cambiar algo al editar. en el forum
Te esta diciendo que le falta la libreria avr/io.h. Instalala.
noepab
April 25, 2022, 4:56pm
6
gonpezzi:
libreria avr/io.h
intente instalarla de diferentes maneras y no me deja da el mismo error,
libreria no valida
muchas gracias por tu ayuda
noepab
April 25, 2022, 5:08pm
7
le quite como comentais en otro comentario, -master, pero algo pasa que no funciona
Si seleccionas una tarjeta que no corresponde no te va a funcionar la librería avr/io.h
Por ejemplo seguramente si seleccionas la placa Arduino UNO y compilas no te dará error.
Edito: efectivamente acabo de probar si este era el problema. Si pones un ESP8266 o un DUE por ejemplo no te va a funcionar, pero si pones un UNO, un MEGA un NANO sin problema. Esto pasa cuando se hace copy and paste de cosas que hay en internet sin tener en cuenta el funcionamiento o qué necesitamos. Cada modelo de placa es diferente. Tú código no era para un Nodemcu porque no iba a poder compilarlo con esto #include <avr/io.h>
Una duda ¿Qué uso tendría el Nodemcu en tu proyecto si "Alexa" ya puede controlar por voz un smarth TV?
Agrega un receptor IR.
Ver título: " Intento controlar la tele mediante comandos de voz con alexa y nodemcu v3 " faltó poner en el titulo usando un control remoto IR.
noepab
April 26, 2022, 7:35am
12
mi telvision es es smat LG pero muy antigua, creo que no admite alexa,
el modelo es 47LA620S-ZA.
noepab
April 26, 2022, 7:36am
13
y tengo otra LG que no es smart, queria hacer dos iguales
system
Closed
October 23, 2022, 7:37am
14
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.