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
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.
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:
#include <Servo.h>// constants won't changeconst int TOUCH_SENSOR_PIN = 7; // Arduino pin connected to touch sensor's pinconst int SERVO_PIN = 9; // Arduino pin connected to servo motor's pinServo servo; // create servo object to control a servo// variables will change:int angle = 0; // the current angle of servo motorint lastTouchState; // the previous state of touch sensorint currentTouchState; // the current state of touch sensorvoid setup() {Serial.begin(9600); // initialize serialpinMode(TOUCH_SENSOR_PIN, INPUT); // set arduino pin to input modeservo.attach(SERVO_PIN); // attaches the servo on pin 9 to the servo objectservo.write(angle);currentTouchState = digitalRead(TOUCH_SENSOR_PIN);}void loop() {lastTouchState = currentTouchState; // save the last statecurrentTouchState = digitalRead(TOUCH_SENSOR_PIN); // read new stateif(lastTouchState == LOW && currentTouchState == HIGH) {Serial.println("The sensor is touched");// change angle of servo motorif(angle == 0)angle = 90;elseif(angle == 90)angle = 0;// control servo motor arccoding to the angleservo.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
Sensor de Toque:
Permite interação física com dispositivos eletrônicos.
Usado em painéis de controle, interruptores inteligentes e interfaces humanas.
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
Postar um comentário