elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Informática
| |-+  Electrónica
| | |-+  Arduino y sensor
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Arduino y sensor  (Leído 11,102 veces)
@synthesize
Wiki

Desconectado Desconectado

Mensajes: 639


Another Brick in the Wall


Ver Perfil WWW
Arduino y sensor
« en: 23 Mayo 2010, 00:39 »

Me explico: Estoy aprendiendo a programar un Arduino: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
(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?


« Última modificación: 23 Mayo 2010, 00:40 por GNU López » En línea

SOMBRIO

Desconectado Desconectado

Mensajes: 133



Ver Perfil
Re: Arduino y sensor
« Respuesta #1 en: 23 Mayo 2010, 04:55 »

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


« Última modificación: 25 Mayo 2010, 16:35 por SOMBRIO » En línea

IRQL less or equal
@synthesize
Wiki

Desconectado Desconectado

Mensajes: 639


Another Brick in the Wall


Ver Perfil WWW
Re: Arduino y sensor
« Respuesta #2 en: 27 Mayo 2010, 00:33 »

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... ^^
En línea

@synthesize
Wiki

Desconectado Desconectado

Mensajes: 639


Another Brick in the Wall


Ver Perfil WWW
Re: Arduino y sensor
« Respuesta #3 en: 27 Mayo 2010, 23:55 »

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.  
En línea

SOMBRIO

Desconectado Desconectado

Mensajes: 133



Ver Perfil
Re: Arduino y sensor
« Respuesta #4 en: 30 Mayo 2010, 06:28 »

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


En línea

IRQL less or equal
Debci
Wiki

Desconectado Desconectado

Mensajes: 2.021


Actualizate o muere!


Ver Perfil WWW
Re: Arduino y sensor
« Respuesta #5 en: 30 Mayo 2010, 16:48 »

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

En línea

SOMBRIO

Desconectado Desconectado

Mensajes: 133



Ver Perfil
Re: Arduino y sensor
« Respuesta #6 en: 30 Mayo 2010, 17:30 »

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
En línea

IRQL less or equal
@synthesize
Wiki

Desconectado Desconectado

Mensajes: 639


Another Brick in the Wall


Ver Perfil WWW
Re: Arduino y sensor
« Respuesta #7 en: 30 Mayo 2010, 18:24 »

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
En línea

@synthesize
Wiki

Desconectado Desconectado

Mensajes: 639


Another Brick in the Wall


Ver Perfil WWW
Re: Arduino y sensor
« Respuesta #8 en: 30 Mayo 2010, 18:28 »

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
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines