Os dispositivos de entrada permitem que o Arduino e outros microprocessadores interajam com o mundo. Sem eles, um Arduino simplesmente executaria o seu programa sem qualquer forma de responder ao ambiente externo ou a comandos do utilizador.
Aqui fornecemos uma visão geral de todos os diferentes tipos de dispositivos de entrada que podem ser ligados a um Arduino ou microprocessadores semelhantes. Discutimos os seus princípios funcionais e o que deve ter em atenção.
Os termos Entradas e Sensores têm alguma sobreposição. Aqui usaremos Entradas para nos referirmos a entradas originadas pela interação humana ou mecânica com o sistema. Por exemplo, através de botões, interruptores, ecrãs táteis ou potenciômetros. Sensores, por outro lado, são usados para detetar ou medir parâmetros ambientais, como temperatura, luz, distância ou campos magnéticos.
Makerguides is a participant in affiliate advertising programs designed to provide a means for sites to earn advertising fees by linking to Amazon, AliExpress, Elecrow, and other sites. As an Affiliate we may earn from qualifying purchases.
Dispositivos de entrada
A seguir, vamos analisar todos os diferentes tipos de entradas, iniciadas pela interação humana, que um Arduino ou microprocessador semelhante pode receber. Na maioria das vezes, serão botões e interruptores, mas existem outros.
Botões
Os botões existem em todos os tipos de formas, tamanhos e cores. Abaixo está a imagem de um botão típico que fecha a ligação elétrica entre os seus dois polos quando pressionado e está aberto caso contrário.

Interruptor de botão momentâneo, 1A 250VAC SPST Mini Pushbutton Switches Normalmente Aberto ( NA ).
Ao selecionar um botão como dispositivo de entrada, há vários aspetos a considerar. Em primeiro lugar, obviamente, o tamanho e relacionado com isso está o Tensão e Corrente nominal do botão. Para controlar a entrada digital de uma placa Arduino, botões pequenos que podem comutar até 12 Volts e 0,1 Ampere são suficientes. São muito baratos e é útil ter uma seleção de vários tipos para diferentes aplicações. Gosto do conjunto abaixo.

TWTADE 260pcs Micro Momentary Tact Switch Tactile Push Button Switch 26 Values 4 pin/3 pin/2 pin Assortment Kit QC-26V.
| Modo de operação | LIGA-DESLIGA |
| Corrente nominal | 0,1 Amperes |
| Tensão de operação | 12 Volts |
Se quiser comutar cargas típicas, como pequenos eletromotores ou a alimentação da bateria para o seu Arduino, um interruptor com classificação para 12V e 1 a 3A será adequado. Note que comutar aparelhos ligados à rede elétrica (110V – 220V) é perigoso! Deve selecionar um interruptor classificado para 110V ou 220V (dependendo do seu país) e 5A ou mais (dependendo da carga).
Normalmente aberto ou fechado
A maioria dos botões está normalmente aberta quando não pressionada (marcada como NA). Isso significa que a corrente elétrica não flui quando o botão não está pressionado. Este é o tipo que usamos habitualmente. Mas também existem botões que estão normalmente fechados (NF) quando não pressionados.
Botões momentâneos vs mantidos
A maioria dos botões são momentâneos, ou seja, voltam à sua posição padrão quando soltos. Um botão mantido, por outro lado, mantém-se na sua posição quando pressionado e precisa ser pressionado novamente para voltar ao normal. Usamos botões mantidos principalmente para ligar ou desligar a alimentação elétrica. Note que alguns botões têm até três estados, como LIGA – NENHUM – DESLIGA ou semelhante.
Número de polos
Finalmente, a maioria dos botões tem dois contactos (também chamados de dois polos) usados para fazer a ligação elétrica. No entanto, existem botões com mais polos e diferentes configurações de comutação. Mais sobre isso na secção de Interruptores abaixo.
Alguns botões são até iluminados e têm contactos adicionais para fornecer energia à luz integrada. Não os confunda!
Considerações chave
Classificação
O fator mais importante ao selecionar um botão é a classificação correta. O botão deve ser capaz de suportar a tensão e corrente do circuito que controla. Também certifique-se de usar a tensão e polaridade corretas para botões iluminados.
Debouncing
Os contactos dentro do botão são feitos de metal, que tem certa elasticidade. Isso causa que os contactos bounce por um curto período (alguns milissegundos) quando o botão é pressionado, em vez de fazer contacto estável imediatamente. Não temos uma transição de aberto para fechado em forma de padrão limpo, mas uma transição instável. Veja o efeito de bouncing abaixo:
Ao ler o estado do botão com um microcontrolador, isso pode resultar na leitura de múltiplos pressionamentos em vez de um único. Normalmente, será necessário escrever um code for debouncing específico para o botão ou adicionar um debouncing circuit, usando um resistor e um condensador. Temos um exemplo em how to connect a push button to an Arduino.
Resistores pull-up
Quando um botão está aberto (não pressionado), o pino a que está ligado pode flutuar entre estados alto e baixo porque não está ligado a uma tensão definida. Este estado “flutuante” pode levar a leituras imprevisíveis, já que o pino funciona essencialmente como uma antena que capta ondas eletromagnéticas do ambiente.
Podemos usar pull-up resistors para ligar o pino à fonte de tensão (normalmente 5V ou 3,3V). Isso garante que ele esteja num estado definido (ALTO), quando o botão não está pressionado. Muitas placas Arduino têm resistores pull-up internos que podem ser ativados por software usando pinMode(pin, INPUT_PULLUP).
No entanto, é sempre uma boa ideia estar do lado seguro e adicionar um resistor pull-up. Assim, pode usar o seu circuito com diferentes placas ou em diferentes pinos (que podem não ter resistores pull-up internos).
Resistores limitadores de corrente
Embora nem sempre sejam necessários ao usar resistores pull-up ou pull-down, por vezes é boa ideia incluir um current limiting resistor em série com um botão, especialmente se estiver a ligar diretamente à alimentação e ao terra. Isso ajuda a evitar fluxo excessivo de corrente quando o botão é pressionado.
Níveis lógicos
Finalmente, devemos ter atenção ao different logic levels do Arduino (que normalmente é 5V) e de outros MCUs comuns, como o ESP32, que opera com 3,3V. Por exemplo, ligar 5V a uma entrada de 3,3V num ESP32 pode danificar o chip. Da mesma forma, usar mais de 5V como entrada num Arduino pode causar danos. Os resistores limitadores de corrente mencionados podem oferecer alguma proteção.
Interruptores
Semelhante aos botões, os interruptores vêm em todos os tipos de formas e tamanhos. Abaixo um interruptor pequeno típico que pode ser usado para comutar entradas lógicas ou pequenas cargas:

Chanzon SPDT Mini Micro Slide Switch 2 Posições.
Nota : Escolha os que têm um espaçamento de pinos de 2,54 mm (0,1″) para serem compatíveis com breadboards.
Interruptores momentâneos vs mantidos/travados
Os interruptores são essencialmente os mesmos dispositivos de entrada que os botões – e às vezes os botões são chamados de interruptores. Mas enquanto os botões mais usados são momentâneos, os interruptores são tipicamente do tipo mantido ou travado.
No entanto, também encontrará interruptores momentâneos. Um tipo momentâneo que uso frequentemente é este microinterruptor que requer pouca força para atuar e é ótimo para detetar colisões (para robôs) ou a abertura/fecho de portas:

Cylewet 25Pcs AC 1A 125V 3Pin SPDT Limit Micro Switch Long Hinge Lever.
Se olhar de perto, verá as marcações C (Contacto), NA (Normalmente Aberto) e NF (Normalmente Fechado) para os pinos. Este é um interruptor do tipo SPST (Polo Único, Uma Via) e falamos mais sobre isso na próxima secção.
Terminologia dos contactos
Outra diferença entre interruptores e botões é que os interruptores tendem a ter muitas mais variações na configuração de Polo e Via.
Polo refere-se ao número de circuitos separados que o interruptor pode controlar. Essencialmente, é o número de entradas independentes que um interruptor tem. Via, por outro lado, refere-se ao número de caminhos disponíveis para cada polo. Descreve quantas ligações de saída cada polo pode ser conectado ou “comutado”.

A configuração mais comum, um interruptor simples, tem configuração SPST (Polo Único, Uma Via).

Um interruptor com dois Polos e uma Via é chamado DPST (Duplo Polo, Uma Via).
Um interruptor DPST que tenho usado em muitos dos meus projetos é o seguinte. Embora seja pequeno, pode comutar cargas consideráveis e é definitivamente suficiente para comutar a alimentação da bateria, por exemplo. Note que este não pode ser inserido numa breadboard.

RuoFeng DPDT Toggle Switch AC 125V 6A Amps ON/ON 6 Terminais 2 Posições
Configurações comuns
Abaixo encontrará uma lista das configurações comuns de Polo e Via para interruptores. Dependendo da aplicação, deve escolher a correta, mas as mais usadas são provavelmente os interruptores SPST e DPST.
| Abreviação | Nome | Descrição |
| SPST | Polo Único, Uma Via | Um simples interruptor liga-desliga |
| SPDT | Polo Único, Duas Vias | Um interruptor que pode desviar a corrente de um caminho para outro |
| DPST | Duplo Polo, Uma Via | Dois interruptores liga-desliga controlados por um único mecanismo |
| DPDT | Duplo Polo, Duas Vias | Controla dois circuitos e tem dois caminhos para cada um |
| 3PST | Triplo Polo, Uma Via | Três interruptores liga-desliga controlados por um único mecanismo |
| 3PDT | Triplo Polo, Duas Vias | Controla três circuitos, cada um com dois caminhos |
| 4PST | Quádruplo Polo, Uma Via | Quatro interruptores liga-desliga controlados por um único mecanismo |
| 4PDT | Quádruplo Polo, Duas Vias | Controla quatro circuitos, cada um com dois caminhos |
Considerações chave
As considerações chave para interruptores são as mesmas que para botões. Certifique-se de que o interruptor tem a classificação adequada para a carga ligada. Se o interruptor for usado para comutar entradas lógicas, são recomendados debouncing, resistores pull-up e potencialmente resistores limitadores de corrente. Também tenha atenção aos níveis lógicos corretos (3,3V vs 5V) para as entradas.
Botões táteis
Os botões táteis são dispositivos de entrada projetados para detetar o toque humano. O tipo mais comum mede a capacitância, que muda quando o elemento sensor é tocado por um dedo (ou um objeto metálico). O ESP32 has touch sensor pins e não requer circuitos adicionais para detetar o toque. Para o Arduino e outros MCUs que não têm suporte direto para sensores táteis, existem módulos de sensor tátil disponíveis. Abaixo um exemplo de um módulo comum:

BAEASU TTP223 TTP223B Capacitive Touch Sensor Switch Module, Self-Lock Switch Button Module
São easy to connect and to use. Comparados com botões e interruptores mecânicos, têm a vantagem de poderem ser encapsulados dentro de uma caixa, ficando completamente protegidos contra poeira ou água. A maioria dos tipos também permite configurar um comportamento de travamento ou momentâneo, ou seja, o sinal de saída mantém-se alto após o toque ou não.
Considerações chave
Ao usar módulos de sensor tátil, alguns aspetos valem a pena considerar. Em primeiro lugar, são menos adequados para aplicações de baixo consumo, pois consomem energia. São também mais vulneráveis a interferências eletromagnéticas e geralmente a ativações acidentais. Finalmente, não têm feedback tátil, mas a maioria dos módulos vem com um LED integrado que indica o estado do interruptor.
Teclados matriciais
Teclados matriciais ou teclados são essencialmente arranjos retangulares de múltiplos botões. Normalmente, os botões são do tipo mecânico ou capacitivo. Abaixo uma imagem de um teclado matricial típico 4×4 que usa interruptores de membrana mecânicos:

DEVMO 2PCS 4 x 4 Matrix Array 16 Key Membrane Switch Keypad Keyboard
Como o número de teclas é frequentemente maior que o número de entradas disponíveis num Arduino, elas não são endereçadas individualmente. Em vez disso, é usado um esquema de endereçamento matricial. Organiza as teclas em colunas (C1…C4) e linhas (R1…R4):

Para um teclado 4×4 com 16 teclas, isso reduz o número de entradas GPIO necessárias de 16 para 8. We have a tutorial on how to connect a keypad to an Arduino.
Considerações chave
Teclados, especialmente os maiores, tendem a usar muitos pinos GPIO valiosos. No entanto, usando I2C communication e um módulo de expansão IO adequado, pode eliminar este problema. Um módulo de expansão, como o abaixo, precisa apenas dos dois pinos do barramento I2C (SCL & SDA) para controlar 8 canais I/O.

HiLetgo 2pcs PCF8574 PCF8574T IO Expansion Board I/O Expander I2C Evaluation Develop Module
O I2C Keypad library oferece o software pronto para ligar um teclado 4×4, 5×3, 6×2, 8×1 ou menor a um módulo de expansão PCF8574. Não só o Arduino, mas também o ESP32 e muitos outros MCUs suportam o barramento I2C.
Ecrãs táteis
Uma alternativa a um teclado como dispositivo de entrada é um ecrã tátil. Os ecrãs táteis são geralmente ecrãs TFT, com deteção tátil resistiva ou capacitiva. Os tipos resistivos precisam que se aplique pressão no ecrã para detetar o toque. Um ecrã tátil resistivo comum é o seguinte da ELEGOO:

ELEGOO UNO R3 2.8 Inches TFT Touch Screen with SD Card Socket
Controlar um ecrã tátil a partir de um Arduino é obviamente mais complexo do que controlar um teclado simples. No entanto, temos um tutorial sobre how to interface an Arduino with a touchscreen display.
Consideração chave
Para além da complexidade aumentada, os ecrãs táteis são geralmente muito menos robustos que os teclados e riscam-se facilmente. Também consomem energia ativamente, enquanto os teclados são dispositivos passivos. Finalmente, a carga computacional para operar um ecrã tátil é muito maior do que a de um teclado. Isso também significa que um ecrã tátil geralmente não é tão responsivo como um teclado.
Codificadores rotativos
Os codificadores rotativos são dispositivos de entrada que convertem uma rotação em códigos digitais. Normalmente, produzem dois sinais digitais ou pulsos, frequentemente chamados ‘DT’ e ‘CLK’ (ou ‘A’ e ‘B’). Estes pulsos estão geralmente defasados 90°. Monitorizando estes dois sinais, podemos determinar a quantidade e a direção da rotação.
Abaixo está um módulo comum de codificador rotativo adequado para Arduino com 20 pulsos por rotação completa e um botão extra.

HiLetgo 5pcs 360 Degrees Rotary Encoder Module
Usos comuns para codificadores rotativos são controlo digital de volume, seleção de funções (menu) e monitorização da velocidade, posição e direção de motores. São fáceis de usar e temos um tutorial sobre como how to interface a rotary encoder with an Arduino.
Consideração chave
A maioria dos codificadores rotativos é mecanicamente semelhante a interruptores. Consequentemente, temos de considerar os mesmos potenciais problemas que com interruptores, como debouncing, resistores pull-up e nível lógico (3,3V vs 5V). Além disso, se usarmos polling para monitorizar os pulsos, o Arduino/código deve ser rápido o suficiente para não perder pulsos. Finalmente, os codificadores rotativos variam na sua resolução (isto é, pulsos por rotação). Precisamos de escolher um codificador com resolução suficiente para a nossa aplicação.
Potenciômetros
Até agora, todos os dispositivos de entrada apresentados eram digitais. Eles geram sinais digitais (ALTO, BAIXO) e são ligados aos pinos digitais GPIO. Os potenciômetros, por outro lado, são dispositivos de entrada analógicos. Aqui está o nosso tutorial sobre how to control an LED with a potentiometer.
Internamente, um potenciômetro é um resistor de três terminais com um contacto deslizante ou rotativo que forma um divisor de tensão ajustável. Valores típicos de resistência para potenciômetros são 10K Ω ou 100K Ω . Veja um exemplo de um potenciômetro comum de 10K abaixo:

HiLetgo 20pcs WH148 Single-Joint Potentiometer 10K B10K Variable Resistors
Consideração chave
Certifique-se de ligar o potenciômetro a um pino analógico GPIO (A0, …) e usar analogRead() para ler o valor de entrada. Como a resistência do potenciômetro pode mudar com a temperatura, verá o valor de entrada variar quando o potenciômetro aquece ou arrefece. Também verá flutuações no valor de entrada devido a ruído eletromagnético captado pelos fios. Finalmente, a resolução é limitada pelo conversor analógico-digital (ADC) do microcontrolador.
Joysticks
Um joystick é composto por dois potenciômetros dispostos em eixos perpendiculares (X, Y) controlados por um stick ou botão central. Abaixo está um módulo comum de joystick usado para Arduino:

WWZMDiB 6Pcs Dual-Axis Button Joystick Module
Um joystick típico fornece entrada sobre a sua posição ao longo dos seus eixos, normalmente X (horizontal) e Y (vertical) como valores analógicos. Muitos deles também têm um interruptor adicional (botão de disparo), que gera uma entrada digital. Veja o nosso tutorial sobre how to use a joystick with an Arduino.
Consideração chave
Note que existem joysticks simplificados que não usam potenciômetros mas interruptores para indicar direção. São digitais por natureza. Por outro lado, existem joysticks com mais de dois eixos. Por exemplo, para controlar as direções X, Y e Z. Ao ligar um módulo joystick ao seu microprocessador, certifique-se de que os níveis lógicos coincidem (3,3V vs 5V). As saídas analógicas devem ser ligadas a entradas analógicas (A0, A1) e lidas via analogRead(), enquanto o botão deve ser ligado a uma entrada digital e lido via digitalRead().
Rato USB
Não pode ligar diretamente um rato USB a um Arduino e usá-lo como dispositivo de entrada. Precisaria de um escudo USB, como o abaixo (especificamente para a placa Arduino que está a usar):

ARCELI USB Host Shield for Arduino UNO MEGA 2560
Aqui está um tutorial sobre how to connect a mouse to an Arduino using a USB shield.
Consideração chave
Geralmente, é melhor ligar um joystick a um Arduino do que tentar ligar um rato USB via escudo USB. Pode construir o seu próprio rato, usando dois codificadores rotativos ou ler diretamente os codificadores rotativos dentro de um rato mecânico (antigo).
Resumo
Aqui fornecemos uma visão geral de todos os diferentes tipos de dispositivos de entrada usados com Arduino e microcontroladores semelhantes. Para mais detalhes sobre como ligar estes vários dispositivos, consulte o nosso Articles on inputs and sensors e os links no post. Também temos um overview article on all the different types of sensors you can connect to an Arduino.


