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

Arduino com Sensores LEGO

Started by Cynary, 04 de August de 2010, 04:58

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Cynary

Antes de me iniciar com o Arduino, tinha um conjunto de robótica LEGO Mindstorms RCX.
Com este, tenho sensores de toque e de luz.
E estou a tentar reaproveitá-los para usar com o arduino.
O sensor de toque é muito simples, já que consiste num simples botão em série com uma resistência de 800 ohm, e por isso basta-me ler o sinal digital para saber quando o primo.
No entanto, o sensor de luz é mais complicado, devido a ter um LED incorporado, e apenas dois fios ...
Estive a pesquisar, e encontrei este site: http://www.barello.net/ARC/projects/LEGO/
Este explica como os sensores funcionam, e como medi-los ...
No entanto, apesar da explicação nesse site, não estou a conseguir medir o valor do sensor de luz, apenas liga o LED :S
Aqui vai o código:
Code (c) Select
#define ALIGHT 0
#define LPIN 12
// ALIGHT - Input analógico da luz; LPIN - terminal positivo

int l,c; // Controlo do tempo, de forma a comunicar com o computador.
int val; // variável que irá conter o valor do sensor de luz

void setup() {
  pinMode(LPIN, OUTPUT);
  Serial.begin(9600);
  l = millis(); }

void loop() {
  digitalWrite(LPIN, LOW);
  val = analogRead(ALIGHT); // Desligar o sensor e medi-lo
  digitalWrite(LPIN, HIGH); // e voltar a ligá-lo
  c = millis();
  if(c-l >= 1000) { // Caso tenha passado um minuto enviar os dados medidos.
    l = millis();
    Serial.println(val); }
  delay(3); }

senso

Provavelmente estás a ligar e desligar muito depressa e ele não tem tempo para se ligar e ler convenientemente o sensor de luz.
Avr fanboy

Sérgio_Sena

Se não tiveres pressa, deixa-o "respirar" depois de ligar.
Assim, ele consegue fazer a aquisição do sinal  em boas condições.
Quaisquer 50ms devem ser suficientes. COntudo, ou procura o datasheet do sensor ou faz experiências.
Cumprimentos,
Sérgio Sena

Electronic Gear for Musicians

Instagram

Cynary

Datasheet, não encontro :/ Deve ser um sensor proprietário da LEGO, por isso não devem ter libertado muitos dados acerca dele. O melhor que consegui encontrar foi o site que coloquei no primeiro post.
Quanto a deixar respirar, e ligar/desligar muito depressa, já experimentei deixá-lo ligado por um segundo, desligar e ler imediatamente o valor, e depois ligar novamente por um segundo, ... e deu-me o mesmo problema :/

Zav

"O Futuro pertencem a aqueles que acreditam na Beleza dos  seus sonhos" Eleanor roosevelt