Arduino - Sensor de Toque - Fechadura Solenoide
Vamos aprender a usar o Arduino para controlar a fechadura solenoide em dois casos de uso:
- O Arduino liga a fechadura solenoide se o sensor de toque for tocado e desliga a fechadura solenoide se o sensor de toque NÃO for tocado.
- O Arduino alterna a fechadura solenoide cada vez que o sensor de toque for tocado.
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables STEM V3 Starter Kit (Arduino included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.
Sobre o Sensor de Toque e a Fechadura Solenoide
Se você ainda não conhece a fechadura solenoide e o sensor de toque (pinagem, como funciona, como programar...), aprenda sobre eles nos seguintes tutoriais:
Diagrama de Ligação

This image is created using Fritzing. Click to enlarge image
Código Arduino - Sensor de Toque Controla Fechadura Solenoide
/*
* Este código de Arduino foi desenvolvido por pt.newbiely.com
* Este código de Arduino é disponibilizado ao público sem nenhuma restrição.
* Para tutoriais completos e diagramas de ligação, visite:
* https://pt.newbiely.com/tutorials/arduino/arduino-touch-sensor-solenoid-lock
*/
const int TOUCH_SENSOR_PIN = 8; // Arduino pin connected to touch sensor's pin
const int RELAY_PIN = A5; // Arduino pin connected to the solenoid lock via relay
void setup() {
Serial.begin(9600); // initialize serial
pinMode(TOUCH_SENSOR_PIN, INPUT); // set arduino pin to input mode
pinMode(RELAY_PIN, OUTPUT); // set arduino pin to output mode
}
void loop() {
int touchState = digitalRead(TOUCH_SENSOR_PIN); // read new state
if (touchState == HIGH) {
Serial.println("The sensor is being touched");
digitalWrite(RELAY_PIN, HIGH); // turn on
}
else
if (touchState == LOW) {
Serial.println("The sensor is untouched");
digitalWrite(RELAY_PIN, LOW); // turn off
}
}
Passos Rápidos
- Conecte o Arduino ao PC pelo cabo USB
- Abra o Arduino IDE e selecione a placa e a porta corretas
- Copie o código acima e abra-o no Arduino IDE
- Clique no botão Upload no Arduino IDE para carregar o código no Arduino

- Toque e continue tocando o sensor de toque por alguns segundos
- Veja a mudança de estado da fechadura solenoide
Explicação do Código
Leia a explicação linha por linha nos comentários do código-fonte!
Código Arduino - Sensor de Toque Alterna Fechadura Solenoide
/*
* Este código de Arduino foi desenvolvido por pt.newbiely.com
* Este código de Arduino é disponibilizado ao público sem nenhuma restrição.
* Para tutoriais completos e diagramas de ligação, visite:
* https://pt.newbiely.com/tutorials/arduino/arduino-touch-sensor-solenoid-lock
*/
const int TOUCH_SENSOR_PIN = 8; // Arduino pin connected to touch sensor's pin
const int RELAY_PIN = A5; // Arduino pin connected to solenoid lock via relay
// variables will change:
int solenoidLockState = LOW; // the current state of relay
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
pinMode(RELAY_PIN, OUTPUT); // set arduino pin to output mode
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");
// toggle state of relay
solenoidLockState = !solenoidLockState;
// control relay arccoding to the toggled state
digitalWrite(RELAY_PIN, solenoidLockState);
}
}
Passos Rápidos
- Conecte o Arduino ao PC pelo cabo USB
- Abra o Arduino IDE e selecione a placa e a porta corretas
- Copie o código acima e abra-o no Arduino IDE
- Clique no botão Upload no Arduino IDE para carregar o código no Arduino
- Continue tocando o sensor de toque por alguns segundos e depois solte.
- Veja a mudança de estado da fechadura solenoide
Explicação do Código
Leia a explicação linha por linha nos comentários do código!
No código, solenoidLockState = !solenoidLockState é equivalente ao seguinte código:
if(solenoidLockState == LOW)
solenoidLockState = HIGH;
else
solenoidLockState = LOW;