ESP32 - Sensor de Força

O sensor de força também é chamado de resistor sensível à força ou FSR (force sensing resistor). Este tutorial ensina você a usar o ESP32 com o sensor de força. Em detalhes, vamos aprender:

Sobre o Sensor de Força

O sensor de força é um resistor cuja resistência é inversamente proporcional à força aplicada. Quanto maior a força aplicada ao sensor, menor é a resistência do sensor. O sensor de força é bom para aplicações que detectam aperto ou pressão física. Porém, ele não é bom para aplicações que medem quantos quilos de peso

Pinagem do Sensor de Força

O sensor de força tem dois pinos. Assim como um resistor, NÃO precisamos diferenciar esses pinos.

Force sensor pinout

Diagrama de Ligação entre o Sensor de Força e o ESP32

  • Como conectar o ESP32 e o sensor de força usando protoboard
The wiring diagram between ESP32 Force

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.

How to connect ESP32 and force sensor

Como Programar o Sensor de Força

A resistência é proporcional à tensão. Podemos usar o pino de entrada analógica do ESP32 para medir a tensão.

Ao conectar um pino do sensor de força a um pino de entrada analógica, podemos ler o valor analógico do pino ⇒ tensão ⇒ resistência ⇒ força (tudo em valor relativo)

Código ESP32

/* * Este código de ESP32 foi desenvolvido por pt.newbiely.com * Este código de ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/esp32/esp32-force-sensor */ #define FORCE_SENSOR_PIN 36 // ESP32 pin GPIO36 (ADC0): the FSR and 10K pulldown are connected to A0 void setup() { Serial.begin(9600); // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); } void loop() { int analogReading = analogRead(FORCE_SENSOR_PIN); Serial.print("The force sensor value = "); Serial.print(analogReading); // print the raw analog reading if (analogReading < 10) // from 0 to 9 Serial.println(" -> no pressure"); else if (analogReading < 200) // from 10 to 199 Serial.println(" -> light touch"); else if (analogReading < 500) // from 200 to 499 Serial.println(" -> light squeeze"); else if (analogReading < 800) // from 500 to 799 Serial.println(" -> medium squeeze"); else // from 800 to 1023 Serial.println(" -> big squeeze"); delay(1000); }

Passos Rápidos

  • Se esta é a primeira vez que você usa o ESP32, veja como configurar o ambiente do ESP32 na Arduino IDE.
  • Copie o código acima e cole na Arduino IDE.
  • Compile e faça o upload do código para a placa ESP32 clicando no botão Upload da Arduino IDE
  • Pressione o sensor de força
  • Veja o resultado no Serial Monitor. Ele fica parecido com o abaixo.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
The force sensor value = 0 -> no pressure The force sensor value = 0 -> no pressure The force sensor value = 132 -> light touch The force sensor value = 147 -> light touch The force sensor value = 394 -> light squeeze The force sensor value = 421 -> light squeeze The force sensor value = 607 -> medium squeeze The force sensor value = 791 -> medium squeeze The force sensor value = 921 -> big squeeze The force sensor value = 987 -> big squeeze The force sensor value = 0 -> no pressure The force sensor value = 0 -> no pressure
Ln 11, Col 1
ESP32 Dev Module on COM15
2

※ Nota:

Este tutorial usa a função analogRead() para ler valores de um ADC (Conversor Analógico-Digital) conectado a um sensor de força. O ADC do ESP32 é bom para projetos que NÃO precisam de alta precisão. Porém, para projetos que precisam de medições precisas, observe:

  • O ADC do ESP32 não é perfeitamente preciso e pode precisar de calibração para dar resultados corretos. Cada placa ESP32 pode ser um pouco diferente, então você precisa calibrar o ADC de cada placa individualmente.
  • A calibração pode ser difícil, principalmente para iniciantes, e nem sempre dá o resultado exato que você quer.

Para projetos que precisam de alta precisão, considere usar um ADC externo (por exemplo, o ADS1115) com o ESP32, ou usar um Arduino, que tem um ADC mais confiável. Se mesmo assim você quiser calibrar o ADC do ESP32, consulte o ESP32 ADC Calibration Driver

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!