Arduino - Chave de Fim de Curso

A chave de fim de curso é usada em muitas aplicações, como controle de motores e automação. Neste tutorial, vamos aprender a usar a chave de fim de curso com o Arduino.

Arduino com chave de fim de curso

Não confunda com os seguintes componentes:

Sobre a Chave de Fim de Curso

Ela é chamada de Chave de Fim de Curso porque sua principal função é detectar quando um objeto em movimento chega a um limite.

Pinagem

Existem vários tipos de chaves de fim de curso, mas entre os mais usados estão a KW12-3 e a V-156-1C25. Esses dois tipos têm 3 pinos:

  • Pino C: é o pino comum. Ele é usado tanto no modo normalmente aberto quanto no modo normalmente fechado
  • Pino NO: é o pino normalmente aberto. Ele é usado no modo normalmente aberto
  • Pino NC: é o pino normalmente fechado. Ele é usado no modo normalmente fechado
Pinagem da chave de fim de curso
image source: diyables.io

Como Funciona

Embora a chave de fim de curso tenha 3 pinos, uma aplicação normal geralmente usa apenas dois: o pino C e um dos outros dois pinos. Assim, há quatro formas de usar a chave de fim de curso. Abaixo está a tabela de ligação da chave de fim de curso e o estado lido no Arduino nas quatro formas:

Pino C Pino NO Pino NC Estado do Pino de Entrada do Arduino
1 GND Pino de entrada do Arduino (com pull-up) não conectado HIGH quando não tocada, LOW quando tocada
2 GND não conectado Pino de entrada do Arduino (com pull-up) LOW quando não tocada, HIGH quando tocada
3 VCC Pino de entrada do Arduino (com pull-down) não conectado LOW quando não tocada, HIGH quando tocada
4 VCC não conectado Pino de entrada do Arduino (com pull-down) HIGH quando não tocada, LOW quando tocada

Em cada forma, podemos trocar o pino GND pelo pino de entrada do Arduino. Por isso, temos 8 formas de conectar o Arduino a uma chave de fim de curso.

Precisamos escolher apenas uma das quatro formas acima. O restante do tutorial vai usar a primeira forma.

Diagrama de Ligação

Diagrama de ligação da chave de fim de curso com Arduino

This image is created using Fritzing. Click to enlarge image

Para deixar a ligação estável e firme, recomendamos usar um Ferro de Solda para soldar os fios aos pinos da chave de fim de curso e depois usar Tubo Termorretrátil para deixar tudo seguro.

Código Arduino - Chave de Fim de Curso

Assim como um botão, uma chave de fim de curso também precisa de debounce (veja mais em Por que o botão e a chave de fim de curso precisam de debounce?). O debounce deixa o código complicado. Felizmente, a biblioteca ezButton tem suporte à função de debounce. A biblioteca também usa o resistor de pull-up interno. Isso torna a programação fácil para nós

※ Nota:

Há dois casos de uso muito comuns:

  • O primeiro: se o estado da chave for TOUCHED (tocada), faça algo. Se o estado da entrada for UNTOUCHED (não tocada), faça o contrário.
  • O segundo: se o estado da chave mudar de UNTOUCHED para TOUCHED (ou de TOUCHED para UNTOUCHED), faça algo.
/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.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"); }

Passos Rápidos

  • Faça a ligação como no diagrama de ligação acima
  • Conecte o Arduino ao PC com o cabo USB
  • Abra o Arduino IDE
  • Instale a biblioteca ezButton. Veja Como Fazer
  • Selecione a placa e a porta corretas
  • Clique no botão Upload no Arduino IDE para carregar o código no Arduino
  • Toque a chave de fim de curso e solte.
  • Veja o resultado no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
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
Ln 11, Col 1
Arduino Uno on COM15
2

Vídeo

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!