Tutorial – Usar el Sensor KY-002 y Arduino + Programación

Tutorial – Usar el Sensor KY-002 y Arduino + Programación

Un Sensor KY-002 y Arduino son una de las mejores combinaciones a la hora de querer elaborar un proyecto el cual tenga por objetivo la medición de las vibraciones que puedan existir en un entorno.

A primera vista medir vibraciones se cree que es únicamente para la detección o prevención de sismos que puedan afectar a un lugar determinado, sin embargo este no es el único uso que se le pueda dar, por ejemplo algunos tanques destinados para retener fluidos cuentas con sensores sensibles a las vibraciones, un tema de Tesis podria ser como prevenir o cual es el porcentaje de error que estos tanques tienen debido al nivel del incidencias causadas por el peso de maquinarias pesadas.

Otro uso que podría darse le seria la adquisición de las vibraciones que se tiene en cierto sistema antes de que este falle por completo, ya que como sabemos la vibración es el peor enemigo para sistemas electromecánicos que no cuentan con un amortiguamiento optimo.

La imaginación en el limite.

Programación para usar el Sensor KY-031 y Arduino

int shockPin = 10; // Use Pin 10 as our Input
int shockVal = HIGH; // This is where we record our shock measurement
boolean bAlarm = false;

unsigned long beginShockTime; // Record the time that we measured a shock
unsigned long endShockTime, shockDuration;
int shockAlarmTime = 500; // Number of milli seconds to keep the shock alarm high
int beginS, endS, durationS;


void setup ()
{
 Serial.begin(9600); 
 pinMode (shockPin, INPUT) ; // input from the KY-002
}
void loop ()
{
 shockVal = digitalRead (shockPin) ; // read the value from our sensor
 
 if (shockVal == LOW) // If we're in an alarm state
 {
 beginShockTime = millis(); // record the time of the shock
 // The following is so you don't scroll on the output screen
 if (!bAlarm){
 Serial.print("Shock detected after: ");
 beginS = beginShockTime/1000;
 Serial.print(beginS);
 Serial.println(" seconds the program started");
 bAlarm = true;
 }
 }
 else
 {
 if( (millis()-beginShockTime) > shockAlarmTime && bAlarm){
 //if complete time - time when shock was detected is bigger than
 //500 mille seconds (shockAlarmtime) AND bAlarm = True
 
 Serial.print(" Shock stopped after ");
 endShockTime = millis();
 endS = endShockTime/1000;
 Serial.print(endS);
 Serial.println(" seconds");

 
 durationS = endS - beginS;
 Serial.print(" The shock duration was "); 
 Serial.print(durationS);
 Serial.println(" seconds\n");
 
 bAlarm = false;
 }
 }
}

Acabas de añadir este producto a su carrito: