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

[Duvida] LDR a controlar LED's

Started by Riccarvalhinho, 13 de January de 2011, 18:17

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Riccarvalhinho

Ola.
Eu sou novo à programação e no meu projecto de Área de projecto pretendo utilizar um LDR para accionar os LED's  de um parque de estacionamento (maqueta claro), assim que este detecte um determinado valor de luminosidade ou um valor abaixo do mesmo (Como aconteceria ao anoitecer).
Alguém me pode ajudar? =)

amando96

Só precisas de ler o valor do pino analógico onde está o LDR, e com um if acender o LED.

Riccarvalhinho

Lembra-te: sou novo nisto  :P
O comando if eu domino, mas não sei como leio o valor analógico do LDR   :-\

senso

Arduino certo?
http://lusorobotica.com/index.php?topic=22.0
Vê esses links da primeira página.

E nos exemplos do IDE tem lá como usar o analogRead()
Avr fanboy

ricardo-reis

analogRead(ldrPin);

convém que o ldr tenha uma perna no vcc e outra no ldrPin.. a perna que vai a ldrPin deve ter uma resistência para ground..

Riccarvalhinho

Ja tenho a resistencia e tudo ligado, so não sei o que é o vcc.
para já tenho:

int analogPin = 3; (nao percebo para que seve estes 2 antes do setup...  :o)
int val = 0;

void setup() {
  pinMode (13, OUTPUT);
  Serial.begin(9600); (...nem para que serve este  :P)
}
void loop() {
  val = analogRead(analogPin);

  if analogPin > ?? (não sei que valor definir aqui)
  {
    digitalWrite(13, HIGH);
  }
  else if analogPin <= ??
  {
  digitalWrite(13, LOW);
  }
}

A minha duvida é que eu não sei quais os valores limite das mediçoes do LDR. Isto pode não estar correcto, por favor avisem se detectarem algum erro (É bem provável  :P)

senso

Avr fanboy

ricardo-reis

n sabes pra que é o Serial.begin(9600);  ? simples.. isso diz ao arduino qual a velocidade de comunicação por Serial.. com essa linha e mais uma no loop, consegues ler o valor do ldr e assim definir os limites que queres para acender/apagar o teu led.. a linha que deve aparecer no loop é o Serial.println(analogRead(ldrPin));

posto isto, fazes o upload do código pró arduino, e abres a consola (ultimo botão do painel de instrumentos do arduino ide) e vais passar a ver valores concretos do ldr.. (aconselho um delay(500); entre leituras..)

Riccarvalhinho

Ah ok, entao assim depois ja é mais facil definir o valor que acciona os LED's! Obrigado  ;D
Qual é a diferença entre Serial.print e Serial.println?

senso

O println muda de linha ao fim do texto e o outro não.
Avr fanboy

Riccarvalhinho

É so para dizer que já consegui!  ;D
Obrigado a todos pelas ajudas  ;)