collapse

* Links de Robótica

* Posts Recentes

Ajuda com TRIAC por senso
[Hoje às 18:00]


TV LG White Screen por almamater
[15 de Novembro de 2017, 08:37]


Pergunta sobre prototipagem ( Pesquisa ) por luisjustin
[14 de Novembro de 2017, 23:22]


Medir Agua que está no Poço por Njay
[14 de Novembro de 2017, 13:28]


Amplificador audio por beirao
[12 de Novembro de 2017, 23:43]


Power_OK Enermax por edeweld
[12 de Novembro de 2017, 17:15]


Driver motor por beirao
[11 de Novembro de 2017, 17:40]


Preciso de uma fonte de corrente constante ? por samc
[09 de Novembro de 2017, 14:18]


Pressoestato 0-10V por artur36
[07 de Novembro de 2017, 23:22]


Ideias para construir um quadrúpede simples por Njay
[07 de Novembro de 2017, 18:39]

Autor Tópico: 2 LDR's e arduino  (Lida 3305 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline Rafael Lopes

  • Mini Robot
  • *
  • Mensagens: 10
2 LDR's e arduino
« em: 12 de Maio de 2011, 16:00 »
Boas a todos, antes de mais quero dizer que ainda sou muito novo nisto, tenho o meu primeiro KIT ARDUINO a pouco mais de uma semana, e ainda percebo MUITO pouco mesmo. O projecto que queria fazer era simples, tenho 2 LDR's e 2 LED's, e neste exemplo que está a seguir o projecto é quando a LDR2 tem uma valor maior que a LDR1, liga LED1 e quando os valores entre as LDR's são iguais, liga LED2. Isto era o que era suposto fazer mas depois de fazer o upload para a placa o que ela me faz é simplesmente liga os LED's e mais nada, ficando sempre ligados. Se alguem me puder ajudar, é que não estou a ver o que esteja mal :S (não percebo quase nada).

Será que tem a ver com o não por tempo para ficarem ligados?

Este foi o codigo que fiz:


#define LED1 9     
#define LED2 5     

int LDR1 = 0;     
int LDR2 = 1;

int LDRval1 = 0;
int LDRval2 = 0;


void setup() {
 
pinMode(LED1, OUTPUT);       
pinMode(LED2, OUTPUT);
}

void loop(){
  LDRval1 = analogRead(LDR1);         
  LDRval2 = analogRead(LDR2);     

  if (LDRval2 > LDRval1); {           
  digitalWrite(LED1, HIGH);         
  } if (LDRval1 == LDRval2 ); {
    digitalWrite(LED2, HIGH);
 }
 }

Offline CBX

  • Mini Robot
  • *
  • Mensagens: 1.315
Re: 2 LDR's e arduino
« Responder #1 em: 12 de Maio de 2011, 16:53 »
os LDR estão bem montados? consegues ler algum valor?

em relação ao código:

antes das {} nunca se usa ;

no loop a certa altura vais ter de apagar os leds, como está, mesmo que a instrução deixe de ser verdadeira o led vai continuar ligado
« Última modificação: 12 de Maio de 2011, 16:56 por CBX »

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.400
  • Helpdesk do sitio
Re: 2 LDR's e arduino
« Responder #2 em: 12 de Maio de 2011, 19:57 »
O problema é o ; depois do if, assim acabas logo o if o que está dentro dos {} não é executado.
Avr fanboy

Offline Tyran

  • Mini Robot
  • *
  • Mensagens: 293
Re: 2 LDR's e arduino
« Responder #3 em: 12 de Maio de 2011, 21:04 »
Uiiii traz-me muitas memórias bugs deste tipo, os nervos que não é quando tudo parece estar direitinho mas não faz o que devia :D
E a fúria quando descobrimos a causa hehehe
E quando é problemas de formatação ao copiar de pdfs e tal!!! quando comecei com C do pdf for dummies e não dava o código copiado de lá hehe, não é fácil lidar :D

É muito importante saber fazer debug ao código, e deixem-me frisar, MUITO! Neste caso do arduino saber fazer os prints pa série nos sítios certos pode poupar muitas dores de cabeça ;)

Desculpem-me o spam, mas saiu-me por assim dizer :)

Já agora, assegura-te também que as LDR são iguais senão monta o hardware/software de forma a compensar.

Offline Rafael Lopes

  • Mini Robot
  • *
  • Mensagens: 10
Re: 2 LDR's e arduino
« Responder #4 em: 12 de Maio de 2011, 22:24 »
Desde já agradeço a resposta aos 3...entao é o seguinte, ja alterei isso de usar {} antes de  ; , e acrescentei delay(1000) mas o primeiro if e delay (2000) para o segundo if para desligar os led's como disse o nosso amigo CBX ("no loop a certa altura vais ter de apagar os leds, como está, mesmo que a instrução deixe de ser verdadeira o led vai continuar ligado"), mas continua igual ficam os dois ligados e mais nada :S

quanto a estarem bem ligadas as LDR's eu penso que sim (quase certeza que sim) entao, cada uma ligada a 5V numa extremidade a outra ligada ao GND com uma resistencia e ao analog pin correspondente de cada.   


Offline CBX

  • Mini Robot
  • *
  • Mensagens: 1.315
Re: 2 LDR's e arduino
« Responder #5 em: 12 de Maio de 2011, 22:59 »
para apagar o led precisas de:

Código: [Seleccione]
digitalWrite(LED1, LOW);
o delay apensa vai fazer o programa "parar" durante determinado tempo...

Offline Rafael Lopes

  • Mini Robot
  • *
  • Mensagens: 10
Re: 2 LDR's e arduino
« Responder #6 em: 12 de Maio de 2011, 23:11 »
ihhhhhhh pois é :S

sorry.

Offline Rafael Lopes

  • Mini Robot
  • *
  • Mensagens: 10
Re: 2 LDR's e arduino
« Responder #7 em: 12 de Maio de 2011, 23:38 »
ja consegui avanços... ;D eheheh

a pouco numa das respostas dadas perguntaram se leio algum valor...isso ve-se em "serial monitor" certo? mas como?

quais sao os valores que o analogRead dá ? entre 0 e 1023?

Tyran é mesmo isso, e mesmo inervante nao conceguir fazer as coisas correr como deviam correr...mas tudo se aprede...e com ajuda já vi que se torna muito mais facil aprender :), e se a coisa que gosto é aprender :D

Offline CBX

  • Mini Robot
  • *
  • Mensagens: 1.315
Re: 2 LDR's e arduino
« Responder #8 em: 12 de Maio de 2011, 23:48 »
a pouco numa das respostas dadas perguntaram se leio algum valor...isso ve-se em "serial monitor" certo? mas como?

quais sao os valores que o analogRead dá ? entre 0 e 1023?

sim e sim: http://www.arduino.cc/en/Reference/AnalogRead

tens um exemplo ao fundo da página

Offline Tyran

  • Mini Robot
  • *
  • Mensagens: 293
Re: 2 LDR's e arduino
« Responder #9 em: 13 de Maio de 2011, 00:07 »
Então força nisso ;)

Segue esse link do CBX, sempre que tiveres dúvida no retorna ou mesmo o que faz determinada função, nada melhor que ler a documentação e qualquer dúvida está cá a comunidade :)

Offline Rafael Lopes

  • Mini Robot
  • *
  • Mensagens: 10
Re: 2 LDR's e arduino
« Responder #10 em: 13 de Maio de 2011, 13:53 »
Boa tarde mais uma pequena pergunta. Qual a forma mais facil de fazer uma ponte H para um motor DC?

Desde ja agradeço resposta, e muito obrigado.

Offline CBX

  • Mini Robot
  • *
  • Mensagens: 1.315
Re: 2 LDR's e arduino
« Responder #11 em: 13 de Maio de 2011, 15:41 »
comprar, não fica caro...  ;D

ou podes pegar nuns transístores NPN e PNP e nuns didodos, à muitos esquemas por ai...

Offline Rafael Lopes

  • Mini Robot
  • *
  • Mensagens: 10
Re: 2 LDR's e arduino
« Responder #12 em: 13 de Maio de 2011, 15:58 »
Por exemplo pode ser esta " SN754410 H-BRIDGE " ?

para fazer as ligaçoes depois é so procurar um daqueles esquemas que diga o que é cada pino e fazer a ligaçao certo?
e é facil de fazer de programar com o arduino? qual é o codigo?

desculpem se peço de mais mas estou mesmo intusiasmado com isto :P

Offline CBX

  • Mini Robot
  • *
  • Mensagens: 1.315
Re: 2 LDR's e arduino
« Responder #13 em: 13 de Maio de 2011, 16:15 »
SN754410, L293D, L298...

sim é só ligar os fios...

o código são apenas digitalwrite HIGH e LOW para ligar e desligar

Offline FarraJ

  • Mini Robot
  • *
  • Mensagens: 30
Re: 2 LDR's e arduino
« Responder #14 em: 13 de Maio de 2011, 22:34 »
comprar, não fica caro...  ;D

ou podes pegar nuns transístores NPN e PNP e nuns didodos, à muitos esquemas por ai...


Quando se trabalha com corrente continua, basta so 4 transistores, certo? (ponte H mesmo básica)