Go Down

Topic: Piscar com botao sempre pressionado (Read 757 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é.

#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
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy