ESP32 - Chave de Fim de Curso
Este tutorial ensina você a usar a chave de fim de curso (Limit Switch) com o ESP32.

É importante observar que este tutorial é especificamente sobre o uso de uma chave de fim de curso; por favor, não a confunda com os itens a seguir:
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables ESP32 Starter Kit (ESP32 included) | |
| 1 | × | DIYables ESP32 S3 Starter Kit (ESP32 S3 included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
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.
Uma Chave de Fim de Curso recebe esse nome porque seu objetivo principal é detectar quando um objeto em movimento atingiu 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. Cada um desses tipos tem três pinos:
- Pino C: este é o pino comum, usado tanto no modo normalmente aberto quanto no modo normalmente fechado.
- Pino NO: este é o pino normalmente aberto, usado no modo normalmente aberto.
- Pino NC: este é o pino normalmente fechado, usado no modo normalmente fechado.

Como Funciona
Uma aplicação típica de chave de fim de curso normalmente usa apenas dois pinos: o pino C e um dos outros dois pinos. Isso resulta em quatro formas diferentes de usar uma chave de fim de curso. A tabela abaixo mostra a ligação e o estado lido no ESP32 para cada um desses quatro métodos.
| pino C | pino NO | pino NC | Estado do Pino de Entrada do ESP32 | |
|---|---|---|---|---|
| 1 | GND | Pino de Entrada do ESP32 (com pull-up) | não conectado | HIGH quando não tocada, LOW quando tocada |
| 2 | GND | não conectado | Pino de Entrada do ESP32 (com pull-up) | LOW quando não tocada, HIGH quando tocada |
| 3 | VCC | Pino de Entrada do ESP32 (com pull-down) | não conectado | LOW quando não tocada, HIGH quando tocada |
| 4 | VCC | não conectado | Pino de Entrada do ESP32 (com pull-down) | HIGH quando não tocada, LOW quando tocada |
Trocando o pino GND e o pino de entrada do ESP32 em cada uma das quatro formas, existem no total oito formas diferentes de conectar um ESP32 a uma chave de fim de curso.
Das oito formas, o tutorial vai focar em um método; especificamente, o primeiro método será usado como exemplo.
Diagrama de Ligação
- Como conectar o ESP32 e a chave de fim de curso usando uma protoboard

This image is created using Fritzing. Click to enlarge image
Se você não sabe como alimentar o ESP32 e outros componentes, veja as instruções no tutorial a seguir: Como alimentar o ESP32.
- Como conectar o ESP32 e a chave de fim de curso usando uma placa breakout com bornes de parafuso

Para uma conexão estável e segura, é recomendado usar um ferro de solda para soldar os fios aos pinos da chave de fim de curso e, depois, usar tubos termorretráteis para mais segurança.
Código ESP32 - Chave de Fim de Curso
Assim como um botão, uma chave de fim de curso também precisa de debounce (mais informações podem ser encontradas em Por que é necessário fazer debounce do botão/chave de fim de curso?). O debounce pode deixar o código mais complexo. No entanto, a biblioteca ezButton oferece a função de debounce e usa os resistores de pull-up internos, facilitando a programação.
※ Nota:
Dois casos de uso comuns para uma chave de fim de curso são:
- O primeiro caso de uso: se a chave estiver TOCADA, execute uma determinada ação. Se o estado da entrada for NÃO TOCADA, execute a ação oposta.
- O segundo caso de uso: se o estado da chave mudar de NÃO TOCADA para TOCADA (ou de TOCADA para NÃO TOCADA), execute uma ação específica.
Passos Rápidos
- Siga o diagrama de ligação mostrado acima para conectar a sua chave de fim de curso ao ESP32.
- Conecte o seu ESP32 ao seu PC usando um cabo USB.
- Abra o software Arduino IDE.
- Instale a biblioteca ezButton. Consulte as instruções
- Selecione a placa e a porta corretas no Arduino IDE.
- Compile e faça upload do código para a placa ESP32 clicando no botão Upload no Arduino IDE.
- Teste a chave de fim de curso tocando nela e soltando-a.
- Observe a saída no Serial Monitor do Arduino IDE.