LusoRobótica - Robótica em Português
Sistemas específicos => Arduino / AVR => Tópico iniciado por: Rebel em 23 de Abril de 2009, 11:09
-
Tenho estado a testar um código no Arduino para detectar objectos à frente do meu PJBot por IR que me está a dar umas dores de cabeça.
Quando faço analogRead() tenho valores que vão desde perto de 0 ate 1024 e quando leio com digitalRead() só obtenho 0.
Alguém me pode ajudar???
Aqui fica parte do meu código:
#define irSensorPin 5
void setup()
{
pinMode(irSensorPin, INPUT);
}
void loop()
{
Serial.print(digitalRead(irSensorPin));
Serial.print("-");
Serial.println(analogRead(irSensorPin));
delay(50);
}
-
Antes de mais tens que decidir se queres ler valores analógicos (0..1023) ou digitais (0 ou 1) do pino, o que depende do tipo de sensor.
-
O sensor dá um valor digital. O problema é que tentei ler o valor digital e só obtinha 0 e por isso tentei ler o valor analógico e ai ja consegui ler valores entre 0-1024.
-
Se dá um valor digital então é para leituras digitais que tens que olhar. O teu sensor parece não estar a dar sinal (por qualquer motivo, não quero dizer que está avariado). Não precisas de um "pull-up" nesse pino? Tens a datasheet desse sensor? Que diz lá sobre a saída digital do sensor? Tem exemplos sobre como ligar?