Pages: [1]   Go Down
Author Topic: função goto ou equivalente  (Read 1702 times)
0 Members and 1 Guest are viewing this topic.
Brazil
Offline Offline
Newbie
*
Karma: 0
Posts: 1
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Pessoal estou tentando escrever um programa p/ o arduino e estou esbarrando na função if elese.
--------------------------------------------programa--------------------------------------
void loop(){
  iniState = digitalRead(iniPin); // Leitura do botão inicio

if(iniState == HIGH); { // Se o estado do botão for alto(estiver pressionado)

digitalWrite(resPin, HIGH); // liga res
digitalWrite(valPin,HIGH);//  liga val
digitalWrite(aquPin, HIGH); // liga led aqu

}

else { // Senão
digitalWrite(resPin, LOW); // Apaga o LED:

}
}

--------------------------------------------erro abaixo------------------------------------
In function 'void loop()':
error: 'else' without a previous 'if

outra dúvida é a seguinte:
preciso monitorar 2 botoes ao mesmo tempo e caso um botão desse seja acionado ele deve colocar algumas portas em nível alto por um certo tempo, caso o segundo botão seja acionado ele vai colocar as portas que estão em nível alto em nível baixo (seria um botão de anula)
algum sabe onde consigo exemplos p/ eu desenvolver essas aplicação?
no meu pouco intendimento essas funções de monitorar os botões deve estar dentro da função void loop()
mas não sei como criar saltos como fazia em basic coma função goto (rotulo)
se fosse em basic eu faria um monitoramento dos botoes com a função if /goto ( condição 1) e if (condição 2)
mas não ví ainda na documentação de exemplos que vem na ide do arduino exemplos coma  função goto.

abraços

sanches
Logged

Ribeirao Preto - Brazil
Offline Offline
Full Member
***
Karma: 0
Posts: 103
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Olá.
Acho que o erro do seu if e else é o ponto e virgula.
Existe a funcao Goto. Basta entrar nesse link e veja como ela funciona e exemplo
http://arduino.cc/en/Reference/Goto
Sempre que tiver duvidas sobre que funcoes existem e quais existem entre nessa parte do site.
http://arduino.cc/en/Reference/HomePage
Outra parte que recomendo para vc ler é essa com varios mini tutoriais.
http://arduino.cc/en/Reference/HomePage
Resumindo, pesquiser aqui no site que vc encontra 90% das respostas.
Quando nao encontrar basta vir aqui no forum.
E nao esqueça de vir as vezes para ajudar quem precis tambem.
Espero ter ajudado.
Abraço.
Logged

Precisa de produtos para seu Arduino?
Não deixe de ver meus produtos no Mercado Livre!
http://lista.mercadolivre.com.br/_CustId_76934379

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3282
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ok, LOW significa pressionado, HIGH significa solto


Code:
if (digitalRead(botao1) == LOW )   {
    digitalWrite(resPin, HIGH); // liga res
    digitalWrite(valPin,HIGH);//  liga val
    digitalWrite(aquPin, HIGH); // liga led aqu
    }
if (digitalRead(botao2 == LOW)   {
     digitalWrite(resPin, LOW); // liga res
     digitalWrite(valPin,LOW);//  liga val
     digitalWrite(aquPin, LOW); // liga led aqu
}


Se um botão estiver pressionado, liga luzes, se o outro for pressionado, desliga luzes. Não precisas do else.
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Forum Moderator
São Paulo/SP/Brazil
Offline Offline
Sr. Member
*****
Karma: 2
Posts: 305
Brazilian Arduino Team
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ok, LOW significa pressionado, HIGH significa solto
Depende se você estiver utilizando PULL-UP ou PULL-DOWN no botão. Um "schema" ajudaria.

Leia:
http://www.arduino.cc/en/Tutorial/Button
Logged

Rondonia
Offline Offline
Newbie
*
Karma: 0
Posts: 27
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Experimenta tirar o ponto e vírgula desta função

if(iniState == HIGH); { // Se o estado do botão for alto(estiver pressionado)

Deixe assim:
if(iniState == HIGH) { // Se o estado do botão for alto(estiver pressionado)

Pois o ponto e vírgula finaliza a função.
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3282
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ok, LOW significa pressionado, HIGH significa solto
Depende se você estiver utilizando PULL-UP ou PULL-DOWN no botão. Um "schema" ajudaria.

Leia:
http://www.arduino.cc/en/Tutorial/Button

Eu quis apenas explicar o raciocínio que segui no exemplo que dei. O post pergunta como utilizar um if... else e não como ligar um botão. E se o problema está no lado do software é pacífico assumir que o hardware já está montado correctamente.
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Pages: [1]   Go Up
Jump to: