Arduino - Interruptor de límite

El interruptor de límite se ha utilizado en muchas aplicaciones, como el control de motores y la automatización. En este tutorial, aprenderemos a usar el interruptor de límite con Arduino.

Arduino con final de carrera

Por favor, no se confunda con lo siguiente:

Acerca del interruptor de fin de carrera

Se llama Limit Switch porque su funcionalidad principal se utiliza para detectar cuándo el objeto en movimiento alcanza un límite.

Disposición de pines

Existen varios tipos de finales de carrera disponibles, pero entre los más utilizados se encuentran los KW12-3 y V-156-1C25. Ambos tipos tienen 3 pines:

  • Pin C: es el pin común. Se utiliza en ambos modos: normalmente abierto y normalmente cerrado.
  • Pin NO: es el pin normalmente abierto. Se utiliza en el modo normalmente abierto.
  • Pin NC: es el pin normalmente cerrado. Se utiliza en el modo normalmente cerrado.
Diagrama de pines del interruptor de fin de carrera.
image source: diyables.io

Cómo funciona

Aunque el interruptor de fin de carrera tiene tres pines, una aplicación normal suele usar solo dos pines: el pin C y uno de los dos pines restantes. En consecuencia, hay cuatro formas de usar un interruptor de fin de carrera. A continuación se muestra la tabla de conexiones del interruptor de fin de carrera y el estado de lectura en Arduino en las cuatro formas:

C pin NO pin NC pin Arduino Input Pin's State
1 GND Arduino Input Pin (with pull-up) not connected HIGH when untouched, LOW when touched
2 GND not connected Arduino Input Pin (with pull-up) LOW when untouched, HIGH when touched
3 VCC Arduino Input Pin (with pull-down) not connected LOW when untouched, HIGH when touched
4 VCC not connected Arduino Input Pin (with pull-down) HIGH when untouched, LOW when touched

Para cada configuración, podemos intercambiar el pin GND y el pin de entrada de Arduino. Por lo tanto, tenemos 8 formas de conectar Arduino a un interruptor de límite.

Solo necesitamos elegir una de las cuatro formas anteriores. El resto del tutorial utilizará la primera forma.

Diagrama de Cableado

Diagrama de cableado del interruptor de fin de carrera de Arduino

This image is created using Fritzing. Click to enlarge image

Para que la conexión de cableado sea estable y firme, recomendamos usar Soldering Iron para soldar los cables y el pin del interruptor de límite juntos, y luego usar Heat Shrink Tube para que quede segura.

Código de Arduino - Interruptor de Límite

Al igual que un botón, un interruptor de límite también necesita antirrebote. Ver más en Por qué se necesita antirrebote para el botón/interruptor de límite?. El antirrebote hace que el código sea más complejo. Afortunadamente, la biblioteca ezButton admite la función de antirrebote. La biblioteca también utiliza una resistencia pull-up interna. Esto facilita programarlo.

※ Nota:

Hay dos casos de uso ampliamente utilizados:

  • El primero: Si el estado del interruptor está TOCADO, haz algo. Si el estado de entrada está NO TOCADO, haz otra cosa al revés.
  • El segundo: Si el estado del interruptor cambia de NO TOCADO a TOCADO (o de TOCADO a NO TOCADO), haz algo.
/* * Este código de Arduino fue desarrollado por es.newbiely.com * Este código de Arduino se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino/arduino-limit-switch */ #include <ezButton.h> ezButton limitSwitch(7); // create ezButton object that attach to pin 7; void setup() { Serial.begin(9600); limitSwitch.setDebounceTime(50); // set debounce time to 50 milliseconds } void loop() { limitSwitch.loop(); // MUST call the loop() function first if(limitSwitch.isPressed()) Serial.println("The limit switch: UNTOUCHED -> TOUCHED"); if(limitSwitch.isReleased()) Serial.println("The limit switch: TOUCHED -> UNTOUCHED"); int state = limitSwitch.getState(); if(state == HIGH) Serial.println("The limit switch: UNTOUCHED"); else Serial.println("The limit switch: TOUCHED"); }

Pasos R\u00e1pidos

  • Realice el cableado tal como en el diagrama de cableado anterior
  • Conecte el Arduino al PC mediante un cable USB
  • Abra el Arduino IDE
  • Instale la biblioteca ezButton. Vea Cómo
  • Seleccione la placa y el puerto correctos
  • Haga clic en el botón Subir en el IDE de Arduino para subir el código al Arduino
  • Toque el interruptor de límite y suéltelo.
  • Vea el resultado en el monitor serie.
COM6
Send
The limit switch: UNTOUCHED The limit switch: UNTOUCHED The limit switch: UNTOUCHED The limit switch: UNTOUCHED -> TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED -> UNTOUCHED The limit switch: UNTOUCHED The limit switch: UNTOUCHED The limit switch: UNTOUCHED The limit switch: UNTOUCHED
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!