#ifndef MuxService_h #define MuxService_h #include "SerialService.h" #include class MuxService { public: static const uint8_t enderecoMux = 0x70; // Padrão do TCA9548A static bool Iniciado; static int canalAtivo; static void IniciarMUX() { PrintTela("[MUX] Iniciando TCA9548A..."); Wire.beginTransmission(enderecoMux); Iniciado = (Wire.endTransmission() == 0); if (Iniciado) { canalAtivo = -1; // Nenhum canal ativo ainda PrintTela("[MUX] TCA9548A Iniciado"); } else { PrintTela("[MUX] TCA9548A nao Iniciado, endereco " + String(enderecoMux) + " nao encontrado no barramento"); } } static void SelecionarCanal(uint8_t canal) { if (!Iniciado) return; if (canalAtivo == canal) return; // Já está no canal certo Wire.beginTransmission(enderecoMux); Wire.write(1 << canal); Wire.endTransmission(); PrintTela("[MUX] Canal alterado de " + String(canalAtivo) + " para " + String(canal)); canalAtivo = canal; } }; bool MuxService::Iniciado = false; int MuxService::canalAtivo = -1; #endif