Go Down

Topic: Piscar com botao sempre pressionado (Read 997 times) previous topic - next topic

luisilva

Atenção a essa ligação à ignição. Deve não ligar à ignição, mas deve activar o relé que liga a ignição. Também tem que prestar atenção ao facto de o Arduino não conseguir comandar directamente esse relé (não faço ideia da corrente que será necessária, mas duvido que seja menos de 20mA, que é o valor máximo que cada saída do Arduino consegue fornecer), deve usar um transístor para fazer esse comando.

nuno_v

#16
Mar 18, 2015, 02:55 pm Last Edit: Mar 18, 2015, 03:01 pm by nuno_v
A minha intenção era comprar um relé com contacto normalmente fechado que pudesse ser activado pelo arduino e abrisse o contacto quando necessário mas quendo fechado permitisse a passagem da corrente para a ignição. Penso que essa corrente seja 12V, agora só não sei se a amperagem influencia muito na escolha do relé. Deve dar para medir com o multímetro. Só no fim de semana vou ter tempo para testar.
Obrigado pelas dicas.

luisilva

Em primeiro lugar a corrente não é media em Volt, mas sim, em Ampere. Essa corrente interfere na escolha do relé. Outra coisa que deve ter atenção é à tensão da bobina do relé. Como vai usar o Arduino e este tem um "conversor" de 12V para 5V, pode usar um destes dois valores (convém ter atenção à corrente que a bobina consome também). Para além disto, muito provavelmente, vai precisar também de um transístor para controlar o relé.

nuno_v

Finalmente consegui testar este fim de semana e funcionou sem falhas. Comprei um relé de 5v e parece estar tudo ok. Penso que não seja necessário o transístor luisilva. Só tenho mais uma dúvida, é possível adicionar um potenciómetro de forma a controlar o tempo de corte. Tenho programados 70 ms, mas gostaria de poder alterar esse tempo sem ser necessário ligar ao PC. Obrigado pela ajuda.

luisilva

Sim, é possível. Basta usar o potenciómetro, ligá-lo à entrada analógica e usar o analogRead(). Esta função devolve um valor entre 0 e 1023. Pegando neste valor e multiplicando ou dividindo por alguma coisa, deve conseguir-se tirar alguma coisa que possa ser usado para controlar esse tempo. Por exemplo, se o valor 700 corresponder a esses 70ms, basta dividir o valor por 10 e conseguem-se configura valores entre 0 e 102,3ms.
Aqui está um exemplo do uso da função analogRead() e das ligações necessárias.

luisilva

Já agora também. Eu aconselho vivamente o uso do transístor. Se alguma coisa correr mal, quando usa o transístor e este queima, e basta substituir o transístor queimado por outro novo. Se não tiver o transístor e alguma coisa correr mal quem sofre as consequências é o microcontrolador e é mais caro substituir este que o transístor.
Se faz questão em não usar o transístor, pelo menos, coloque um díodo em anti-paralelo com a bobina do relé.

patinhofeio

#21
Mar 24, 2015, 07:48 pm Last Edit: Mar 24, 2015, 07:49 pm by patinhofeio
Boas.
Usando a leitura analógica como foi dito atrás, podes depois usar o map(), que basicamente converte o valor lido numa escala definida por ti.
Podes ver a aplicação no reference do Arduino AQUI

Go Up