Ciao a tutti,
avrei bisogno del vostro aiuto per un progettino che in origine doveva essere abbastanza semplice. Volevo di utilizzare un modulo ricevitore IR recuperato da un vecchio videoregistratore per ricevere il segnale dal telecomando della mia TV per poter accendere e spegnere il pc. Sto utilizzato un Leonardo perché tra le altre features può simulare la tastiera e il mouse su un pc.
La parte dello spegnimento funziona alla grande in quanto simulo la sequenza di tasti da premere per spegnere il pc.
Il mio problema è l'accensione. Il Pc può essere acceso da tastiere (USB e PS2) e mouse andando ad agire in modo opportuno nelle impostazioni del BIOS. Quindi in teoria basta simulare la pressione di un pulsante della tastiera per avviare il pc...ma ciò non avviene =(
Il codice che utilizzo è il seguente, valido per i TV samsung, fatemi sapere se ci sono errori :):
#include <IRremote.h>
int RECV_PIN = 11;
int num_off=0;
int num_on=0;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
irrecv.enableIRIn(); // Start the receiver
}
void loop() {
if (irrecv.decode(&results)) {
//Power OFF
if(results.value==0xE0E0F10E)
num_off++;
if(num_off>20){ //If I receive at least 20 0xE0E0F10E I shutdown my pc
num_off=0;
Keyboard.begin();
// CTRL-ALT-DEL:
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press(KEY_LEFT_ALT);
Keyboard.press(KEY_DELETE);
delay(100);
Keyboard.releaseAll();
//ALT-s:
delay(1000);
Keyboard.press(KEY_LEFT_ALT);
Keyboard.write('s');
//ALT-a:
Keyboard.write('a');
delay(100);
Keyboard.release(KEY_LEFT_ALT);
Keyboard.end();
}
//Power ON
if(results.value==0xE0E0926D)
num_on++;
if(num_on>20){ //If I receive at least 20 0xE0E0926D I power on pc pressing a key
num_on=0;
Keyboard.begin();
Keyboard.press(KEY_LEFT_CTRL);
delay(100);
Keyboard.release(KEY_LEFT_CTRL);
Keyboard.end();
}
irrecv.resume(); // Receive the next value
}
}
Sicuramente il problema non è nella ricezione IR e non dovrebbe essere un problema del pc perché con il mouse e la tastiera si accende...
Soluzioni HW stile relay per adesso non le voglio prendere in considerazione, anche perché questo metodo è applicabile anche a laptop.
Qualcuno sa darmi qualche indicazione? O al massimo chi ha Leonardo può provare ad accendere il pc simulando la tastiera?Così riesco a capire se è un problema di Leonardo o del mio sistema...
Vi ringrazio infinitamente ![]()
Raizen