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!

Exibições: 414

Responder esta

Respostas a este tópico

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;
       }

}

Tentei LED's agora e não deu certo amigo

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.

de

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço