SENSOR DE INCLINACION

El proyecto constaria de que en un vehiculo (Moto) al inclinarse , lo que hace el arduino es parar el motor por unos segundos para que despues vuelva a andar, por lo que investigue en relacion a sensores es esto...

con este sensor Sensor De Inclinacion Sw-520d Tilt Arduino, que mas o menos llegue a los 40-50 grados y ahi se pare, Es posible determinar esos grados con ese sensor ? como?

Gracias por ahora

Hi,
Adjunto foto para que veas como trabaja. Solo es para indicar que estas inclinado. Creo que te puede indicar 45 grados. Creo el que te pude servir es el Arduino and MPU6050 Gyro . Haz un google encontraras varios site explicando como usarlo con arduino.

Creo que no va a servir, ya que con un salto/vibracion se va a activar verdad? que podria utilizar para que no se active con una vibracion, pero si con una inclinacion?

Hi,
Trata el MPU6050 Gyro . Haz un google encontraras varios site que explican como usarlo con arduino. Otro que puedes usar es el ADXL 345 . Tambien hay sites que explican como usarlo. Mira este link para youtube creo que es lo que buscas.Inclinometer demo - YouTube

ta bien, Gracias! voy a probar con ese

Buenas! Yo he empleado un MPU6050 en varias ocasiones y para evitar un poco el ruido de las vibraciones lo que hago es hacer 50 lecturas (o mas) y tomar la media como el valor "real" del inclinometro, así evitas que te salgan cosas raras de vez en cuando.

Te posteo un trozo de codigo para que puedas verlo mejor :slight_smile:

float  posicionreal() {


  //Lectura modulo MCU6050

  G1MED = 0.0;
  
  for (int n = 1; n <= 50; n++) {

    Wire.beginTransmission(MPU);
    Wire.write(0x3B);
    Wire.endTransmission(false);
    Wire.requestFrom(MPU, 6, true);
    AcX = Wire.read() << 8 | Wire.read(); // 0x3B (ACCEL_XOUT_H) & 0x3C (ACCEL_XOUT_L)
    AcY = Wire.read() << 8 | Wire.read(); // 0x3D (ACCEL_YOUT_H) & 0x3E (ACCEL_YOUT_L)
    AcZ = Wire.read() << 8 | Wire.read(); // 0x3F (ACCEL_ZOUT_H) & 0x40 (ACCEL_ZOUT_L)

    float gax = AcX;
    float gay = AcY;
    float gaz = AcZ;

  
    G1GRA = 180.0 / 3.1416 * atan(gax / sqrt(gay * gay + gaz * gaz));

    G1MED = G1GRA + G1MED;
  
    delay(10);
  }

  G1MED = G1MED / 50.0;
  return G1MED;

}