Se bem precebi, o sequence decoder le o valor analógico que o emissor envia e cada botão tem um valor analógico diferente. É isso?
É mais ou menos. Tipicamente o comando vai enviar um sinal diferente por cada botão que se carrega. Há vários tipos de protocolos diferentes, por exemplo há um em que cada botão tem uma sequencia de bits diferente, há outro em que cada comando tem duas sequencias diferentes, e manda uma alternada com a outra... O que interessa primeiro é saber qual é o protocolo que está a ser usado. Se tens um comando universal, ele deverá ser compativel com vários protocolos diferentes (mas só vai usar 1, seja escolhido de uma lista ou "aprendendo" a partir de outro comando).
Basicamente no meu projecto eu criei a coisa em dois passos:
1º - Identificar o protocolo que o comando está a usar
2º - Consigurar a library para receber/enviar comandos com esse protocolo.
Tens muitas libraries (provávelmente até mais simples de usar que a minha) em que consegues ler à mesma os códigos, mas tens de saber à partida qual é o protocolo que está a ser usado. A vantagem de usar a minha library é que se for usada em conjunto com o SequenceDecoder, ele vai criar automaticamente o código para iniciar a library.
Depois de estar inicializada, tens um sketch de exemplo para ele escrever o código sempre que detecta que foi carregado um botão.
Eu tenho um comando TV universal. Qual é a frequência? Como posso saber isso?
A frequencia é provávelmente 36 ou 38kHz. Não precisas de te stressar muito com estes valores à partida. Claro que o ideal seria ter exactamente o valor certo, mas posso dizer-te por exemplo que aqui em casa tenho um sistema para controlar uma Zon box de vários sitios da casa, e estou a usar sensores de 30kHz (não havia de 36 quando eu precisei, só havia de 30, testei e funcionou à mesma). Entretanto já experimentei com sensores de 38kHz e funciona à mesma. Imagino que como os dados são transmitidos a uma velocidade bastante lenta aquilo tenha uma boa margem para erro.