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
Tags:
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:
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!
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por