Controlando um Servo Motor com Sensor de Toque no Arduino

 

Controlando um Servo Motor com Sensor de Toque no Arduino

Introdução

O Arduino é uma plataforma versátil que permite a integração de diversos componentes eletrônicos, como sensores e atuadores. Neste artigo, exploraremos como utilizar um sensor de toque (táctil) para controlar um servo motor, alternando sua posição entre 0° e 90° cada vez que o sensor for pressionado.

Componentes Utilizados

  • Arduino Uno (ou similar)

  • Servo Motor (conectado na porta 9)

  • Sensor de Toque (conectado na porta 7)

  • Resistor de pull-down (10kΩ, se necessário)


Funcionamento do Circuito

O sensor de toque detecta quando há um toque físico e envia um sinal para o Arduino. Quando isso acontece, o servo motor muda sua posição:

  • Primeiro toque: move de 0° para 90°

  • Segundo toque: retorna de 90° para 0°

Esse tipo de lógica é útil em projetos como:

  • Automação residencial (acionar portas, persianas)

  • Robótica (controle de movimentos)

  • Interfaces interativas (painéis sensíveis ao toque)


Montagem do Circuito

  1. Sensor de Toque: Conecte um terminal ao pino 7 do Arduino e o outro ao GND. Se o sensor for do tipo capacitivo, pode ser necessário um resistor de pull-down.

  2. Servo Motor:

    • Fio Vermelho → 5V do Arduino

    • Fio Marrom/Preto → GND

    • Fio Amarelo/Laranja → Pino 9 (sinal PWM)




Programação no Arduino

O código abaixo implementa a lógica desejada:

cpp
Copy
Download
#include <Servo.h>

// constants won't change
const int TOUCH_SENSOR_PIN = 7; // Arduino pin connected to touch sensor's pin
const int SERVO_PIN        = 9; // Arduino pin connected to servo motor's pin

Servo servo; // create servo object to control a servo

// variables will change:
int angle = 0;         // the current angle of servo motor
int lastTouchState;    // the previous state of touch sensor
int currentTouchState; // the current state of touch sensor

void setup() {
  Serial.begin(9600);               // initialize serial
  pinMode(TOUCH_SENSOR_PIN, INPUT); // set arduino pin to input mode
  servo.attach(SERVO_PIN);          // attaches the servo on pin 9 to the servo object

  servo.write(angle);
  currentTouchState = digitalRead(TOUCH_SENSOR_PIN);
}

void loop() {
  lastTouchState    = currentTouchState;             // save the last state
  currentTouchState = digitalRead(TOUCH_SENSOR_PIN); // read new state

  if(lastTouchState == LOW && currentTouchState == HIGH) {
    Serial.println("The sensor is touched");

    // change angle of servo motor
    if(angle == 0)
      angle = 90;
    else
    if(angle == 90)
      angle = 0;

    // control servo motor arccoding to the angle
    servo.write(angle);
  }
}

Explicação do Código

  • Biblioteca Servo.h: Controla o servo motor.

  • Leitura do Sensor: Verifica se houve uma mudança de estado (LOW → HIGH).

  • Alternância de Posição: Muda entre 0° e 90° a cada toque.

  • Debounce: Um pequeno delay evita leituras repetidas do sensor.


Importância do Conhecimento desses Componentes

  1. Sensor de Toque:

    • Permite interação física com dispositivos eletrônicos.

    • Usado em painéis de controle, interruptores inteligentes e interfaces humanas.

  2. Servo Motor:

    • Oferece controle preciso de posição.

    • Aplicações em robótica, automação e sistemas de movimentação angular.

Dominar esses componentes é essencial para quem deseja trabalhar com automação, robótica e IoT, pois eles são a base para projetos mais complexos.


Conclusão

Este projeto demonstra como integrar um sensor de toque e um servo motor no Arduino, criando um sistema simples, por altamente aplicável. Com esse conhecimento, é possível expandir para projetos mais avançados, como controle remoto por Bluetooth, sistemas de segurança ou braços robóticos.

Experimente modificar o código e adicionar mais funcionalidades, como um LED indicador ou múltiplos servos!

Comentários

Postagens mais visitadas