LusoRobótica - Robótica em Português
Sistemas específicos => Arduino / AVR => Tópico iniciado por: Riccarvalhinho em 18 de Março de 2011, 20:19
-
Estou a ter problemas a programar e ligar um receptor e um emissor IV, de modo a que quando o "feixe" for interrompido, este altere um valor (uma espécie de contagem)...
Penso que o problema está da maneira como eu estou a ligar tudo, especialmente o receptor. Se alguém me puder dar uma dica, agradecia imenso.
(estou a ligar o A4 ao positivo do receptor, e a resistência ao negativo, que por sua vez está ligada ao GND... acho que tenho de fornecer 5v, mas nao sei como)
Programa:
int emi = 12;
int rec = A4;
int IV = 0;
int nr = 15;
void setup() {
pinMode(12, OUTPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(emi, HIGH);
IV = analogRead(rec);
if (IV < 110)
{
nr = nr - 1;
delay (2000);
}
Serial.print("O valor do IV e igual a:");
Serial.println(IV);
Serial.print("Nr de lugares vagos:");
Serial.println(nr);
delay(500);
}
-
nunca vi os pinos analógicos declarados assim, mas não toco nisto há muito tempo...
Podes postar um esquema de como ligaste tudo?
-
Se estás a usar um TSOP, um pino é massa, que é para ligar bem á massa, outro é o positivo, que ligas ao positivo/5v, e outro pino é a saida de sinal.
Os TSOP's não gostam de estar sempre a receber sinal porque saturam, precisam de funcionar com sinais pulsados e mesmo assim precisam de uns mili-segundos entre cada sinal.
-
O meu receptor so tem dois pinos... :-[
(parece-se com um led normal)
-
entao tens um fotodiodo. Ou seja, o teu diodo conduz consoante a intensidade de luz emitida. Ou seja, quanto mais luz receber, mais corrente "gera". Assim, mete uma resistência em série com o receptor IV e medes a tensão na resistência (em relação à massa).. Sabendo a tensão e o valor da R, sabes a corrente. Depois fazes medições e sabes entre que valores o sensor detecta ou não o que tu queres
-
int rec = 4;
-
entao tens um fotodiodo. Ou seja, o teu diodo conduz consoante a intensidade de luz emitida. Ou seja, quanto mais luz receber, mais corrente "gera". Assim, mete uma resistência em série com o receptor IV e medes a tensão na resistência (em relação à massa).. Sabendo a tensão e o valor da R, sabes a corrente. Depois fazes medições e sabes entre que valores o sensor detecta ou não o que tu queres
Eu fiz isso, e consigo ver os valores, mas eles parecem variar mais com a luminosidade do que com a interrupção do feixe de IV em si (Nem sempre varia com a interrupção do feixe, e quando varia é muito pouco, o que se torna dificil para definir um valor para o efeito. Já com a luminosidade variam um pouco mais significativamente, o que não é suposto, visto nao se tratar de um LDR :-\)
-
int rec = 4;
Mas o receptor não tem de ser ligado como sensor analógico?
-
tem, por isso utiliza-se
analogRead()
http://www.arduino.cc/en/Reference/AnalogRead (http://www.arduino.cc/en/Reference/AnalogRead)
-
Então tenho de por "int rec = 4;" em vez de "int rec = A4;" se não não funciona certo?
E quanto às ligações? 5v no positivo e A4 e GND no negativo, depois da resistência?
-
A4 quer dizer que é o analógico 4, é assim no novo IDE do Arduino...
-
eu também tenho a dúvida do colega. Tenho um par de til 32 e til 78 e preciso desenvolver um sensor que verifique a presença de uma peça, no entanto, não tenho ideia de como eu ligo os mesmos e nem como seria o código para receber o sinal.
Esse sinal será analógico ou digital?
Eu posso deixar o led IR ligado constantemente ou o mesmo deve ficar pulsando?
Como seria o código para isso?
Como eu ligo tudo isso no Arduino Duemilanove?
Desde já, um abraço e muito obrigado!