LusoRobótica - Robótica em Português
Robótica => Iniciantes => Tópico iniciado 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?
-
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.
-
sim ja vi esses, so que apartir do momento que carrego no botao, o led pisca e nao para de piscar :S
-
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
-
so tenho uma duvida, o "i" vai ser o que na funçao?
-
nao deu assim, com esse codigo começa a piscar e nao para ao fim de 5 vezes...
-
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...
-
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.
-
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); }
}
}
-
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.
-
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...
-
Com que código? podes postar?
nvm... :-X
-
O teu código está correcto!
-
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...
-
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
-
Como ligaste o botão?
-
Leste este meu post:
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.
-
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.
-
Não puseste resistencia pull-down? assim penso que ele está a flutuar, esperimenta por uma resistencia do pino 2, para 0v.
-
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.
-
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? :)
-
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.
-
(https://lusorobotica.com/index.php?action=dlattach;topic=2436.0;attach=657)
-
so tenho uma coisa a dizer : obrigado a todos pois ja funciona :D e um grande passo para mim :D