Boh, sempre più confuso. Mi sono accorto che c'è un esempio di recording nella libreria, e per mia felicità mi sono accorto di aver seguito la stessa logica:
codeLen = results->rawlen - 1;
// To store raw codes:
// Drop first value (gap)
// Convert from ticks to microseconds
// Tweak marks shorter, and spaces longer to cancel out IR receiver distortion
for (int i = 1; i <= codeLen; i++) {
if (i % 2) {
// Mark
rawCodes[i - 1] = results->rawbuf[i]*USECPERTICK - MARK_EXCESS;
Serial.print(" m");
}
else {
// Space
rawCodes[i - 1] = results->rawbuf[i]*USECPERTICK + MARK_EXCESS;
Serial.print(" s");
}
Serial.print(rawCodes[i - 1], DEC);
}
Ma stessa cosa anche qui, non invia correttamente e se prendo i codici (tra l'altro diversi perchè c'è il "MARK_ECCESS") e li metto in uno sketch a parte funzionano!
La parte di sending nell'esempio è semplicemente:
else if (codeType == UNKNOWN /* i.e. raw */) {
// Assume 38 KHz
irsend.sendRaw(rawCodes, codeLen, 38);
Serial.println("Sent raw");
}
Ma cose, cose.. ![]()