Botao

Boas, tenho um projecto que gostava de implementar o arduino, tenho um arduino uno, mas nao tenho muitos conhecimentos em linguagem (para nao dizer nenhum). O que eu pretendo fazer para já é ao carregar num botão de pressão a porta pwm devera aumentar a tensao de 0 a 5v gradualmente e demorar tipo 5 segundos a fazer isso.

Grato por qualqier tipo de ajuda Paulo Teixeira

Desculpa mas deixa eu ver se entendi direito, você quer uma saida pwm regulando a tensão pela pressão do botão de pressão, gradualmente, mas de 5 em 5 segundos?

É quase isso.
O que eu quero é para funcionar de acelerador, ou seja quando carregar no botão a saída pwm tem de aumentar a tensão de 0 ate 5v, e demora tipo 5 segundos a fazer isso… mas tem de manter a tensão nos 5v só quando deixar o botão é que baixa a tensão.

Obrigado

ta certo então...

Pressiona ele vai aumentando tipo 1v por segundo (5v - 5 Segundos) dai depois ele mantem na tensão que foi regulada.(teria q ter um display pra exemplificar) ...

Vou sair agora e depois eu entro coloco o código +- uma base pra você...

Desculpe a demora.

Vlw!

Não tens de pedir desculpa por nada, eu só agradeço. So quero mesmo uma base, os valores depois eu ajusto... O principal é a cena do botão enquanto carrega acelerar e se soltar o botão desliga.

Abraço e muito obrigado

while (botao==1){ valor_pwm++; delay(1000); if (valor_pwm>=5){ valor_pwm=0; } } delay(100);

bom eu acho q é mais ou menos isso, enquanto o botaão estiver pressionado ele incrementa a variavel. Se continuar pressionado no proximo loop ele da mais uma incrementada, se continuar pressionado ele aguarda 1 segundo e volta no loop. se ficar pressionado e chegar até >=5 ele volta pra 0v. agora é só ajustar aos valores... Qualquer coisa se não for isso ou alguma mudança posta ai que eu tento ajudar... vlw!

Pelo que percebi acho que não é bem isso pois tem de se manter nos 5v ate deixar de carregar no botao. Mas ta la perto o resto sao ajustes, mas amanha vou experimentar e digo alguma coisa.

Obrigado Abraço

é isso que não estou pegando, pois a pressaõ do botão gera um valor, e você quer q esse valor interfira na tensão de 5v em 5 segundos mas não entendi como, em que sequencia...

faz tipo uma coisa assim pra mim entender...

pressiona botao le valor faz tal coisa...

meio linear dai eu entendo o que você quer e faço o código, ou parte mais significante do mesmoo...

Vamos lá ver se percebe melhor o que eu quero. Quando carrego no botão a tensão da saída pwm tem de aumentar tipo 1v por segundo até aos 5v. Quando deixo o botão a tensão cai, mas enquanto tiver o botão pressionado tem de manter os 5v.

Abraço

ta acho que agora foi, seria com while então, tipo enquanto botão pressionado avalia tempo e transforma em 1v por Segundo...

void loop(){ while (botao == 1){ valor_pwm++; delay(1000); if (valor_pwm >= 5){ valor_pwm =5; } } if (botao == 0){ valor_pwm = 0; } }

Acho que seria algo assim... só tem q configurar esse pwm com valores específicos...

Ok, obrigado. Vou experimentar agora isso.

Muito obrigdo Abraço ( vlw )

Desculpa mas nao consegui que desse. O que eu tenho neste momento é isso:

int valor_pwm =11; int botao =8;

void setup() { pinMode(valor_pwm, OUTPUT); pinMode(botao, INPUT); }

void loop() { while (botao == 1) { valor_pwm++; delay(10); if (valor_pwm >= 5) { valor_pwm = 5; } }

}

A parte da montagem tenho a certeza que esta correcta ( também não e muita coisa). Obrigdo

valor pwm tem q ser o valor a ser usado em uma escrita analógica, você esta tribuindo ele há uma porta analógica e não valor de saida analógico, ...

ficaria assim:

analogWrite(PINO_DE_SAIDA, valor_pwm);

int valor_pwm; int botao =8; int pino_saida = 11;

void setup() { pinMode(pino_saida, OUTPUT); pinMode(botao, INPUT); }

void loop() { while (botao == 1) { valor_pwm = valor_pwm + 50;; delay(1000); if (valor_pwm >= 256) { valor_pwm = 256; } } analogWrite(pino_saida, valor_pwm); }

acho que funciona compilei não deu erro...

agora e ver se na praática tem o efeito correto...

Valeu, Aguardo Notícias..

Pois na pratica nao esta a funcionar, nao tem como voce testar?? so para ter certeza que nao me estou a enganar.

Obrigado

vou testar... tu pode me dizer o que acontece?

tu sabe como montar a entrada do botão?

coloca 5v no botaão e um resistor ligado a entrada do botao e o GND, depois liga na saida do botão o pino 8 digital.

Sim, eu sei. A parte da montagem tenho a certeza que esta certa. Basicamente nao acontece nada, ainda pensei que fosse do delay ser muito lento mas nao.

Obrigado

consegui!