esquerda (16) conforme Figura2.Figura2 - Montagem do circuito de decodificacao.Os fios devem ser conectados no Arduino Mega conforme segue abaixo:5V .............................. Ao pino 5V do Arduino Mega GND............................ Ao pino GND do Arduino Mega STD ........................... Ao pino 3 do Arduino Mega Q3 .............................. Ao pino 4 do Arduino Mega Q2 .............................. Ao pino 5 do Arduino Mega Q1 .............................. Ao pino 6 do Arduino Mega Q0 .............................. Ao pino 7 do Arduino Mega Para a conexao com o plug (que sera conectado ao celular) recomendo a soldagem no terminal, caso nao seja possivel, descasque o fio e enrrole nos terminais tendo cuidado para nao dar curto nos fios (Figura3). Na maioria dos celulares a conexao dos fones sao com plugues de 2,5mm, nesse caso adquira um adaptador para a conversao (Figura4).Figura3: Ligacao no plug 3,5mmFigura4: Adaptador 3,5mm-2,5mmFirmware/* --------------------------------------------- * DTMF HOME CONTROL V1.0 Rev0.0 * Controle de dispositivos atraves de telefone * Arduino-ce * Comunidade Cearense de Hardware Livre * http://groups.google.com/group/arduino-ce?hl=pt-br * http://arduino-ce.blogspot.com * marco de 2011 ---------------------------------------------*/#define RELE1 2 // Conectado ao fio branco do modulo Rele(Figura4)#define pinBit01 7 // Q0#define pinBit02 6 // Q1#define pinBit03 5 // Q2#define pinBit04 4 // Q3#define pinBitStd 3 // STDint tecla = 0;int bit01 = 0; int bit02 = 0; int bit03 = 0; int bit04 = 0; int bitStd= 0; int RELE1_STATE = LOW; // Estado do Rele LOW (Desligado)void setup() { Serial.begin(9600); // Iniciamos a Serial com Baudrate 9600 pinMode(RELE1, OUTPUT); // Definimos o pino do Rele como Saida Serial.println("Aguardando tecla de comando..."); // Exibimos a mensagem no terminal...}void loop(){ bitStd = digitalRead(pinBitStd); //Le o estado do pino STD e armazena em 'bitStd' if (bitStd == HIGH) {//Se estiver em nivel alto fara as leituras //dos bits dos pinos Q3, Q2, Q1 e Q0 bit01 = digitalRead(pinBit01); bit02 = digitalRead(pinBit02); bit03 = digitalRead(pinBit03); bit04 = digitalRead(pinBit04); tecla = (bit04 * 8) + (bit03 * 4) + (bit02 * 2) + (bit01 * 1);//Conversao binaria para //decimal (ver Video1) Serial.print("Recebido: "); // Exibe a mensagem switch (tecla){ // Seleciona a tecla pressionada case 1: // Tecla 1 Serial.println("1"); /* COMANDO PARA RELE1 */ RELE1_STATE = !RELE1_STATE; // Guarda o estado INVERTIDO do Rele. break; case 2: // Tecla 2 Serial.println("2"); break; case 3: // Tecla 3 Serial.println("3"); break; case 4: // Tecla 4 Serial.println("4"); break; case 5: // Tecla 5 Serial.println("5"); break; case 6: // Tecla 6 Serial.println("6"); break; case 7: // Tecla 7 Serial.println("7"); break; case 8: // Tecla 8 Serial.println("8"); break; case 9: // Tecla 9 Serial.println("9"); break; case 10: // Tecla 0 Serial.println("0"); break; case 11: // Tecla * Serial.println("*"); break; case 12: // Tecla # Serial.println("#"); break; } digitalWrite(RELE1, RELE1_STATE);//Liga ou desliga o Rele1 conforme o estado (HIGH/ LOW) // Zeram-se todas as variaveis tecla = 0; bit01 = 0; bit02 = 0; bit03 = 0; bit04 = 0; bitStd= 0; delay (500); // Aguarda 500 milissegundos } // Sai do switch} // Volta pro loop...Testando o prototipoUtilizei uma lampada fluorescente comum ligado em 220V na bancada. O computador com a IDE do Arduino foi utilizado para monitorar