LusoRobótica - Robótica em Português

Robótica => Iniciantes => Tópico iniciado por: Rafael Lopes em 12 de Maio de 2011, 16:00

Título: 2 LDR's e arduino
Enviado por: Rafael Lopes 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);
 }
 }
Título: Re: 2 LDR's e arduino
Enviado por: CBX 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
Título: Re: 2 LDR's e arduino
Enviado por: senso 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.
Título: Re: 2 LDR's e arduino
Enviado por: Tyran 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.
Título: Re: 2 LDR's e arduino
Enviado por: Rafael Lopes 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.   

Título: Re: 2 LDR's e arduino
Enviado por: CBX 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...
Título: Re: 2 LDR's e arduino
Enviado por: Rafael Lopes em 12 de Maio de 2011, 23:11
ihhhhhhh pois é :S

sorry.
Título: Re: 2 LDR's e arduino
Enviado por: Rafael Lopes 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
Título: Re: 2 LDR's e arduino
Enviado por: CBX 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 (http://www.arduino.cc/en/Reference/AnalogRead)

tens um exemplo ao fundo da página
Título: Re: 2 LDR's e arduino
Enviado por: Tyran 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 :)
Título: Re: 2 LDR's e arduino
Enviado por: Rafael Lopes 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.
Título: Re: 2 LDR's e arduino
Enviado por: CBX 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...
Título: Re: 2 LDR's e arduino
Enviado por: Rafael Lopes 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
Título: Re: 2 LDR's e arduino
Enviado por: CBX 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
Título: Re: 2 LDR's e arduino
Enviado por: FarraJ 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)
Título: Re: 2 LDR's e arduino
Enviado por: senso em 13 de Maio de 2011, 22:45
E resistências, e saber o que se está a fazer, por 2 ou 3€ acho que vale mais comprar uma ponte H pronta a usar.
Título: Re: 2 LDR's e arduino
Enviado por: Rafael Lopes em 18 de Maio de 2011, 00:19
Boa noite a todos.

Gostava de saber uma infomação...trabalhando com LDR's/sensores no arduino e possível dizer que determinado valor de LDR é maior, menor, maior ou igual, menor ou igual, igual e nao igual, mas se eu precisar de dizer entre valores, por exemplo:

se LDR1 tiver entre 400 e 600 fazer qualquer coisa.

Isto é possivel? Se sim como?

Desde já muito obrigado
Título: Re: 2 LDR's e arduino
Enviado por: senso em 18 de Maio de 2011, 00:24
if(LDR1>400 & LDR1<600){
fazer qualquer coisa; }
Título: Re: 2 LDR's e arduino
Enviado por: Rafael Lopes em 18 de Maio de 2011, 10:59
hum oki...muito obrigado senso
Título: Re: 2 LDR's e arduino
Enviado por: Rafael Lopes em 18 de Maio de 2011, 11:13
Boas...ouvi uns rumores de pessoas que nao gostavm muito do serviço da lusorobotica por causa de encomendas...alguem me sabe dizer se se passa alguma coisa? é seguro comprar material?
Título: Re: 2 LDR's e arduino
Enviado por: andre_f_carvalho em 18 de Maio de 2011, 21:59
Boas...ouvi uns rumores de pessoas que nao gostavm muito do serviço da lusorobotica por causa de encomendas...alguem me sabe dizer se se passa alguma coisa? é seguro comprar material?

pelo que sei o tigpt (admin) anda desaparecido e como consequência existe pessoal que comprou na loja, pagou e ainda não recebeu o material
Título: Re: 2 LDR's e arduino
Enviado por: Rafael Lopes em 21 de Maio de 2011, 16:01
Boas, precisava de ajuda

A bridge SN754410 da para ligar so dois motores ou mais?

Outra coisa como faço a ligaçao da ponte ao arduino para controlar um simples motor? e que ja pesquisei por esquemas dessa mesma ponte e nao percebo nada :

Precisa mesmo de energia suplementar como vejo em todos os esquemas ou nao e necessário?
Título: Re: 2 LDR's e arduino
Enviado por: Njay em 21 de Maio de 2011, 16:14
Off topic; deves criar um tópico novo ou, melhor ainda, usar um dos muitos tópicos que já há por aqui sobre pontes H e L293D / SN754410 (SN754410 = L293).
Título: Re: 2 LDR's e arduino
Enviado por: poliveira1978 em 02 de Julho de 2011, 20:27
@Rafael Lopes

Para o post original suponho que pretendes algo deste género:

int esq = 8; // 1º Led
int dir = 9; // 2º Led
int ldr_e = A0; //LDR na porta Analog 1
int ldr_d = A1; //LDR na porta Analog 2

int valor_d=0; //Valor da 1ª LDR
int valor_e=0; //Valor da 2ª LDR

void setup()
{
  pinMode(dir, OUTPUT);
  pinMode(esq, OUTPUT);
  digitalWrite(esq,LOW); // 1º Led começa apagado
  digitalWrite(dir,LOW); // 2º Led começa apagado
}

void loop()
{
  valor_e=analogRead(ldr_e);
  valor_d=analogRead(ldr_d);
  Serial.print("Valor E = ");
  Serial.println(valor_e);
  Serial.print("Valor D = ");
  Serial.println(valor_d);
  Serial.println("");
  if (valor_e>valor_d) {
    digitalWrite(esq,HIGH);
    digitalWrite(dir,LOW);
  }
  if (valor_d>valor_e) {
    digitalWrite(dir,HIGH);
    digitalWrite(esq,LOW);
  }
  if (valor_e==valor_d) {
    digitalWrite(esq,HIGH);
    digitalWrite(dir,HIGH);
  }
  delay(1000);*/
}