Foro de elhacker.net

Informática => Electrónica => Mensaje iniciado por: @synthesize en 23 Mayo 2010, 00:39 am



Título: Arduino y sensor
Publicado por: @synthesize en 23 Mayo 2010, 00:39 am
Me explico: Estoy aprendiendo a programar un Arduino:http://www.arduino.cc/es/  (http://www.arduino.cc/es/) Y mi problema es el siguiente:

Intento hacer un sensor de movimiento, reciclado, con esto: http://www.gutefrage.net/media/fragen/bilder/brise-sense-and-spray/0_big.jpg
 (http://www.gutefrage.net/media/fragen/bilder/brise-sense-and-spray/0_big.jpg) (Un Brise Sensor)

El circuito del sensor envía una señal a un motor, el cual se mueve (Activando así el Brise).

Lo que intento hacer es conectar los cables del sensor al arduino, y si este detecta movimiento, que haga sonar un speaker como alarma (Eso ya lo tengo programado)

He probado con interrupciones, y me han dicho de probar con digitalRead()

¿Alguna idea?


Título: Re: Arduino y sensor
Publicado por: SOMBRIO en 23 Mayo 2010, 04:55 am
Ese sensor es de casa no? jaja mas economico o por que decidiste usar ese sensor y no un sensor convencional ¿?

primero a que voltaje trabaja

segundo en si cual es el problema digitalread lee cualquier variacion y la toma como un valor de 5v

int pinentrada=pindelsensor;

void setup() {
  pinMode(pinentrada, INPUT);      
}
void loop() {
  movimiento = digitalRead(pinentrada);  

 if movimiento==HIGH {      
      digitalWrite(speakerOut, HIGH);
      delay(200);
      digitalWrite(speakerOut, LOW);
  
    }
}

recuerda que siempre es conveniente meter alguna resistencia a tierra si piensas leer valores positivos pues cualquier variacion del rose de una mosca puede ser leida como positiva

el arduino ya lleva una serie de resistencias pero si despues piensas desmontar el pic es mejor tener eso en cuenta  

si el sensor trabaja a mas de 5v necesitas meter un regulador para estabilizarlo a 5 y en caso de pequeños sobrepasos de voltaje un simple diodo puede hacer una reduccion de alrededor de .6v o tambien un zener podria ayudar

si el sensor envia variaiones de voltaje por el aire por las mosacas etc..

analogread >=255  asi eliminaras variaciones de 1,2,3,4 v solamente se activara al llegar a los 5v

Suerte Saludos


Título: Re: Arduino y sensor
Publicado por: @synthesize en 27 Mayo 2010, 00:33 am
Al final he conseguido hacerlo con analógico, este es el code;

Código
  1. int pinentrada =1;
  2. int ledPin =13;
  3.  
  4. /* Sensor: Brise
  5.  * V = 3V
  6. */
  7.  
  8. void setup()
  9. {
  10.  
  11.  Serial.begin(9600);
  12.  
  13.  pinMode(pinentrada, INPUT);
  14.  pinMode(ledPin, OUTPUT);  
  15. }
  16.  
  17. void loop()
  18. {
  19.  int movimiento = analogRead(pinentrada);  
  20.  
  21.  if (movimiento>400)
  22.  {      
  23.    Serial.println(movimiento);
  24.    digitalWrite(ledPin, HIGH);
  25.    delay(2000);
  26.    digitalWrite(ledPin, LOW);
  27.    delay(200);
  28.  }
  29. }

No me salía en Digital por el voltaje, creo... ^^


Título: Re: Arduino y sensor
Publicado por: @synthesize en 27 Mayo 2010, 23:55 pm
Estoy intentando mejorar un poco...

Código
  1. int pin =1;
  2. int ledPin =13;
  3. int spPin =3;
  4.  
  5. void setup()
  6. {
  7.  Serial.begin(300);
  8.  pinMode(pin, INPUT);
  9.  pinMode(ledPin, OUTPUT);
  10.  pinMode(spPin, OUTPUT);
  11. }
  12.  
  13. void loop()
  14. {
  15.  int vol =analogRead(pin);
  16.  
  17.  Serial.println(vol);
  18.  
  19.  if (vol>=400)
  20.  {
  21.      digitalWrite(ledPin, HIGH);
  22.  }
  23.  
  24.  else
  25.  {
  26.    digitalWrite(ledPin, LOW);
  27.  }
  28.  
  29.  if (vol>1022)
  30.  {
  31.    tone(spPin, 200, 10);
  32.  }
  33.  
  34. }
  35.  


Título: Re: Arduino y sensor
Publicado por: SOMBRIO en 30 Mayo 2010, 06:28 am
Suerte con tu proyecto amigo cada mejora lo va a hacer mas llamativo

Se me ocurre que en vez de el led encienda y apague por ligeros movimientos y el beep cuando pasa alguien.. por que no mejor pones diferentes melodias estaba trabajando en un codigo para pasar cualquier melodia rttl a lenguaje arduino por sus coincidencias do -re -mi -fa -sol pero tiene fallos .......

Código:
tipo melodia rttl
Halloween:d=4,o=5,b=180:8d6,8g,8g,8d6,8g,8g,8d6,8g,8d#6,8g,8d6,8g,8g,8d6,8g,8g,8d6,8g,8d#6,8g,8c#6,8f#,8f#,8c#6,8f#,8f#,8c#6,8f#,8d6,8f#,8c#6,8f#,8f#,8c#6,8f#,8f#,8c#6,8f#,8d6,8f#

en melodias con tonos bajos y altos se vuelve un codigo grandisimo y no se por que la melodia no sale tan bien que digamos

Despues pongo el codigo a la mejor tu que programas mas a menudo encuentres la falla que en su tiempo yo no pude

Saludos




Título: Re: Arduino y sensor
Publicado por: Debci en 30 Mayo 2010, 16:48 pm
Y que valores devuelve la lectura analogica? porque 400? no era 255?
Lo digo por esto:
Código
  1. int movimiento = analogRead(pinentrada);  
  2.  
  3.  if (movimiento>400)

Saludos



Título: Re: Arduino y sensor
Publicado por: SOMBRIO en 30 Mayo 2010, 17:30 pm
Y que valores devuelve la lectura analogica? porque 400? no era 255?
Lo digo por esto:
Código
  1. int movimiento = analogRead(pinentrada);  
  2.  
  3.  if (movimiento>400)

Saludos



arduino lee valores de 0 a 1024      --------0 a 5v

y escribe valores o a 255  -----------0 a 5v


Título: Re: Arduino y sensor
Publicado por: @synthesize en 30 Mayo 2010, 18:24 pm
Y que valores devuelve la lectura analogica? porque 400? no era 255?
Lo digo por esto:
Código
  1. int movimiento = analogRead(pinentrada);  
  2.  
  3.  if (movimiento>400)

Saludos



arduino lee valores de 0 a 1024      --------0 a 5v

y escribe valores o a 255  -----------0 a 5v

Y a mi el sensor me devuelve, si detecta algo, varios pulsos de mas de 400... Por eso lo puse XD


Título: Re: Arduino y sensor
Publicado por: @synthesize en 30 Mayo 2010, 18:28 pm
Suerte con tu proyecto amigo cada mejora lo va a hacer mas llamativo

Se me ocurre que en vez de el led encienda y apague por ligeros movimientos y el beep cuando pasa alguien.. por que no mejor pones diferentes melodias estaba trabajando en un codigo para pasar cualquier melodia rttl a lenguaje arduino por sus coincidencias do -re -mi -fa -sol pero tiene fallos .......

Código:
tipo melodia rttl
Halloween:d=4,o=5,b=180:8d6,8g,8g,8d6,8g,8g,8d6,8g,8d#6,8g,8d6,8g,8g,8d6,8g,8g,8d6,8g,8d#6,8g,8c#6,8f#,8f#,8c#6,8f#,8f#,8c#6,8f#,8d6,8f#,8c#6,8f#,8f#,8c#6,8f#,8f#,8c#6,8f#,8d6,8f#

en melodias con tonos bajos y altos se vuelve un codigo grandisimo y no se por que la melodia no sale tan bien que digamos

Despues pongo el codigo a la mejor tu que programas mas a menudo encuentres la falla que en su tiempo yo no pude

Saludos


Para escribir canciones simples yo uso procedimientos...

por ejemplo

Código
  1. void do (int duracion, int silencio)
  2. {
  3.    tone (pin, frecuencia, duracion);
  4.    delay(silencio);
  5. }

No lo hago exactamente así, pero es un buen ejemplo XD