fbpixel
Etiquetas: ,
1
(1)

Os sensores capacitivos são normalmente utilizados para a detecção de objetos. Eles permitem, por exemplo, detectar a passagem de um objeto numa esteira ou determinar o nível de líquido num tanque. Mais cotidianamente, são usados em monitores táteis ou como interruptores. Neste tutorial, veremos como criar um sensor capacitivo usando um simples condutor e um microcontrolador.

Material

  • Computador
  • Arduino UNO
  • Cabo USB A Macho/B Macho
  • Cabo Dupont
  • Resistor 1Mohm

Princípio de funcionamento

Um sensor capacitivo funciona como uma antena que gera um campo elétrico. Quando um material se aproxima da antena, ele modifica a capacitância deste campo. O microcontrolador sente esta diferença determina a proximidade do objeto. Com esta tecnologia, é possível transformar qualquer objeto condutor num sensor.

Esquema

Para criar um sensor tátil numa placa Arduino, precisamos de uma resistência e de um cabo e/ou de uma tinta condutiva ou outra. A resistência liga o pino de medição ao pino de referência e o cabo vai do pino de medição até uma folha de alumínio, tinta condutiva ou outra. O valor da resistência define a sensibilidade do sensor. Quanto maior este valor, maior a capacidade do sensor de detectar objetos ao longe. Usamos aqui uma resistência de 1MOhm, mas escolha a que for mais adequada para a sua aplicação, entre 500k e 40Mohm.

Existem microcontroladores com sensores táteis integrados, como o NodeMCU (ESP8266 ou ESP32). Neste caso, um simples condutor ligado ao pino é suficiente para criar um sensor capacitivo.

Código

Para usar o objeto Capacitive, utilizamos a biblioteca CapacitiveSensor.hi. Para inicializar o sensor, precisamos especificar os pinos utilizados (aqui, 2 e 3). É possível ajustar a sensibilidade do sensor com a função de chamada cs.capacitiveSensor(sensitivity). Para ter mais controle sobre a precisão do sensor, usamos uma média móvel gerenciada pela função smooth() a fim de filtrar as suas medidas.

//Libraries
#include <CapacitiveSensor.h>//https://github.com/PaulStoffregen/CapacitiveSensor

//Parameters
bool autocal  = 0;
const int numReadings  = 10;
long readings [numReadings];
int readIndex  = 0;
long total  = 0;
const int sensitivity  = 1000;
const int thresh  = 200;
const int csStep  = 10000;
CapacitiveSensor cs  = CapacitiveSensor(2, 3);

void setup() {
  //Init Serial USB
  Serial.begin(9600);
  Serial.println(F("Initialize System"));
  //Init cs
  if (autocal == 0) {
    {
      cs.set_CS_AutocaL_Millis(0xFFFFFFFF);
    }
  }
}

void loop() {
  Serial.println(smooth());
}

long smooth() { /* function smooth */
  ////Perform average on sensor readings
  long average;
  // subtract the last reading:
  total = total - readings[readIndex];
  // read the sensor:
  readings[readIndex] = cs.capacitiveSensor(sensitivity);
  // add value to total:
  total = total + readings[readIndex];
  // handle index
  readIndex = readIndex + 1;
  if (readIndex >= numReadings) {
    readIndex = 0;
  }
  // calculate the average:
  average = total / numReadings;

  return average;
}

Aplicações

  • Criar um interruptor tátil
  • Criar um sensor tátil ou de proximidade
  • Usar um sensor tátil ESP32/ESP8266

Fontes

Retrouvez nos tutoriels et d’autres exemples dans notre générateur automatique de code
La Programmerie

How useful was this post?

Click on a star to rate it!

Average rating 1 / 5. Vote count: 1

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?