estou fazendo um projeto de modificação numa maquina e estou com duvida na programação do Arduíno, preciso que ao pressionar um botão ele ligue um pino digital e ao pressionar o mesmo botão ele espere um determinado tempo e acione outro pino digital.
sera que podem me ajudar me mandando um código pronto com comentários explicando a programação?
Desde já gradeço, sua ajuda sera de grande valia!
Tags:
que maquina e esta e o que exatamente vc quer fazer? pois este procedimento que vc quer parece simples so explique melhor o seu projeto..
é uma maquina que faz a limpeza de maquinas de fiação, vamos tirar o painel que tem agora pra diminuir o espaço, e colocar um Arduíno, preciso que quando eu aperte um botão ele ligue um pino digital, e quando eu aperte esse mesmo botão ele espere um tempo e acione outro pino digital (inversão do motor) pois como ela e uma maquina de limpeza ela vai para os dois lados.
se puder me ajudar fico muito agradecido
Creio que você seja novo no forum.
Por favor leia esse post:
http://labdegaragem.com/forum/topics/sugest-o-de-como-postar
Obrigado.
sou novo sim
muito obrigado
sou novo na plataforma também, por isso minha pergunta parece meio tola
Bom eu fiz um código onde tem um botão e duas saídas.
a saída 2 começa ligada e a 1 desligada.
quando aperta o botão ela desliga as duas e espera 10 segundos e inverte
ai a 1 liga e a 2 desliga.não testei mas acho que funciona
int botao =3;
int saida1 = 8;
int saida2 = 9;
unsigned long comparativo = 0;
unsigned long intervalo = 10L * 1000L;
boolean inversao = 1;
boolean ativa = 0;
void setup() {
// put your setup code here, to run once:
pinMode (botao,INPUT);
pinMode(saida1,OUTPUT);
pinMode(saida2,OUTPUT);
digitalWrite(saida1,LOW);
digitalWrite(saida2,HIGH);
}
void loop() {
unsigned long tempo = millis();
if (digitalRead(botao)==LOW )
{
delay(100);
inversao = !inversao;
comparativo=tempo;
digitalWrite(saida1,LOW);
digitalWrite(saida2,LOW);
}
/////////////////saida 1 HIGH/////////////
if (tempo-comparativo>intervalo & inversao==0 & ativa==1 )
{ digitalWrite(saida1,HIGH);
digitalWrite(saida2,LOW);
ativa=0;
}
/////////////////saida 2 HIGH/////////////
if (tempo-comparativo>intervalo & inversao==1 & ativa==1)
{ digitalWrite(saida1,LOW);
digitalWrite(saida2,HIGH);
ativa=0;
}
}
fiz rapidao de tarde agora testei e ta funfando..
int botao =3;
int saida1 = 8;
int saida2 = 9;
unsigned long comparativo = 0;
unsigned long intervalo = 10L * 1000L;
boolean inversao = 1;
boolean ativa = 0;
void setup() {
// put your setup code here, to run once:
pinMode (botao,INPUT);
pinMode(saida1,OUTPUT);
pinMode(saida2,OUTPUT);
digitalWrite(botao,HIGH);
digitalWrite(saida1,LOW);
digitalWrite(saida2,HIGH);
Serial.begin(9600);
}
void loop() {
unsigned long tempo = millis();
if (digitalRead(botao)==LOW )
{
ativa=1;
delay(100);
inversao = !inversao;
comparativo=tempo;
digitalWrite(saida1,LOW);
digitalWrite(saida2,LOW);
Serial.println("botao");Serial.println(inversao);
}
/////////////////saida 1 HIGH/////////////
if (tempo-comparativo>intervalo & inversao==0 & ativa==1 )
{ digitalWrite(saida1,HIGH);
digitalWrite(saida2,LOW);
ativa=0;
}
/////////////////saida 2 HIGH/////////////
if (tempo-comparativo>intervalo & inversao==1 & ativa==1)
{ digitalWrite(saida1,LOW);
digitalWrite(saida2,HIGH);
ativa=0;
}
}
RESOLVIDO
Agora deu certo, muito obrigado ajudou muito mesmo.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por