KY-004

Esta placa está basada en un pequeño interruptor que nos dará su salida por la patilla S

Tendríamos a grandes rasgos una placa que:
- Tiene conectado el pulsador entre la patilla - y la patilla S
- La resistencia R1 de 10KΩ esta conectada entre la patilla - y +

CARACTERISTICAS

Las características principales de esta placa son:
- El pulsador al estar conectado entre la patilla - y la patilla S, cuando no está pulsado, la patilla S está sin conectar a ningún sitio por lo que tendremos una señal aleatoria y sin control. Este punto es importante a la hora de usar esta placa, tendremos que poner una resistencia externa pull-up o pull-down, según nos interese.
- La resistencia R1 de 10KΩ está conectada entre la patilla + y la patilla -. Sinceramente no le encuentro funcionalidad a esta manera de colocar la R1.
- No requiere componentes externos.
- Rango de alimentación no definido, al no tener nada de electrónica en la placa.

PINEADO

El pineado de esta placa es:

1 : Este pin es la salida de la placa. Está conectado al pulsador y, cuando no está pulsado tiene una salida indeterminada o al aire, y cuando está pulsado se une a la patilla 3 o negativa.

2 : Este pin es la entrada positiva que alimenta la placa. Simplemente alimenta la resistencia R1

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















LED's INDICADORES

No tenemos ningún led indicadores en esta placa sensora

PROBEMOS EL SENSOR KY-004

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

NECESITAREMOS

Placa sensora KY-004

Placa protoboard grande

Arduino Mega 2560

Diodo LED rojo de 5mm y una resistencia que calcularemos de 220Ω y 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 es esquema podemos ver:

- La placa Arduino Mega se encarga de alimentar la protoboard
- La placa KY-004 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 salida está conectado al pin 2 del Arduino Mega
- 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 de la placa Arduino Mega

PROGRAMACIÓN

¿Qué vamos a programar?, una lectura continua del pin 2 (donde está conectada la salida de la placa) para elegir la función del led incluido en el Arduino Mega en su salida 13. Si no pulsamos el pulsador, el led estará apagado. Si pulsamos el pulsador, el led del Arduino comenzará a parpadear cada 150ms.
Es importante recordar que la salida de la placa cuando el pulsador no esta pulsado, está al aire o con salida indeterminada. Debemos poner una resistencia pull-up. Tenemos dos opciones, la primera es poner una resistencia física en el montaje entre la salida S y la alimentación de +5V, y la segunda es activar la resistencias internas pull-up del Arduino mediante programación. En esta prueba decidí optar por la segunda opción y activaremos la resistencia interna de la entrada 2 del Arduino Mega.

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 + KY004
 * 
 * Modulo_KY-004.ino
 * 
 * www.fantasystudios.es/arduino
 * 
 * Creado el 18 de Abril de 2020
 * Por Manuel Peláez
 * 
 */

// declaramos las variables con las entradas del sensor
int placa = 2;

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


void setup() {
  // put your setup code here, to run once:
  
  //declaramos un entrada y activamos la resistencia Pullup de la entrada
  //declaramos tambien como salida al led smd de la placa en la salida 13
  pinMode(placa, INPUT);
  digitalWrite(placa, HIGH);
  
  pinMode(LED_BUILTIN, OUTPUT);  
}

void loop() {
  // put your main code here, to run repeatedly:

  //leemos el estado del pulsador
  estado_int = digitalRead(placa);

  //Si el estado es bajo (esta pulsado) encendemos el led de forma intermitente de la placa Mega2560
  if (estado_int == LOW) {
    digitalWrite(LED_BUILTIN, HIGH);
    delay(150);
    digitalWrite(LED_BUILTIN, LOW);
    delay(150);
  }
  //Si el estado es alto (no esta pulsado) apagamos el led de la placa Mega2560
  else {
    digitalWrite(LED_BUILTIN, LOW);
  }

  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.