LusoRobótica - Robótica em Português

Robótica => Iniciantes => Tópico iniciado por: FarraJ em 13 de Abril de 2011, 00:00

Título: Transistor para motores DC com arduino (ex-LDR sem sucesso)
Enviado por: FarraJ em 13 de Abril de 2011, 00:00
Boas.

Queria testar um LDR, mas nao estou a conseguir obter valores coerentes com o ambiente atraves do Serial Monitor.

Ligação:

pin 5V ligado a resistencia, que liga ao LDR e ao pin.anal 0. ldr ligado ao GND.

LED ligado a resistencia, pin 8 e GND (O LED nao é o problema, mas indica lo mal nao deve fazer)

codigo:

int value = 0;
 
void setup(){

  pinMode(0, INPUT);
  pinMode(8, OUTPUT);
 
  Serial.begin(9600);
}

void loop(){
  value = analogRead(A0);
digitalWrite(8, HIGH);


  Serial.println(value, DEC);

  delay(1000);   }


O que está a falhar?

obrigado
Título: Re: LDR sem sucesso
Enviado por: ruicosta93 em 13 de Abril de 2011, 00:05
Primeiro não precisas de declarar o pino 0 como uma entrada. Até acho que ele assume que é o pino digital 0 e não o analogico.

Depois o que queres fazer ler o ldr e quando tiver acima de uma valor  acender um led?
Título: Re: LDR sem sucesso
Enviado por: xiserre em 13 de Abril de 2011, 00:07
nao tou a perceber a tua montadem
tens tipo isto?
gnd-----resistencia ------- ldr-------5v
                               |
                          pino do arduino
Título: Re: LDR sem sucesso
Enviado por: senso em 13 de Abril de 2011, 00:09
Para começar, que valores recebes?
Podes ter uma resistencia muito grande ou muito pequena..
Título: Re: LDR sem sucesso
Enviado por: ruicosta93 em 13 de Abril de 2011, 00:12
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.ladyada.net%2Fimages%2Fsensors%2Fcdslitetestdiag.gif&hash=01f940dd72ac4dae77682d91749e010b6cb92e05)

Liga de acordo com este esquema. a resistÊncia é de 10k mas tambem da com 1k.
Título: Re: LDR sem sucesso
Enviado por: xiserre em 13 de Abril de 2011, 00:24
nao declares o pin 0 como imput e experimenta outra vez.  se tiveres um multimetro, ve a tensao que tens no divisor de tensao
Título: Re: LDR sem sucesso
Enviado por: FarraJ em 13 de Abril de 2011, 00:32
nao tou a perceber a tua montadem
tens tipo isto?
gnd-----resistencia ------- ldr-------5v
                               |
                          pino do arduino



Resistencia trocada com LDR. li algures que isso iria criar um decrescimo na voltagem e nao um aumento. nao sei porque e que isso acontece, mas pareceu me mais seguro menos que mais :P



@Senso:   neste momento 310 +- 20..


E a meio deste post, faço um mega facepalm: Estava a ligar isto ao Pin 0 DIGITAL EM VEZ DO ANALOGICO!!!!!!!!!!

Espero frequentar este forum mais vezes de forma a aprender mais, e como ja viram, vai por aqui uma azelhice desgraçada....

Enfim, brigado pelas vossas prontas respostas.


Já agora, alguem me explica (ou me indica um site, ou um nome para googlar) a cena da resistencia estar antes ou depois do LDR, e porque e que uma aumenta a tensao, e a outra decresce?


Obrigadissimo
Título: Re: LDR sem sucesso
Enviado por: GnGz em 13 de Abril de 2011, 11:54
Desculpem a minha azelhisse mas para quê a resistencia para o ldr?
Título: Re: LDR sem sucesso
Enviado por: FET_Destroyer em 13 de Abril de 2011, 12:19
Desculpem a minha azelhisse mas para quê a resistencia para o ldr?

Para teres um divisor de tensão, uma resistência fixa e outra variável vai fazer com que a tensão no ponto intermédio varie.
Título: Re: LDR sem sucesso
Enviado por: GnGz em 13 de Abril de 2011, 12:23
Desculpem a minha azelhisse mas para quê a resistencia para o ldr?

Para teres um divisor de tensão, uma resistência fixa e outra variável vai fazer com que a tensão no ponto intermédio varie.

Precisas do divisor para quê?
Título: Re: LDR sem sucesso
Enviado por: FET_Destroyer em 13 de Abril de 2011, 12:56
Desculpem a minha azelhisse mas para quê a resistencia para o ldr?

Para teres um divisor de tensão, uma resistência fixa e outra variável vai fazer com que a tensão no ponto intermédio varie.

Precisas do divisor para quê?

O uC lê tensão, logo tens k por la tensão, n podes ligar o LDR a um pino do ADC, não vai acontecer nada. Por exemplo tens isto

5V-----R---.----LDR------GND
                |
                | adc

Vadc = ( Rldr / (R+Rldr) ) * 5

Agora se fixares a resistência R com um valor teu cunhecido sabes que o LDR varia, logo a tensão no adc vai variar e tu vais ler essa variação.

ou

http://lmgtfy.com/?q=Voltage+divider (http://lmgtfy.com/?q=Voltage+divider)
Título: Re: LDR sem sucesso
Enviado por: GnGz em 13 de Abril de 2011, 13:17
Obrigado

Pensava que bastava isto:

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fandredrobotics.files.wordpress.com%2F2009%2F09%2Fldr_bb.png%3Fw%3D495%26amp%3Bh%3D310&hash=cbde211ca04e66e830840ad47fb2503046209d04)

Título: Re: LDR sem sucesso
Enviado por: FarraJ em 13 de Abril de 2011, 13:20
Voces fazem esses desenhos todos bacanos nalgum software ou assim? :P

No papel fica perceptivel até certo ponto, depois torna se confuso.


obrigado
Título: Re: LDR sem sucesso
Enviado por: GnGz em 13 de Abril de 2011, 13:33
Voces fazem esses desenhos todos bacanos nalgum software ou assim? :P

No papel fica perceptivel até certo ponto, depois torna se confuso.


obrigado

O software é o Fritzing (http://www.fritzing.org)
Título: Re: LDR sem sucesso
Enviado por: FarraJ em 13 de Abril de 2011, 13:47
Fantastico programa, obrigado pela resposta
Título: Re: LDR sem sucesso
Enviado por: Moddjik em 13 de Abril de 2011, 18:27
Obrigado

Pensava que bastava isto:

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fandredrobotics.files.wordpress.com%2F2009%2F09%2Fldr_bb.png%3Fw%3D495%26amp%3Bh%3D310&hash=cbde211ca04e66e830840ad47fb2503046209d04)

Assim o A5 estava sempre ligado ao GND.
Título: Re: LDR sem sucesso
Enviado por: GnGz em 13 de Abril de 2011, 18:41
Não sei , nunca testei , obrigado pela resposta.
Título: Re: LDR sem sucesso
Enviado por: FarraJ em 14 de Abril de 2011, 02:09
Boas.


Tentei montar um segundo LDR, e tambem nao esta a correr como esperado.

esquema é o seguinte (https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fi53.tinypic.com%2Fsep2kk.jpg&hash=4c1a3f0203bd6ae19f22e7bcd637645df6d76edd)


O serial monitor dá me sempre 0 pra este LDR (o ligado ao pin analogco 1). O outro continua na perfeiçao.

Neste tive que usar uma resistencia de 10K em vez de 2K, será isso?


obrigado
Título: Re: LDR sem sucesso
Enviado por: GnGz em 14 de Abril de 2011, 12:06
Mostras o código?
Título: Re: LDR sem sucesso
Enviado por: FarraJ em 14 de Abril de 2011, 12:37
O led tava estragado. troquei os LEDs e já deu. btw, o codigo foi este, quaisquer sugestoes para o melhorar sao agradecidas:
Código: [Seleccione]
int valor = 0;
  int value = 0;
 
void setup(){

  pinMode(0, INPUT);
  pinMode(13, OUTPUT);
   pinMode(1, INPUT);pinMode(12, OUTPUT);
  Serial.begin(9600);
}

void loop(){
  value = analogRead(A0);
  if (value<100)
digitalWrite(13, HIGH); else digitalWrite(13,LOW);
valor = analogRead(A1);
  if (valor<250)
digitalWrite(12, HIGH); else digitalWrite(12,LOW);

  Serial.println(valor, DEC);Serial.println(value, DEC);

  delay(1000);

obrigado
Título: Re: LDR sem sucesso
Enviado por: GnGz em 14 de Abril de 2011, 13:33
Tu estás a declarar os portos digitais 0 e 1  como input e não os analogicos como queres. Nos analogicos nao precisas , porque só funciona como input.

Cumprimentos,
Título: Re: LDR sem sucesso
Enviado por: amando96 em 14 de Abril de 2011, 14:38
Não tens resistência nos LEDs?
Título: Re: LDR sem sucesso
Enviado por: FarraJ em 14 de Abril de 2011, 15:04
confere, obrigado pelo reparo!

@Amando96: Nao, ja li que era suposto usar, mas os que tenho diminuem imenso o brilho, e ate agora nao tive problemas (aquele LED estragado nunca sequer foi ligado a nada ;) )


Já agora, para evitar estar a encher isto de topicos em cada pergunta:

Quero controlar uns motores DC, e portanto vou precisar de 4 transistores para cada motor (ponte H). Já procurei guias na net, mas uns indicam coisas bem mais complicadas qe outros, portanto nao sei qual será  melhor para mim.

Segundo sei, num NPN, quando há corrente na base (sentido base-emissor) passa tambem a haver corrente no sentido Colector Emissor. Como calculo que valor deve ter a corrente da base? Posso controlar isso com um digitalWrite?

Quais sao as principais coisas a ter em atençao?


Obrigado