collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[27 de Março de 2024, 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: 2 LDR's e arduino  (Lida 8470 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.733
  • 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)