KY-002

Esta placa sensora está basada en un pequeño cilindro con un muelle dentro, colocado de manera que no toque sus paredes.

Tendríamos a grandes rasgos una placa que:
- Sensible a los movimientos y vibraciones
- Alimentación a discrección, ya que no lleva nada de electrónica. Recomendamos entre 3V a 12V

CARACTERISTICAS

Las características principales de esta placa son:
- Cilindro sensor calibrado de fábrica
- El pin de salida estará a nivel bajo hasta que toque el muelle la pared del cilindro, pasando la salida a nivel alto
- No requiere componentes externos
- Rango de alimentación entre 3,0V y 12V

PINEADO

El pineado de esta placa es:

1 : Este pin es la salida del sensor. Está conectado a masa mediante una resistencia de 10KΩ incluida en la placa sensora que dará un nivel de salida bajo mientras no haya vibraciones ni movimiento en el sensor. Cuando tengamos el suficiente nivel de vibración este pin pasará a nivel alto. Este nivel alto será el mismo al que está alimentada la placa sensora por el pin 2.

2 : Este pin es la entrada positiva que alimenta la placa. Tiene que estar entre +3,0V y +12V. Recordar que el nivel de salida alto del pin 1 es igual al la tensión de alimentación que apliquemos a este pin. Por norma se alimentará a la misma tensión que el nivel alto que necesitemos. +5V en caso del Arduino Mega2560.

3 : Este pin es la entrada negativa que alimenta la placa.















LED's INDICADORES

No tenemos ningún led indicador en esta placa sensora

PROBEMOS EL SENSOR KY-002

Vamos a montar en una placa protoboard el sensor KY-002 y conectarlo a un Arduino Mega.

NECESITAREMOS

Placa sensora KY-002

Placa protoboard grande

Arduino Mega 2560

Diodo LED rojo de 5mm, una resistencia que calcularemos de 220Ω y 1/4W y otra de 2K7 y también de 1/4W

Cableado macho-macho o hilo rígido que entre en la protoboard

Soporte AFTP para Arduino Mega y protoboard grande

Cable USB corto de USB tipo A a USB tipo B

ESQUEMA

En el esquema podemos ver:

- La placa Arduino Mega se encarga de alimentar la protoboard
- La placa sensora KY-002 está conectada en la protoboard y conectada a la alimentación de +5V
- El led D1 y la resistencia R1 están conectados a la alimentación de +5V para indicarnos cuando tiene alimentación la protoboard
- El pin de la placa sensora de salida está conectado al pin 10 del Arduino Mega
- El pulsador tiene una resistencia R2 de 2K7 (valdría entre 1KΩ y 10KΩ) pull-down. Este pulsador esta conectado al pin 2 del Arduino
- La alimentación de todo el sistema se realiza a través del puerto USB

Para calcular la resistencia R1 del LED solo tenemos que ver el voltaje que va a caer en la resistencia y dividirlo entre la intensidad que queremos que pase por el LED.
La tensión que tiene la resistencia sería el voltaje total menos el voltaje que se queda el LED rojo (aprox. 1,5V). Esto nos deja 5V-1,5V = 3,5V caen en la resistencia.
Vamos a fijar una intensidad por el LED de 15mA (suficientes para que se encienda a buen brillo un LED rojo). Tendriamos entonces una resistencia de 3,5V/0,015A = 233,33Ω
El valor mas cercano al calculado es de 220Ω (Rojo-Rojo-Marrón). Las resistencias comunes de 1/4W deberían servir, ya que la potencia disipada por nuestra resistencia será de 3,5Vx0,015A = 0,05W, valor muy por debajo de los 0,25W máximos que es capaz la resistencia de disipar.


Vamos a ver algunas imágenes mas de cerca del montaje

Detalle de la conexión de la placa sensora

Detalle de la conexión de la placa sensora

Detalle de la conexión del LED y la resistencia R1

Detalle de la conexión del pulsador y de la resistencia R2 pull-down

Detalle de la conexión de la placa Arduino Mega

PROGRAMACIÓN

¿Qué vamos a programar?, una lectura continua del pin 10 (donde está conectada la salida de la placa sensora) para poder contar el número de veces que tenemos un nivel alto (la placa sensora nos indica vibración). El pulsador lo usaremos para resetear el contador.
Como es un programa de prueba vamos a mandar datos de control al puerto serie para visualizarlos y ver las lecturas en bruto desde la placa y como el programa va gestionando los datos.

A continuación tenemos el código fuente del Sketch terminado para consultarlo. Se puede escribir copiándolo o descargarlo desde aquí

CÓDIGO ARDUINO
/*
 * AFPT - Arduino Fácil Para Todos
 * 
 * Prueba Arduino Mega + KY002
 * 
 * Modulo_KY-002.ino
 * 
 * www.fantasystudios.es/arduino
 * 
 * Creado el 15 de Abril de 2020
 * Por Manuel Peláez
 * 
 */

// declaramos las variables con las entradas del sensor y del pulsador de rearmado
int pulsador = 2;
int sensor = 10;

//declaramos las variables que usaremos para la lectura de las entradas
int estado_pulsador=0;
int estado_sensor=0;

//declaramos las variables de control
unsigned long golpes = 0;   //variable capaz de almacenar en 4 bytes 2^32 -1: (4.294.967.295)



// the setup routine runs once when you press reset:
void setup() {
  // inicializamos el puerto serie a 9600baudios
  Serial.begin(9600);
  
  // declaramos las dos entradas y la salida al led smd de la placa en la salida 13
  pinMode(pulsador, INPUT);
  pinMode(sensor, INPUT);
  pinMode(LED_BUILTIN, OUTPUT);  
}

// the loop routine runs over and over again forever:
void loop() {

  //leemos el estado del pulsador y del sensor
  estado_sensor = digitalRead(sensor);
  estado_pulsador = digitalRead(pulsador);

  //Si el estado del sensor esta alto, mandamos el mensaje al puerto serie,sumamos 1 a la variable golpes y
  //encendemos el led de la placa Mega2560
  if (estado_sensor == HIGH) {
    Serial.print("1 - ");
    Serial.println(golpes);
    digitalWrite(LED_BUILTIN, HIGH);
    golpes++;
  }
  //Si el estado del sensor esta bajo, mandamos el mensaje al puerto serie y apagamos el led de la placa Mega2560
  else {
    Serial.print("0 - ");
    Serial.println(golpes);
    digitalWrite(LED_BUILTIN, LOW);
  }

  //si pulsamos el pulsador reseteamos el contador de golpes
  if (estado_pulsador) {
    golpes = 0;
  }
    
  delay(1);        // con esto ganamos estabilidad en la ejecución del programa
}

CÓDIGO ARDUINO

A continuación tenemos un video con todo el proceso completo.