Sensor de velocidad

Buenas a todos, hasta ahora sé que para hacer un sensor de velocidad se necesita un sensor magnetico y un iman que va en una rueda, ya que al pasar el iman cerca del sensor se marca una diferencia en el campo magnetico

void loop () {
SENSOR = analogRead (A0) ;
if (SENSOR < 450 || SENSOR > 600) {
Serial.print ("campo detectado:  ") ;
}

Pero este codigo solamente marca cuando se acercan lo suficiente los campos magneticos, como se pueden contabilizar en un cierto tiempo estas marcas hablando de programacion?

Primero debes leer las reglas del foro. Por favor edita tu mensaje y mete el código entre las etiquetas code asi:

void loop () {
   SENSOR = analogRead (A0) ;
   if (SENSOR < 450 || SENSOR > 600) {
      Serial.print ("campo detectado:  ");
   } //Ojo te falto esta llave
}

Luego cuentas que tipo de sensor estas usando. Por ejemplo se trata de un reed switch, ese contacto en un tubito de vidrio que se cierra al acercar un iman ?

Ahí lo edité, quiero usar el sensor ky-035, pero el interruptor activado por magnetismo como usted dice tambien me podría servir para el sensor de velocidad

Buenas,
Como novato que soy, lo primero que me viene es usar la función millis() con dos variables que se actualicen cada vez que se detecta presencia del imán. Algo así:

  • Variable millisAnterior (el nombre que eleijas para esa variable). La declaras al principio y la inicializas en el void Setup con el valor dado por millis() cuando se inicie el programa.
  • Variable millisNuevo. Le das el valor captado por millis() cuando se detecte presencia del sensor.
  • Con la diferencia entre millisNuevo y millisAnterior (junto con el diámetro de la rueda) puedes calcular la velocidad y almacenarla en otra variable para hacer lo que quieras con ella.
  • Después de usarla, le pasas el valor de millisNuevo a millisAnterior para el siguiente paso del imán.

(en el primer paso del imán, el cálculo de velocidad será incorrecto puesto que el valor de millisAnterior no correspondería con un paso del imán sino con la inicialización).

A partir de eso, prueba de hacer tu mismo el código...

Para ese proposito es mejor utilizar uno digital,si detecta campo magnetico la salida es de 5v y si no 0v.Se conecta a una interrupcion que detecte cambio de LOW a HIGH y listo.