• Welcome to LusoRobótica - Robótica em Português.
 

Desafio Ajudar o Pai Natal

Started by TigPT, 01 de December de 2009, 22:03

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

fred gomes

obrigado por responderem, ja corrigi os erros..só me acusa mais um não sei porquê,
na parte: if (valor < 300 && valor1 > 300){;
acusa-me erro, uma pequena questão... se eu colocar "else" em vez desse If ele vai me "trocar" o resultado verificado pelos dois sensores( espero fazer-me entender), isto é , se anteriormente eu fiz a condição de que   if (valor > 300 && valor1 < 300); ao colocar o "ELSE" ele vai entender o contrario? ou seja ,   if (valor < 300 && valor1 > 300);
cumprimentos,
Fred

fred gomes

int motorright = 3;
int motorleft = 5;
int sensorright = 1;
int sensorleft = 2;
int valor = 0;
int valor1 = 0;

void setup(){
  pinMode (motorright, OUTPUT);
  pinMode (motorleft, OUTPUT);
  pinMode (sensorright, INPUT);
  pinMode (sensorleft, INPUT);
}

void loop(){
  valor = analogRead (sensorright);
  delay (25);
  if (valor < 300){;
  digitalWrite (motorright, HIGH);
  }
  valor1 = analogRead (sensorleft);
  if (valor1 >300){;
  digitalWrite (motorleft, HIGH);
  }
  valor = analogRead (sensorright);
  valor1 = analogRead (sensorleft);
  if (valor > 300 && valor1 < 300){;
  digitalWrite (motorright, HIGH);
  digitalWrite (motorleft, LOW);
  }
  else{
  digitalWrite (motorright, LOW);
  digitalWrite (motorleft, HIGH);
  while (analogRead (sensorright) >300 && analogRead (sensorleft) >300);
  while (analogRead (sensorright) >300 && analogRead (sensorleft) >300);
  }
}


ja não contém erros:),mas não tenho a certeza se irá funcionar como esperado, pois pela tal duvida exposta anteriormente não tenho a certeza se o "else" irá fazer o que referi...
cumprimentos,
Fred

metRo_

O else funciona da seguinte maneira.
Vamos supor que temos o seguinte código:

int a=2;
if(a<5){
   motor=1;
}
if(a<3){
   motor=0;
}

Neste caso como a=2, isto é, menor que 5 e que 3 ele vai executar as duas condições.


int a=2;
if(a<5){
   motor=1;
else if(a<3){
   motor=0;
}

Neste caso usamos o else. Então ele vai verificar a primeira condicção e só verifica a segunda condição caso a primeira não seja verificada, isto é, como a=2 ele coloca o motor a 1 e depois no segundo if o a até é menor que 3 no entanto ele já não entra neste condição pois ja entrou na primeira.

fred gomes

sim metRo eu sei disso.
na minha programaçao ele vai verificar um caso, e o que quero dizer é se, irá "trocar" o estado dos sensores verificados no 1º caso... é essa a minha duvida...

Ps: diz antes se achas que a parte do else irá funcionar como esperado, se não, o que propoes a fazer para que funcione como o desejado..
cumps.
cumprimentos,
Fred

fred gomes

ahh! desculpa, e no teu exemplo não é antes:

int a=2;
if(a<5){
   motor=1;
else
   motor=0;
}

??
cumprimentos,
Fred

metRo_

Existem as duas variantes.
Nesse caso se ele não entrar na primeira condição faz sempre o que esta no else. No caso que apresentei se o a=6 ele não entra na primeira condição nem na segunda e no teu caso não entra na primeira mas entra na segunda.
Se calhar era melhor começares a criar um tópico para o teu projecto. A ideia deste tópico é mais falar directamente sobre o desafio deixando estas duvidas para outros tópicos ;)

fred gomes

ok,
amanha irei "textar" mesmo sem ponte H (ainda nao comprei), a minha programação e vejo se se comporta como espero ou não, caso continue com duvidas abrirei um novo topico:)
cumprimentos,
Fred

microbyte

Alargar o prazo?
Estou muito apertado com exames. Tenho aquilo quase terminado, mas para concluir até à data limite, não estudo nada.

Fifas

em principio acabo a tempo :) estava com uns problemas mas acho que ja consegui resolver :D

TigPT

Podem entregar depois do prazo, 1 ou 2 dias mas serão penalizados por isso. (visto que não estava alargamento do prazo nas regras e os outros participantes fizeram para as datas, poderiam ter feito melhor com mais tempo, não irão estar a ser comparadas directamente!!! Mas nós queremos é renas :P )

Fifas

Pessoal. O prazo acaba hoje e ainda só temos 5 participaçoes e uma delas inacabada (a minha :P).

Sei que algumas participaçoes ainda estao a terminar o robot, mas vá lá...queremos ver isso! :D

tcustodio

e eu tou com sérios problemas com a minha carripana :O
duvido que consiga acabar hoje :(
Tiago Custódio,
- Não me dêem álcool se estiver um piano por perto.

Fifas

Citando o TigPT:
Quote from: TigPT on 05 de January de 2010, 23:46
Podem entregar depois do prazo, 1 ou 2 dias mas serão penalizados por isso. (visto que não estava alargamento do prazo nas regras e os outros participantes fizeram para as datas, poderiam ter feito melhor com mais tempo, não irão estar a ser comparadas directamente!!! Mas nós queremos é renas :P )

Por isso, entreguem mesmo que nao consigam a tempo...

Pauleta

Já foram os tópicos bloqueados mas há pessoal que ainda não meteu os videos... Por mim estão na boa para ampliar o prazo. Queria ver mais bots a passear com prendas...  ;)
Cumprimentos,
Tiago Oliveira

Fifas

Tal como diz nos posts anteriores. Podem apresentar os robots depois, apenas serão penalizados pelo "atraso".

Foi pena nao haver mais participações :(