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.