LusoRobótica - Robótica em Português

Robótica => Iniciantes => Tópico iniciado por: DFC17 em 10 de Junho de 2010, 21:57

Título: Ajuda em arduino
Enviado por: DFC17 em 10 de Junho de 2010, 21:57
Ola eu tenho um pequeno problema, eu queria fazer no arduino um pequeno circuito, queria ter um botao a mandar um impulso para a entrada 1 no arduino e na saida 13 sai se 5 impulsos, fazendo piscar um led por 5 vezes :) alguma ajuda?
Título: Re: Ajuda em arduino
Enviado por: amando96 em 10 de Junho de 2010, 22:37
Boas, já fizeste o led piscar?

http://www.arduino.cc/en/Tutorial/Button (http://www.arduino.cc/en/Tutorial/Button)
http://www.arduino.cc/en/Tutorial/Blink (http://www.arduino.cc/en/Tutorial/Blink)

Agora será só juntar os dois para fazer o que queres.

vai lendo os comentários, esplicam o que faz cada linha.
Título: Re: Ajuda em arduino
Enviado por: DFC17 em 10 de Junho de 2010, 22:49
sim ja vi esses, so que apartir do momento que carrego no botao, o led pisca e nao para de piscar :S
Título: Re: Ajuda em arduino
Enviado por: FET_Destroyer em 11 de Junho de 2010, 00:26
sim ja vi esses, so que apartir do momento que carrego no botao, o led pisca e nao para de piscar :S

void loop(){

// read the state of the pushbutton value:
  buttonState = digitalRead(buttonPin);


if (buttonState == HIGH) {
      for(i=0;i<5;i++){     
               digitalWrite(ledPin, HIGH);   // set the LED on
               delay(100);                  // wait for a second
               digitalWrite(ledPin, LOW);    // set the LED off
               delay(100); }
  }
}

penso que isso faz o que queres
cumps
Título: Re: Ajuda em arduino
Enviado por: DFC17 em 11 de Junho de 2010, 17:48
so tenho uma duvida, o "i" vai ser o que na funçao?
Título: Re: Ajuda em arduino
Enviado por: DFC17 em 11 de Junho de 2010, 19:06
nao deu assim, com esse codigo começa a piscar e nao para ao fim de 5 vezes...
Título: Re: Ajuda em arduino
Enviado por: microbyte em 11 de Junho de 2010, 19:28
nao deu assim, com esse codigo começa a piscar e nao para ao fim de 5 vezes...

Só se continuares a carregar no botao...
Título: Re: Ajuda em arduino
Enviado por: metRo_ em 11 de Junho de 2010, 19:30
O que código que foi aqui postado pisca 5 vezes assim que se carrega no botão, só que não era a cada 1 segundo mas sim 0.1 segundos, em vez do 100 tem que ser 1000.
O que pode estar a acontecer é que quando ele faz a leitura do botão este esteja a 1 ou por ruído ou porque tens as ligações mal feitas.
Título: Re: Ajuda em arduino
Enviado por: DFC17 em 11 de Junho de 2010, 19:42
hum nao sei vou copiar o codigo para aki, corrije me se faz favor

const int ledPin = 13;
const int buttonPin = 2;
int buttonState = 0;

void setup()     
{
  pinMode(ledPin, OUTPUT);
  pinMode(buttonPin, INPUT);
}


void loop(){

  buttonState = digitalRead(buttonPin);
 
int i;

  if (buttonState == HIGH) {
      for(i=0;i<5;i++){     

 digitalWrite(ledPin, HIGH);
               delay(1000);               
               digitalWrite(ledPin, LOW);
               delay(1000); }
}
}
Título: Re: Ajuda em arduino
Enviado por: microbyte em 11 de Junho de 2010, 20:07
Tu é que sabes o que é que queres... A gente não adivinha o que é que queres fazer.
Já te puseram um código que faz o LED piscar 5 vezes, que me parece a parte mais difícil, cabe-te a ti meter aquilo a  funcionar como tu queres.
Título: Re: Ajuda em arduino
Enviado por: DFC17 em 11 de Junho de 2010, 20:12
so queria meter o botao dar tensao para a entrada digital 2 e que a saida digital 13 fizesse o led piscar 5 vezes, mas o que acontece e que o led pisca e nao para...
Título: Re: Ajuda em arduino
Enviado por: amando96 em 11 de Junho de 2010, 20:17
Com que código? podes postar?

nvm...  :-X
Título: Re: Ajuda em arduino
Enviado por: metRo_ em 11 de Junho de 2010, 20:18
O teu código está correcto!
Título: Re: Ajuda em arduino
Enviado por: microbyte em 11 de Junho de 2010, 20:20
so queria meter o botao dar tensao para a entrada digital 2 e que a saida digital 13 fizesse o led piscar 5 vezes, mas o que acontece e que o led pisca e nao para...
O LED só não para se continuares a carregar no botão...
Título: Re: Ajuda em arduino
Enviado por: DFC17 em 11 de Junho de 2010, 20:27
mas com este ele nao para de piscar, eu nao tenho que entrar com uma tensao de 5 volts na entrada 2? so se for isso que eu tiver a fazer mal :S
Título: Re: Ajuda em arduino
Enviado por: amando96 em 11 de Junho de 2010, 20:34
Como ligaste o botão?
Título: Re: Ajuda em arduino
Enviado por: metRo_ em 11 de Junho de 2010, 21:34
Leste este meu post:
Citar
O que código que foi aqui postado pisca 5 vezes assim que se carrega no botão, só que não era a cada 1 segundo mas sim 0.1 segundos, em vez do 100 tem que ser 1000.
O que pode estar a acontecer é que quando ele faz a leitura do botão este esteja a 1 ou por ruído ou porque tens as ligações mal feitas.
Título: Re: Ajuda em arduino
Enviado por: DFC17 em 11 de Junho de 2010, 22:53
no arduino ao lado das saidas analogicas tem la 5 volts entao eu tirei dai uma ponta liguei a uma botoneira normalmente aberta e depois da botoneira para o 2 digital. e pus um led na saida 13 e ground.
Título: Re: Ajuda em arduino
Enviado por: amando96 em 11 de Junho de 2010, 23:10
Não puseste resistencia pull-down? assim penso que ele está a flutuar, esperimenta por uma resistencia do pino 2, para 0v.
Título: Re: Ajuda em arduino
Enviado por: metRo_ em 11 de Junho de 2010, 23:26
Não puseste resistencia pull-down? assim penso que ele está a flutuar, esperimenta por uma resistencia do pino 2, para 0v.

É isto que está a acontecer. Quando a botoneira está aberta o pino não está ligado a nada e está sempre a alterar entre 0 e 1. O que tens que fazer é colocar uma resistência de pull-down. Coloca uma resistência entre esse pino e o GND, uma resistência à volta de 5kohms.
Título: Re: Ajuda em arduino
Enviado por: DFC17 em 11 de Junho de 2010, 23:34
hum, obrigado pela ajuda :D acho ke e isso vou experimentar amanha :D
ja agora alguem me explica o pk da resistencia para que eu possa compreender? :)
Título: Re: Ajuda em arduino
Enviado por: amando96 em 11 de Junho de 2010, 23:41
Quando a resistencia está lá, é o ponto de refrencia de 0, ou 1 mais próximo, 0 será GND, e 1, 5v, mas quando carregas no botão, não está ligado com uma resistencia, é um fio ''directo'', logo oferece menos resistencia, e assim o pino "lê" como 5v...

Xii, muito mal esplicado lol.
Título: Re: Ajuda em arduino
Enviado por: metRo_ em 11 de Junho de 2010, 23:53
(https://lusorobotica.com/index.php?action=dlattach;topic=2436.0;attach=657)
Título: Re: Ajuda em arduino
Enviado por: DFC17 em 12 de Junho de 2010, 00:11
so tenho uma coisa a dizer : obrigado a todos pois ja funciona :D e um grande passo para mim :D