Bom domingão galera!

é assim... estou montando um sistema para automatização de uma casa por sensores e controle remoto! ( á principio o protótipo )

O programa já está escrito e funciona perfeitamente!

Estou tendo um problema em relação a ativação de relés,  Tenho o receptor infraVermelho e 1 relé ligado no arduino,  porem quando aperto a tecla no controle remoto, que ativaria a bobina do relé ele não ativa,  e quando meço com o multímetro tenho apenas 2v. 

Teria como amplificar esses 2v para ativar o relé que é de 6v?

Ou teria algum modo ou componente que eu possa usar para Ativar o relé com o comando do arduino?

Sendo que o relé acenderá Lâmpadas 127v Alternada.

Alguem sabe onde posso comprar o Attiny para ou o Atmega para fazer a substituição do Arduino pelos mesmos. ;D

Exibições: 812

Responder esta

Respostas a este tópico

Wallace, como não tem muita informação sobre como está ligado ou o programa, se tivesse que apostar em alguma coisa, diria que o pino que o relé está ligado, não está declarado como OUTPUT corretamente.

Atmega  ou attiny vc encontra no Mercadolivre.

Creio que sejá isso mesmo!  Olhe o código abaixo!

#include <IRremote.h>
#define FNV_PRIME_32 16777619 // Variaveis de leitura minima - não muda
#define FNV_BASIS_32 2166136261 // Variavel de leitura maxima - não muda

int vent1 = 9; // onde será ligado os atuadores ( Nomeia o pino 7 para (led1) ).

int RECV_PIN = 8; //Onde será ligado o Receptor IR
IRrecv irrecv(RECV_PIN); // Não mudar
decode_results results; // Não mudar

void setup()
{

irrecv.enableIRIn(); //Iniciando a recepção do sinal - Não mudar
Serial.begin(9600); // abilita a comunicação serial - Não mudar
}


//---------------------------------------------------------------------------------
int compare(unsigned int oldval, unsigned int newval) { //
if (newval < oldval * .8) { //
return 0; //
} //
else if (oldval < newval * .8) { //
return 2; //
} //
else { //
return 1; //
} //
} //
unsigned long decodeHash(decode_results *results) { //
unsigned long hash = FNV_BASIS_32; //
for (int i = 1; i+2 < results->rawlen; i++) { //
int value = compare(results->rawbuf[i], results->rawbuf[i+2]);//
hash = (hash * FNV_PRIME_32) ^ value; //
} //
return hash; //
} //
//---------------------------------------------------------------
// |NÃO MUDAR NENHUM PARAMETRO DE CONFIGURAÇÃO NESTA AREA|
void loop() {
if (irrecv.decode(&results)) {
// Serial.print("'real' decode: "); //Mostra o valor recebido - Não necessario
// Serial.print(results.value, HEX); //!!!!!!!PARA IDENTIFICAR AS TEClAS - Não necessario
Serial.print(" Tecla decodificada > "); // Mensagem que virá escrita no Serial Monitor
unsigned long hash = decodeHash(&results); // Valor Decodificado da tecla pressionada
Serial.println (hash); //Mostra o valor Decodificado da tecla no Serial Monitor
irrecv.resume(); // Obrigatório a reinicialização da recepção!


//--------------Local para inserção do código logo abaixo!-----------------

if(hash == 3778927144){ // Valor do botão do controle remoto já decodificado.
Serial.println ("Ventilador Ligador"); // Mensagem que será mostrada no Serial Monitor.
digitalWrite(vent1, HIGH); // Valor da saida ( HIGH = LIGADO - LOW = DESLIGADO ).
}
if(hash == 2908251746){
Serial.println ("Ventilador Desligado");
digitalWrite(vent1, LOW);
}

}
}

Vê se esse tutorial te ajuda:

http://engenheirando.com/eletronica/reles/

Ta o código completo ai? Em nenhum lugar ta sendo declarado nenhum pino como saída.

Está na parte de cima é o Pino 8 -

int vent1 = 9; // onde será ligado os atuadores ( Nomeia o pino 7 para (led1) ).  

 

No comentário do código eu escrevi errado uhuhuhuhuh

 

Mas eu já consegui resolver estava faltando uma linha declarando o pino como ( OUTPUT )! 

Mas obrigado pela atenção!

 

 

 

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço