Arquivos da categoria: Arduino

Arduino – Filtro de linha controlado com controle remoto infra-vermelho

Olá pessoal,

Recentemente precisei desenvolver para a casa de minha mãe um projeto que foi na verdade um desafio bem interessante.

O problema era o seguinte: Ela possuía quatro equipamentos que precisavam ser acionados via controle remoto, de forma que com um único controle eu pudesse controlar tudo e que houvesse a possibilidade de remover um dos quatros dispositivos e colocar  outro no lugar (luz de led da estante, 5 barras de LED do armário da sala e outros).

Pensando neste problema, eu tentei inicialmente criar um filtro de linha próprio(ou régua), mas não achei o socket fêmea que eu queria, que era o socket fêmea no padrão brasileiro com abas parafusáveis, parecido com a imagem abaixo:

Por não encontrar esse socket e não dar certo com outros sockets, eu comprei um filtro de linha e modifiquei ele pra ficar do jeito que eu queria. Escolhi um modelo que já tinha um fusível de proteção, cabos resistentes com tomada dentro do padrão e sockets dentro do padrão de tomadas brasileiro e ficou bem legal, dêem uma olhada nas imagens abaixo:

 

Depois de bastante trabalho para modificar o filtro de linha e ligar no meu projeto com o arduino, tive outro problema, ao ligar os 4 canais simultaneamente do módulo de relé o arduino resetava, pois a corrente era bem maior do que a corrente limite da porta 5V do arduino. Acabei colocando um conversor DC-DC (12V -> 5V 3A) e coloquei tanto o receptor de infra-vermelho quanto o módulo com 4 relés para ser alimentado pelos 5V deste conversor.

O código do projeto ficou bacana e o produto “filtro de linha com controle remoto” ficou muito bom.

Caso alguém tenha alguma dúvida ou queira alguma ajuda, basta entrar em contato.

Obrigado e até o próximo post pessoal.

Arduino – Função MAP – Regra de três

Olá pessoal,
A um tempo atrás achei uma função bem útil no Arduino, chamada: map

Ela basicamente faz uma regra de 3 e te retorna o valor de X (na regra de três). Vou mostrar um exemplo:

// lê os dados qualquer da porta 0
int valor = analogRead(0);

// faz o mapeamento da faixa inicial e faixa final do valor 1 com a faixa inicial e faixa final do valor 2, através do valor passado no primeiro parâmetro
valor = map(valor, 0, 1023, 0, 255);

// escreve na porta 9 o valor gerado
analogWrite(9, valor);

 

Explicação detalhada:

Parâmetro 1:
É o valor que temos em mão, e que queremos que o mapeamento use como referência

Parâmetro 2:
Faixa inicial do “parâmetro 1”, ou seja, o menor valor possível para ele

Parâmetro 3:
Faixa final do “parâmetro 1”, ou seja, o maior valor possível para ele

Parâmetro 4:
Faixa inicial do valor a ser retornado em relação ao “parâmetro 2”, ou seja, o menor valor possível em relação ao “parâmetro 2”

Parâmetro 5:
Faixa final do valor a ser retornado em relação ao “parâmetro 3”, ou seja, o maior valor possível em relação ao “parâmetro 3”

Resumindo: O resultado desta função é um valor entre os “parâmetros 4 e 5” em relação aos parâmetros “2 e 3”.

Obrigado e até o próximo post pessoal.